|
select * from (select ....) ... оптимизация
|
|||
---|---|---|---|
#18+
Всем доброго дня, разбираю сейчас проблемы с неиндексированными запросами в одном из проектов и столкнулся с запросами вида select Table.A, Table.B, Table.D from (select * from Table where ....) where .... которые по идее переписываются без проблем как select Table.A, Table.B, Table.D from Table where .... Посколку явление это в этом проекте массовое и походу эти запросы генерируются фреймворком автоматически (этот вопрос я пока проясняю) возникает вопрос насколько такие запросы проблематичны. IBExpert при анализе их производительности показывает что всё в порядке и если есть задержки по причине отсутствия индексов при их создании они исчезают. Но у меня возникают сомнения на тему внутренней оптимизации таких запросов в FB (2.5.8) вот пара примеров таких запросов: Код: 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.
Plan -------------------------------------------------------------------------------- PLAN SORT ((WSOBJLOG INDEX (IDX_WSOBJLOG_DTAGVGID))) ------ Performance info ------ Prepare time = 16ms Execute time = 109ms Avg fetch time = 7,27 ms Current memory = 36.841.296 Max memory = 36.849.912 Memory buffers = 2.048 Reads from disk to cache = 15.269 Writes from cache to disk = 0 Fetches from cache = 75.342 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 11:55 |
|
select * from (select ....) ... оптимизация
|
|||
---|---|---|---|
#18+
hlopotun Но у меня возникают сомнения на тему внутренней оптимизации таких запросов в FB (2.5.8) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 12:27 |
|
select * from (select ....) ... оптимизация
|
|||
---|---|---|---|
#18+
hlopotun которые по идее переписываются без проблем как hlopotun вот пара примеров таких запросов: Звездочки - зло независимо от. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 12:41 |
|
select * from (select ....) ... оптимизация
|
|||
---|---|---|---|
#18+
hvlad hlopotun Но у меня возникают сомнения на тему внутренней оптимизации таких запросов в FB (2.5.8) в тех запросах что найду да, но поскольку фреймворк по видимому некоторые из них генерирует сам то интересен ответ на вопрос - в плане оптимизации, само по себе использование select ... from (select ...) порочно или нет для FB 2.5.8? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 13:11 |
|
select * from (select ....) ... оптимизация
|
|||
---|---|---|---|
#18+
hlopotun, Запрос неудобоваримый для чтения. Его хотя бы отформатировать. Я вот очень часто использую "select ... from select ...". Превратить его в один select порой проблематично, поскольку нужно наложить два условия where, причём второе условие уже по "агрегатам". Можно переписать через CTE. То что джойн к селекту тоже не криминал. Тоже через CTE можно попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 13:13 |
|
select * from (select ....) ... оптимизация
|
|||
---|---|---|---|
#18+
hlopotun в плане оптимизации, само по себе использование select ... from (select ...) порочно или нет для FB 2.5.8? Или я не понимаю суть сомнений. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 13:17 |
|
|
start [/forum/topic.php?fid=40&msg=40109162&tid=1559896]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
144ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 235ms |
total: | 467ms |
0 / 0 |