Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
03.07.2018, 13:15
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Доброго времени суток. Столкнулся с проблемой, имеется запрос вида: Код: sql 1. 2. 3. 4. 5.
Работает очень медленно, причём из-за: Код: sql 1. 2. 3. 4.
Есть ли возможность оптимизировать ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 13:18
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
03.07.2018 13:15, Acrobat2 пишет: > Есть ли возможность оптимизировать ??? да Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 13:19
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Направьте на путь праведный, о мудрые старцы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 13:25
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Acrobat2, для начала перемести LEFT JOIN в конец. А потом кури планы. Впрочем LIKE с поиском внутри строки не индексируется. Если к table3 всегда применяется поисковое выражении в WHERE, то и LEFT JOIN не нужен, достаточно JOIN. А там глядишь может получится получить выгоду от алогритма MERGE/HASH JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 13:30
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Спасибо!!! Стало быстрее, но всё равно хочется быстрее)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 14:10
|
|||
---|---|---|---|
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Как быстро выполняются и сколько записей выдают запросы: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 15:05
|
|||
---|---|---|---|
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Acrobat2, Если таблица небольшая, то есть вариант для ускоренного отбора строк с вашими фразами(словами) c LIKE: 1) искомое поле для LIKE загнать в новую таблицу, разделив на отдельные слова. Например слово Иванов Петр Сидорович будет как отдельные строки: Код: plsql 1.
Код: plaintext 1. 2. 3.
2) далее в текстах запросов использовать STARTING WITH, при этом подцепится индекс по этому полю; У нас ускорение получилось добиться примерно в 20 раз. Попробуйте, м.б. вам это поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 15:11
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Спасибо за идею, я вот тоже думал, как можно изменить существующие таблицы или добавить новую для ускорения. Проблема к сожалению не в LIKE, проблема в JOINах, очень медленно выполняет. WildSery завтра проверю, сейчас нет возможности. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 15:12
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
03.07.2018 15:11, Acrobat2 пишет: > проблема в JOINах, очень медленно выполняет. никому не показывай планы запросов. так будет быстрее. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 15:14
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Мимопроходящий03.07.2018 15:11, Acrobat2 пишет: > проблема в JOINах, очень медленно выполняет. никому не показывай планы запросов. так будет быстрее. Сейчас к сожалению нет возможности показать, только завтра ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 15:49
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Acrobat2, вот как забавно, т.е. план посмотреть не можем, а про ускорение говорим. Как мерили? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2018, 16:05
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Симонов ДенисAcrobat2, вот как забавно, т.е. план посмотреть не можем, а про ускорение говорим. Как мерили? Я просто уже дома)))) План остался за горизонтом)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:20
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
С запросом разобрался, разделил на два, т.к. находится редко, а проверять надо часто. Всем спасибо за помощь. Хотел ещё спросить, как лучше сделать. Есть БД с строковыми значениями телефонных номеров. Примерно 5000 раз в минуту (5000 номеров), необходимо проверять, следующим образом, есть ли вхождение строки (номера) из БД в проверяемую (которых ~5000 в мин), т.е. нужно каждый номер из БД проверять на вхождение в заданный номер. БД весит не много, записей примерно тысяч 10. Получается единственное что можно сделать, это загрузить БД в оперативную память и с неё в цикле перебирать все номера и искать вхождение ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:34
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
не для бд задача ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:37
|
|||
---|---|---|---|
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Чё это не для БД? А для чего? Автор, задача не ясна. Кто на ком стоял? 5000 тысяч - число красивое. Как 120 - приборы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:40
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
я так думаю, тут снова нужен программист... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:45
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
WildSery, Есть номер телефона, например 89231234578, нужно проверить все записи из БД на вхождение (на подстроку) в этом номере. Например очередной номер из БД имеет вид 1234578, это будет совпадением. SQL такую задачу не решить. Хочется спросить профи, как сделать оптимальнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:50
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Acrobat2, а по полным номерам нельзя искать или хранить полные номера? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:51
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
К сожалению нет, в этом вся и сложность. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:53
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
задача - тьфу. арабских цифр всего 10. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:55
|
|||
---|---|---|---|
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Acrobat2Есть номер телефона, например 89231234578 ...номер из БД имеет вид 1234578 Хрустальный шар подсказывает, что надо не просто подстроку, а хвост. Если так, то откусывай от пришедшего номера по одному начальному символу и проверяй на полное совпадение. И так до минимального размера, который вообще имеет смысл. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:56
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Мимопроходящийзадача - тьфу. арабских цифр всего 10. Не понял Вас, какая разница 10 их или 10 млн. Тут же задача на сравнение и сдвиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 16:58
|
|||
---|---|---|---|
|
|||
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
afgmAcrobat2Есть номер телефона, например 89231234578 ...номер из БД имеет вид 1234578 Хрустальный шар подсказывает, что надо не просто подстроку, а хвост. Если так, то откусывай от пришедшего номера по одному начальному символу и проверяй на полное совпадение. И так до минимального размера, который вообще имеет смысл. Хвост это тоже подстрока, вопрос я задал фундаментального характера. Вы предлагаете тупо перебирать каждый раз, о чём я и писал выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2018, 17:00
|
|||
---|---|---|---|
Оптимизировать запрос с тремя JOIN и несколькими LIKE |
|||
#18+
Acrobat2Хвост это тоже подстрока, вопрос я задал фундаментального характера. Вы предлагаете тупо перебирать каждый раз, о чём я и писал выше. Не тупо перебирать, а прицельно искать. И таких индексных поисков будет всего несколько штук. Если вот прям любая-любая подстрока, то уже сложнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=40&tablet=1&tid=1561051]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 203ms |
0 / 0 |