Ответ 1
В Oracle
:
EXPLAIN PLAN FOR SELECT …
В PostgreSQL
:
EXPLAIN SELECT …
В SQL Server
:
SET SHOWPLAN_XML ON
GO
SELECT …
GO
Я нашел запрос EXPLAIN SELECT очень полезным в MySQL, потому что он дает информацию о том, как SQL будет выполняться, и дает возможность анализировать, например, отсутствующие индексы, которые вы должны добавить, чтобы улучшить ответ. выполняя сам запрос и анализируя статистику.
Мой вопрос: В таких базах данных, как MS Sql, Firebird, Ingres, есть ли подобная команда?
В Firebird у нас есть PLAN, но он очень слаб, потому что много раз приходится запускать очень длинные запросы, чтобы просмотреть простую ошибку.
С уважением,
Мауро Х. Леггьери
В Oracle
:
EXPLAIN PLAN FOR SELECT …
В PostgreSQL
:
EXPLAIN SELECT …
В SQL Server
:
SET SHOWPLAN_XML ON
GO
SELECT …
GO
Для сервера mssql вы можете использовать
SET SHOWPLAN_TEXT ON and SET SHOWPLAN_TEXT OFF
это предотвратит фактическое вызывание запросов, но оно вернет их план запроса.
Для оракула вы можете использовать
SET AUTOTRACE ON or EXPLAIN PLAN
(я не знаю о firebird или ingres)
В Oracle мы имеем
EXPLAIN PLAN for sql
http://www.adp-gmbh.ch/ora/explainplan.html
В MS SQL Server вы можете получить текстовую или XML-версию плана выполнения.
SET SHOWPLAN_XML ON|OFF
SET SHOWPLAN_TEXT ON|OFF
Однако их лучше всего просматривать с помощью визуального инструмента в Sql Server Management Studio/TOAD.
http://msdn.microsoft.com/en-us/library/ms176058.aspx
Что-то еще, что довольно удобно, это
SET STATISTICS IO ON|OFF
Для Ingres следующее дает вам окончательный план, выбранный с оценками в отношении количества строк, дисковых операций и циклов ЦП:
set qep
Чтобы получить план, но не выполнить SELECT, добавьте
set optimizeonly
повторное включение выполнения запроса:
set nooptimizeonly
чтобы получить фактическую статистику для выполненного запроса, сравнить с выходом из "set qep":
set trace point qe90
Подробнее см. http://docs.ingres.com/Ingres/9.2/SQL%20Reference%20Guide/set.htm.
У MS SQL есть утилита в Management Studio, которая называется Display Execution Plan (расчетная и точная) при выполнении запроса. он также может отображать статистику для запроса (время выполнения, количество строк, трафик и т.д.)
Для Ingres см. также эти ресурсы:
Пример чтения и интерпретации плана выполнения запросов (QEP) [pdf]
Краткое исследование, которое демонстрирует анализ и интерпретацию QEP