|
План для коррелированного и некоррелированного подзапроса
|
|||
---|---|---|---|
#18+
FB 2.5.4. Уникальный индекс: Код: sql 1.
Обновляющий запрос с подзапросом: Код: sql 1. 2. 3. 4. 5.
FB дает план: Код: plaintext 1. 2.
Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Коррелированный подзапрос: Код: sql 1. 2. 3. 4. 5.
План Код: plaintext 1. 2.
Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Как видим, таблицы DIR$SERVICE$SERVICE и INF$ABONENT$BT стали читаться 7 и 7 раз вместо 3 и 1 соответственно. Вопросы ДЕ: Это баян? И сможет ли оптимизатор подобрать первый план в случае вот такого коррелированного подзапроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 08:50 |
|
План для коррелированного и некоррелированного подзапроса
|
|||
---|---|---|---|
#18+
CyberMax, не может. Попробуй проверить что будет если переписать на MERGE Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 09:27 |
|
План для коррелированного и некоррелированного подзапроса
|
|||
---|---|---|---|
#18+
блин, GROUP BY забыл Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 09:28 |
|
План для коррелированного и некоррелированного подзапроса
|
|||
---|---|---|---|
#18+
Навскидку не могу сказать. Если можешь сделать воспроизводимый пример - высылай, попробую посмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 09:37 |
|
План для коррелированного и некоррелированного подзапроса
|
|||
---|---|---|---|
#18+
Симонов Денис, Добавил в запрос запятую пропущенную. Результат выполнения как первом запросе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
А так, меня этот вопрос больше с теоретический точки зрения интересует :). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 09:44 |
|
План для коррелированного и некоррелированного подзапроса
|
|||
---|---|---|---|
#18+
CyberMax, с теоретической dimitr лучше скажет. Посмотрел на запросы ещё раз, по идее разницы быть не должно ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 09:56 |
|
План для коррелированного и некоррелированного подзапроса
|
|||
---|---|---|---|
#18+
dimitr, На пустых таблицах все воспроизводится. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Запросы: Код: sql 1. 2. 3. 4. 5.
Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 10:02 |
|
План для коррелированного и некоррелированного подзапроса
|
|||
---|---|---|---|
#18+
на пустых таблицах невозможно оценить качество плана, да и пример не совсем удачный - S NATURAL в первом варианте явно не равнозначен S INDEX (FK_DIR$SERVICE$SERVICE_TYPE_SER). Глядя на исходный пост, я бы навскидку посчитал второй план более оптимальным. И смотрел бы не на число индексированных чтений, а на число фетчей и на время выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 12:53 |
|
|
start [/forum/topic.php?fid=40&fpage=70&tid=1562601]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
34ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 159ms |
0 / 0 |