Mysql 解释在其他数据库中选择
我发现EXPLAIN SELECT查询在MySQL中非常有用,因为它提供了有关如何执行SQL的信息,并提供了分析的机会,例如,在执行查询和分析统计数据之前,为了改进响应,应该添加的索引缺失 我的问题是:在MS Sql、Firebird、Ingres等数据库中,是否有类似的命令可用? 在Firebird中,我们有一个计划,但非常薄弱,因为很多时候,为了查看一个简单的错误,必须运行很长的查询 致以最良好的祝愿Mysql 解释在其他数据库中选择,mysql,oracle,firebird,sql-execution-plan,ingres,Mysql,Oracle,Firebird,Sql Execution Plan,Ingres,我发现EXPLAIN SELECT查询在MySQL中非常有用,因为它提供了有关如何执行SQL的信息,并提供了分析的机会,例如,在执行查询和分析统计数据之前,为了改进响应,应该添加的索引缺失 我的问题是:在MS Sql、Firebird、Ingres等数据库中,是否有类似的命令可用? 在Firebird中,我们有一个计划,但非常薄弱,因为很多时候,为了查看一个简单的错误,必须运行很长的查询 致以最良好的祝愿 Mauro H.Leggieri在《甲骨文》中: EXPLAIN PLAN FOR SEL
Mauro H.Leggieri在《甲骨文》中:
EXPLAIN PLAN FOR SELECT …
在PostgreSQL
中:
EXPLAIN SELECT …
在SQL Server的中
:
SET SHOWPLAN_XML ON
GO
SELECT …
GO
在甲骨文中,我们有
EXPLAIN PLAN for sql
在MS SQL Server中,可以获取执行计划的文本或XML版本
SET SHOWPLAN_XML ON|OFF
SET SHOWPLAN_TEXT ON|OFF
但是,最好使用SQLServerManagementStudio/TOAD中的可视化工具查看这些内容
另一个非常方便的方法是
SET STATISTICS IO ON|OFF
对于mssql服务器,您可以使用
SET SHOWPLAN_TEXT ON and SET SHOWPLAN_TEXT OFF
这将阻止查询实际执行,但会返回查询计划
对于oracle,您可以使用
SET AUTOTRACE ON or EXPLAIN PLAN
(我不知道firebird或ingres)MS SQL在Management Studio中有一个实用程序,在执行查询时称为Display Execution Plan(估计和精确)。它还可以显示查询的统计信息(运行时间、行数、流量等)对于Ingres,以下内容将为您提供所选的最终计划,并估计行数、磁盘IO和CPU周期:
set qep
要获取计划但不执行,请选择“还添加”
set optimizeonly
重新启用查询执行:
set nooptimizeonly
要获取已执行查询的实际统计信息,并与“set qep”的输出进行比较,请执行以下操作:
有关上述内容的更多信息,请参阅。有关Ingres,请参阅以下参考资料: 演示QEP分析和解释的简短案例研究
不错!我真的不知道在Firebird中,当您准备查询时,该计划是可用的。因此,您实际上不必运行查询来发现它的性能很差。在Firebird中,如果使用IBExpert或Database Workbench,您可以很容易地看到问题的根源。有一个很好的计划分析器,它可以显示索引字段或未索引字段
set trace point qe90