|
Странное поведение планировщика в FB3.
|
|||
---|---|---|---|
#18+
Столкнулся с непонятным моментом. Привожу тестовый запрос. Код: sql 1. 2. 3. 4. 5.
Результат: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Всё вполне устраивает. Но, если строчку переставить вот так: Код: sql 1. 2. 3. 4. 5.
То результат: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Натурал по таблице defect совсем не нравится. Такое поведение планировщика фича? Есть ли описание его работы? Подозреваю, что у нас много запросов такого плана и их надо переделывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 16:09 |
|
Странное поведение планировщика в FB3.
|
|||
---|---|---|---|
#18+
баян. Сначала собери вместе все inner-джойны, потом дописывай к ним outer-джойны. Так не будет проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 16:31 |
|
Странное поведение планировщика в FB3.
|
|||
---|---|---|---|
#18+
KreatorXXI, 1. не пиши outer и inner, это лишнее, left/right join не могут быть inner, они только outer 2. left/right join выполняются последовательно, слева направо. Только в случае inner оптимизатор может "перемешать" таблицы в более лучшем порядке. 3. когда пишешь a left join b left join c, старайся, чтобы в левых частях были таблицы поменьше 4. a left join b эквивалентно b right join b, и наоборот. Впрочем, right join сервер внутри переворачивает в left join. 5. смотри видео про оптимизатор и читай http://www.ibase.ru/dataaccesspaths/ 6. и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 16:49 |
|
Странное поведение планировщика в FB3.
|
|||
---|---|---|---|
#18+
KreatorXXI, кстати, планы хоть и разные, но вышло почти параллельно (по скорости, чтениям и фетчам). Дальше разница будет в зависимости от того, как будет увеличиваться количество данных и в каких таблицах. А вот индекс для "where k.id_tip=2249" в обоих случаях или не взялся, или его нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 16:57 |
|
Странное поведение планировщика в FB3.
|
|||
---|---|---|---|
#18+
dimitrбаян. Сначала собери вместе все inner-джойны, потом дописывай к ним outer-джойны. Так не будет проблем. Вот так понял. А где-нибудь это описано? Или всё-таки фича ФБ? Реально в запросе не два джойна. kdv, для поля k.id_tip индекс FK_KTS_RELATIONS_SPRAV, здесь всё хорошо. А почему по скорости примерно одинаково? Просто отключил фильтры по таблице kts, для примера. На самом деле и заметил лишь из-за того, что при накладывании ещё фильтров на таблицу kts ничего не менялось. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 17:31 |
|
Странное поведение планировщика в FB3.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 17:42 |
|
Странное поведение планировщика в FB3.
|
|||
---|---|---|---|
#18+
KreatorXXIА почему по скорости примерно одинаково? патамушта почти одинаково: "Время выполнения запроса = 1s 794ms Reads from disk to cache = 13 814 Чтений из кэша = 1 063 774 Время выполнения запроса = 1s 934ms Reads from disk to cache = 13 899 Чтений из кэша = 1 210 186" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2018, 18:49 |
|
|
start [/forum/topic.php?fid=40&msg=39647742&tid=1561097]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
130ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 229ms |
0 / 0 |