Подтвердить что ты не робот

EXPLAIN SELECT в других базах данных

Я нашел запрос EXPLAIN SELECT очень полезным в MySQL, потому что он дает информацию о том, как SQL будет выполняться, и дает возможность анализировать, например, отсутствующие индексы, которые вы должны добавить, чтобы улучшить ответ. выполняя сам запрос и анализируя статистику.

Мой вопрос: В таких базах данных, как MS Sql, Firebird, Ingres, есть ли подобная команда?

В Firebird у нас есть PLAN, но он очень слаб, потому что много раз приходится запускать очень длинные запросы, чтобы просмотреть простую ошибку.

С уважением,

Мауро Х. Леггьери

4b9b3361

Ответ 1

В Oracle:

EXPLAIN PLAN FOR SELECT …

В PostgreSQL:

EXPLAIN SELECT …

В SQL Server:

SET SHOWPLAN_XML ON

GO

SELECT …

GO

Ответ 2

Для сервера mssql вы можете использовать

SET SHOWPLAN_TEXT ON and SET SHOWPLAN_TEXT OFF

это предотвратит фактическое вызывание запросов, но оно вернет их план запроса.

Для оракула вы можете использовать

SET AUTOTRACE ON or EXPLAIN PLAN

(я не знаю о firebird или ingres)

Ответ 3

В 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

Ответ 4

Для 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.

Ответ 5

У MS SQL есть утилита в Management Studio, которая называется Display Execution Plan (расчетная и точная) при выполнении запроса. он также может отображать статистику для запроса (время выполнения, количество строк, трафик и т.д.)