plsql怎么查看sql执行计划

plsql怎么查看sql执行计划,第1张

打开PL/SQL Developer软件,请确保plsql能够成功连接到一个oracle数据库。

请点击输入图片描述

在PL/SQL Developer中写好一段SQL代码,按F5,或者点击“执行执行计划”图标,PL/SQL Developer会自动打开执行计划窗口,显示该SQL的执行计划。

可以看到窗口上方是sql语句,下方显示执行计划表格。表格的列主要包含描述、用户、对象、成本花费、IO开销等,表格,当然表格列还可以自定义。表格的行包含了查询逻辑的执行顺序和各个步骤信息。

请点击输入图片描述

执行计划表格内容的执行顺序是:按照从左至右,从上至下的步骤执行,具体是指执行计划按照层次逐步缩进,从左至右看,缩进最多的那一步最先执行,如果缩进量相同,则按照从上而下的方法判断执行顺序。

请点击输入图片描述

通过查看执行计划表格的cost列,即成本花费能够知道哪个步骤花费的成本高,通过查看执行计划表格的行中的objectname列,能够知道是否使用到表中的索引。

1.输入一个查询语句看看SQL Server是如何显示查询计划的吧。

select v.OrderID, v.CustomerID, v.CustomerName, v.OrderDate, v.SumMoney, v.Finished

from OrdersView as v

where v.OrderDate >= '2010-12-1' and v.OrderDate <'2011-12-1'

其中,OrdersView是一个视图,其定义如下:

SELECT dbo.Orders.OrderID, dbo.Orders.CustomerID, dbo.Orders.OrderDate,

dbo.Orders.SumMoney, dbo.Orders.Finished,

ISNULL(dbo.Customers.CustomerName, N'') AS CustomerName

FROM dbo.Orders LEFT OUTER JOIN

dbo.Customers ON dbo.Orders.CustomerID = dbo.Customers.CustomerID

对于前一句查询,SQL Server给出的查询计划如下(点击工具栏上的【显示估计的执行计划】按钮):

从这个图中,我们至少可以得到3个有用的信息:

1. 哪些执行步骤花费的成本比较高。显然,最右边的二个步骤的成本是比较高的。

2. 哪些执行步骤产生的数据量比较多。对于每个步骤所产生的数据量, SQL Server的执行计划是用【线条粗细】来表示的,因此也很容易地从分辨出来。

3. 每一步执行了什么样的动作。

对于一个比较慢的查询来说,我们通常要知道哪些步骤的成本比较高,进而,可以尝试一些改进的方法。 一般来说,如果您不能通过:提高硬件性能或者调整OS,SQL Server的设置之类的方式来解决问题,那么剩下的可选方法通常也只有以下这些了:

1. 为【scan】这类 *** 作增加相应字段的索引。

2. 有时重建索引或许也是有效的,具体情形请参考后文。

3. 调整语句结构,引导SQL Server采用其它的查询方案去执行。

4. 调整表结构(分表或者分区)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6689766.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-26
下一篇2023-03-26

发表评论

登录后才能评论

评论列表(0条)

    保存