Какие принципы используются для оптимизации sql запросов. Вопрос теоретический, дело в том ,что при работе с БД судя по моему общению, сводится к ускорению работы бд и к оптимизации запросов.С ускорением теория есть, а вот что значит оптимизация запроса, мне не ясно, какие принципы для этого используются. Есть ли алгоритмы действий.
Asked
Active
Viewed 106 times
6
-
1что значит оптимизация запроса Есть несколько аспектов. 1) Оптимизация логики. В более-менее сложных запросах часто бывает несколько принципиально разных подходов к получению одного и того же результата. 2) Оптимизация ресурсов. Выполнение запроса затрачивает процессорное время, память, дисковую и сетевую подсистемы, на потребление каждого типа ресурса можно влиять - изменением логики, индексированием, хинтами и пр. – Akina Nov 01 '18 at 04:42
1 Answers
8
Это значит, что нужно проанализировать план запроса и найти критические места в нем.
Например, вы можете увидеть то, что запрос по какой-то причине не использует ваши индексы и начать разбираться в чем проблема или каких-то критически нужных индексов вообще не хватает(обычно план запросов советует поставить индексы на какие-то поля)
Можно увидеть другие неоправданно дорогостоящие участки, что даст вам почву для раздумий, как их упростить.
Например, один большой запрос разбить на маленькие подзапросы добавляя промежуточные данные во временные таблицы, а потом соединяя их между собой в итоговый запрос.
iluxa1810
- 24,899