2009-08-31 11 views
18

Encontré EXPLAIN SELECT consulta muy útil en MySQL porque proporciona información sobre cómo se ejecutará SQL y brinda la oportunidad de analizar, por ejemplo, índices faltantes que debe agregar para mejorar la respuesta ANTES haciendo la consulta en sí y analizando las estadísticas.EXPLAIN SELECT en otras bases de datos

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 simple error.

Saludos,

Mauro H. Leggieri

+0

En Firebird el PLAN está disponible cuando * prepara * la consulta. Por lo tanto, no tiene que * ejecutar * la consulta para descubrir que tendrá un rendimiento bajo. –

+0

En Firebird, si usa IBExpert o Database Workbench: puede ver fácilmente de dónde viene el problema. Hay un buen analizador de PLAN que muestra el campo indexado o no indexado –

Respuesta

19

En Oracle:

EXPLAIN PLAN FOR SELECT … 

En PostgreSQL:

EXPLAIN SELECT … 

En SQL Server:

SET SHOWPLAN_XML ON 

GO 

SELECT … 

GO 
4

Para el servidor mssql puede utilizar

SET SHOWPLAN_TEXT ON and SET SHOWPLAN_TEXT OFF 

esto evitará que las consultas de los que realmente se exectued pero volverá consultan plan.

para Oracle puede utilizar

SET AUTOTRACE ON or EXPLAIN PLAN 

(no sé acerca de pájaro de fuego o ingres)

+0

¡Agradable! Realmente no sabía eso – RiddlerDev

0

MS SQL tiene una utilidad en el estudio de la gerencia llamado plan de ejecución de visualización (estimado y Exact) al ejecutar una consulta.también puede mostrar estadísticas para la consulta (tiempo de ejecución, número de filas, tráfico, etc.)

3

Para Ingres, lo siguiente le dará el plan final elegido con estimaciones en cuanto al número de filas, IO de disco y ciclos de CPU:

set qep 

para obtener el plan, pero no ejecuta el SELECT también se suman

set optimizeonly 

volver a habilitar la ejecución de consultas:

set nooptimizeonly 

para obtener el las estadísticas reales de la consulta ejecutada, para comparar con la salida de "QEP ajuste":

set trace point qe90 

Ver http://docs.ingres.com/Ingres/9.2/SQL%20Reference%20Guide/set.htm para obtener más información sobre lo anterior.

Cuestiones relacionadas