Инструменты пользователя

Инструменты сайта


explain

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

explain [2013/12/27 09:55] (текущий)
Строка 1: Строка 1:
 +====== EXPLAIN ======
 +  * [[http://​www.postgresql.org/​docs/​8.4/​static/​using-explain.html|PostgreSQL 8.4 Using EXPLAIN]]
 +  * [[http://​postgresql.leopard.in.ua/​html/#​x1-300002.6|А. Ю. Васильев aka leopard Работа с PostgreSQL. Оптимизация БД и приложения]]
  
 +  * [[http://​habrahabr.ru/​post/​98904/​|Что интересного нам расскажет EXPLAIN EXTENDED?]]
 +  * [[http://​www.opennet.ru/​base/​dev/​postgresql_tune.txt.html|Оптимизация SQL запросов и борьба с deadlock]]
 +
 +Команда **EXPLAIN [запрос]** показывает,​ каким образом сервер баз данных,​ например [[PostgreSQL]] собирается выполнять ваш запрос.
 +
 +Команда **EXPLAIN ANALYZE [запрос]** выполняет запрос и показывает как изначальный план, так и реальный процесс его выполнения.
 +
 +В выводе команды следует обращать внимание на следующее:​
 +  * Использование полного просмотра таблицы (seq scan).
 +  * Использование наиболее примитивного способа объединения таблиц (nested loop).
 +<​note>​Следует отметить,​ что полный просмотр таблицы далеко не всегда медленнее просмотра по индексу. Если, например,​ в таблице–справочнике несколько сотен записей,​ умещающихся в одном-двух блоках на диске, то использование индекса приведёт лишь к тому, что придётся читать ещё и пару лишних блоков индекса. Если в запросе придётся выбрать 80% записей из большой таблицы,​ то полный просмотр опять же получится быстрее.</​note>​
загрузка...
explain.txt · Последние изменения: 2013/12/27 09:55 (внешнее изменение)