Исходный код вики План выполнения запроса
Редактировал(а) Alexandr Fokin 2025/04/09 10:53
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
12.5 | 1 | |(% style="width:110px" %) |(% style="width:1384px" %)((( |
| 2 | |[[MSSQL>>doc:Разработка.Базы данных.SQL.MSSQL.WebHome]]|[[План выполнения запроса>>doc:Разработка.Базы данных.SQL.MSSQL.Механизмы.План выполнения запроса.WebHome]] | ||
| 3 | |[[PostgreSQL>>doc:Разработка.Базы данных.SQL.PostgreSQL.WebHome]]|[[План выполнения запроса>>doc:Разработка.Базы данных.SQL.PostgreSQL.Механизмы.PostgreSQL\. План выполнения запроса.WebHome]] | ||
| 4 | | | | ||
| 5 | ))) | ||
| |
12.7 | 6 | |(% style="width:110px" %) |(% style="width:1384px" %)В рамках языка SQL в первую очередь определяется какие данные необходимо отобрать на основании запроса, но фактический алгоритм обращения к хранилищам формируется самой БД. |
| |
12.10 | 7 | БД может иметь более одного способа получить одни и те-же данные (обращение к таблице или к [[Индексы>>doc:Разработка.Базы данных.Механизмы.Индексы.WebHome]], порядок выборок и соединений, фильтрация и сортировка и другое). |
| |
12.6 | 8 | БД в некоторым смысле оценивает разные варианты получения данных (используя в том числе данные [[Статистика>>doc:Разработка.Базы данных.Механизмы.Статистика.WebHome]], оценивая кол-во извлекаемых строк и другое), стремясь найти наиболее эффективный способ получить необходимый результат. |
| 9 | |(% style="width:110px" %) |(% style="width:1384px" %)Оптимизация запроса - это попытка понять как БД выполняется запрос, выявить проблемные узлы плана, попытаться изменить запрос таким образом, чтобы повысить его эффективность. | ||
| 10 | Одна из возможных причин проблем с запросом это ситуация, когда оценочная и фактическая стоимости выполнения выбранного плана сильно различаются, что приводит к тому, что БД выбирает план, который на практике не является самым эффективным (или по крайне мере работает значительно хуже возможного). | ||
| |
12.13 | 11 | |(% style="width:110px" %) |(% style="width:1384px" %)((( |
| 12 | Query Plan nodes | ||
| 13 | |||
| 14 | [[Конвейеризация операций>>doc:Архитектура и модели.Модели.Конвейеризация операций.WebHome]] | ||
| 15 | ))) | ||
| |
12.12 | 16 | |(% style="width:110px" %) |(% style="width:1384px" %)Выявление долгих запросов в эксплуатируемой системе (данные о выполняемых запросах), выявление планов выполнения. |
| |
12.11 | 17 | Выявление причин, оптимизация запросов. |
| |
12.14 | 18 | |(% style="width:110px" %)Некоторые критерии|(% style="width:1384px" %)((( |
| 19 | | |Количество логических чтений | ||
| |
12.15 | 20 | | |Количество затронутых в операции строк. |
| |
12.14 | 21 | Соотношение планированного количества строк и фактического. |
| 22 | | |Порядок чтения. Используемые операторы чтения. | ||
| 23 | ))) | ||
| |
12.4 | 24 | |
| 25 | ---- | ||
| 26 | |||
| 27 | ==== Внутренние ссылки: ==== | ||
| 28 | |||
| 29 | ====== Дочерние страницы: ====== | ||
| 30 | |||
| 31 | {{children/}} | ||
| 32 | |||
| 33 | ====== Обратные ссылки: ====== | ||
| 34 | |||
| 35 | {{velocity}} | ||
| 36 | #set ($links = $doc.getBacklinks()) | ||
| 37 | #if ($links.size() > 0) | ||
| 38 | #foreach ($docname in $links) | ||
| 39 | #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument()) | ||
| 40 | * [[$escapetool.xml($rdoc.fullName)]] | ||
| 41 | #end | ||
| 42 | #else | ||
| 43 | No back links for this page! | ||
| 44 | #end | ||
| 45 | {{/velocity}} | ||
| 46 | |||
| 47 | ---- |