mysql - query - EXPLAIN SELECT en otras bases de datos
plan de ejecucion mysql workbench (6)
Considero que la consulta EXPLAIN SELECT es muy útil en MySQL porque proporciona información sobre cómo se ejecutará SQL y brinda la oportunidad de analizar, por ejemplo, los índices faltantes que debe agregar para mejorar la respuesta ANTES de realizar la consulta y analizar las estadísticas.
Mi pregunta es: en bases de datos como MS Sql, Firebird, Ingres, ¿hay un comando similar disponible?
En Firebird tenemos PLAN, pero es muy débil porque muchas veces uno tiene que ejecutar consultas muy largas para ver un error simple.
Atentamente,
Mauro h. Leggieri
En Oracle tenemos
EXPLAIN PLAN for sql
http://www.adp-gmbh.ch/ora/explainplan.html
En MS SQL Server puede obtener una versión de texto o XML del plan de ejecución.
SET SHOWPLAN_XML ON|OFF
SET SHOWPLAN_TEXT ON|OFF
Sin embargo, estos se ven mejor usando la herramienta visual en Sql Server Management Studio / TOAD.
http://msdn.microsoft.com/en-us/library/ms176058.aspx
Otra cosa que es bastante útil es
SET STATISTICS IO ON|OFF
MS SQL tiene una utilidad en Management Studio llamada Display Execution Plan (Estimated and Exact Plan) cuando se ejecuta una consulta. también puede mostrar estadísticas para la consulta (tiempo de ejecución, número de filas, tráfico, etc.)
Para Ingres, lo siguiente le dará el plan final elegido con estimaciones en cuanto al número de filas, E / S de disco y ciclos de CPU:
set qep
Para obtener el plan pero no ejecutar el SELECT también agregar.
set optimizeonly
volver a habilitar la ejecución de la consulta:
set nooptimizeonly
para obtener las estadísticas reales de la consulta ejecutada, para comparar con el resultado de "set qep":
set trace point qe90
Consulte http://docs.ingres.com/Ingres/9.2/SQL%20Reference%20Guide/set.htm para obtener más información sobre lo anterior.
Para Ingres, vea también estos recursos:
Ejemplo de lectura e interpretación de un plan de ejecución de consultas (QEP) [pdf]
Un breve estudio de caso que demuestra el análisis y la interpretación de un QEP
Para el servidor mssql puedes usar
SET SHOWPLAN_TEXT ON and SET SHOWPLAN_TEXT OFF
esto evitará que las consultas se realicen realmente pero devolverá el plan de consulta.
Para oráculo puedes usar
SET AUTOTRACE ON or EXPLAIN PLAN
(No sé sobre firebird o ingresé)
En Oracle
:
EXPLAIN PLAN FOR SELECT …
En PostgreSQL
:
EXPLAIN SELECT …
En SQL Server
:
SET SHOWPLAN_XML ON
GO
SELECT …
GO