Исходный код вики План выполнения запроса
Редактировал(а) Alexandr Fokin 2025/04/09 10:53
Последние авторы
author | version | line-number | content |
---|---|---|---|
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 | ))) | ||
6 | |(% style="width:110px" %) |(% style="width:1384px" %)В рамках языка SQL в первую очередь определяется какие данные необходимо отобрать на основании запроса, но фактический алгоритм обращения к хранилищам формируется самой БД. | ||
7 | БД может иметь более одного способа получить одни и те-же данные (обращение к таблице или к [[Индексы>>doc:Разработка.Базы данных.Механизмы.Индексы.WebHome]], порядок выборок и соединений, фильтрация и сортировка и другое). | ||
8 | БД в некоторым смысле оценивает разные варианты получения данных (используя в том числе данные [[Статистика>>doc:Разработка.Базы данных.Механизмы.Статистика.WebHome]], оценивая кол-во извлекаемых строк и другое), стремясь найти наиболее эффективный способ получить необходимый результат. | ||
9 | |(% style="width:110px" %) |(% style="width:1384px" %)Оптимизация запроса - это попытка понять как БД выполняется запрос, выявить проблемные узлы плана, попытаться изменить запрос таким образом, чтобы повысить его эффективность. | ||
10 | Одна из возможных причин проблем с запросом это ситуация, когда оценочная и фактическая стоимости выполнения выбранного плана сильно различаются, что приводит к тому, что БД выбирает план, который на практике не является самым эффективным (или по крайне мере работает значительно хуже возможного). | ||
11 | |(% style="width:110px" %) |(% style="width:1384px" %)((( | ||
12 | Query Plan nodes | ||
13 | |||
14 | [[Конвейеризация операций>>doc:Архитектура и модели.Модели.Конвейеризация операций.WebHome]] | ||
15 | ))) | ||
16 | |(% style="width:110px" %) |(% style="width:1384px" %)Выявление долгих запросов в эксплуатируемой системе (данные о выполняемых запросах), выявление планов выполнения. | ||
17 | Выявление причин, оптимизация запросов. | ||
18 | |(% style="width:110px" %)Некоторые критерии|(% style="width:1384px" %)((( | ||
19 | | |Количество логических чтений | ||
20 | | |Количество затронутых в операции строк. | ||
21 | Соотношение планированного количества строк и фактического. | ||
22 | | |Порядок чтения. Используемые операторы чтения. | ||
23 | ))) | ||
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 | ---- |