sql server 执行计划(execution plan)介绍

大纲:目的介绍sql server 中执行计划的大致使用,当遇到查询性能瓶颈时,可以发挥用处,而且带有比较详细的学习文档和计划,阅读者可以按照我计划进行,从而达到对执行计划一个比较系统的学习。


  1. 什么是sql server 执行计划
  2. sql server 执行计划的大致使用
  3. 学习计划

 

1.什么是sql server 执行计划
  •   执行计划是查询优化器对我们提交的T-SQL查询请求的最有效方法的的执行结果,执行计划可以告诉我们查询是如何执行的,当数据库查询进行故障排查时,使用执行计划是最主要的方法。
  •   执行计划的展现方式有三种,视图型,文本类型,xml类型。
2.sql server的大致使用 下面是一个小例子

  选中需要查询数据,右键出现 Display Estimated Execution Plan,或者使用快捷键Ctrl + L,可以马上查看执行计划

结果:

右键放在查询计划图标上面可以看到下面详细信息,命中的索引,I/O 消耗信息,CPU 消耗,查询结果行数,非常直观的可以看出各种参数

 

 

 3.学习路线

学习执行计划中各种图标含义,图标学习地址:https://msdn.microsoft.com/zh-cn/library/ms191158(v=sql.120).aspx

 

加上微软官方的一些学习文档:https://msdn.microsoft.com/zh-cn/library/ms178071(v=sql.105).aspx

 

下面是我认为写的比较好的一些实战介绍:

http://www.cnblogs.com/biwork/archive/2013/04/11/3015655.html(详细介绍 执行计划)

http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html看懂SqlServer查询计划

http://www.cnblogs.com/kissdodog/p/3160560.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一个简单的 SQL Server Execution Plan 示例: 假设有一个名为“Orders”的表,其中包含订单信息。我们想要查看最近30天内的所有订单,并按订单日期排序。以下是一个SQL查询和它的Execution Plan: ``` SELECT OrderID, OrderDate, CustomerID, TotalAmount FROM Orders WHERE OrderDate >= DATEADD(day, -30, GETDATE()) ORDER BY OrderDate DESC ``` Execution Plan如下: ``` |--Sort(ORDER BY:([Orders].[OrderDate] DESC)) |--Clustered Index Scan(OBJECT:([Orders].[PK_Orders] AS [Orders])) ``` 这个Execution Plan的第一行是一个Sort操作,它使用了ORDER BY子句指定的列进行排序。第二行是一个Clustered Index Scan操作,它从表中检索数据并扫描索引。我们可以看到,这个Execution Plan使用了表的主键索引(PK_Orders)来扫描数据。 总的来说,这个Execution Plan的步骤是:使用主键索引扫描数据,然后按照OrderDate列的值进行排序。最后,将结果返回给用户。 ### 回答2: Execution Plan执行计划)是SQL Server中的一个非常重要的概念,它是由查询优化器生成的一组指令,用于确定如何执行查询语句以获取最佳性能。下面是一个使用Execution Plan来编写SQL Server的演示过程: 1. 首先,我们创建一个简单的表来模拟数据表,在表中插入一些数据: ```sql CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, Name NVARCHAR(100), Department NVARCHAR(50), Salary DECIMAL(18, 2) ) INSERT INTO Employees VALUES (1, 'John Doe', 'Sales', 5000) INSERT INTO Employees VALUES (2, 'Jane Smith', 'Marketing', 6000) INSERT INTO Employees VALUES (3, 'Mike Johnson', 'IT', 7000) ``` 2. 接下来,我们编写一个简单的查询语句,用于查询工资低于6000的员工: ```sql SELECT Name, Department, Salary FROM Employees WHERE Salary < 6000 ``` 3. 在SQL Server Management Studio(SSMS)中打开一个新的查询窗口,粘贴以上查询语句。 4. 在查询窗口中,点击工具栏上的"显示执行计划"按钮,或者使用快捷键Ctrl+M来启用执行计划。 5. 执行查询语句,SSMS将生成并显示查询的执行计划执行计划中包含多个操作符,例如扫描表(Table Scan)、索引扫描(Index Scan)、排序(Sort)等等。这些操作符代表了在执行查询时涉及到的不同操作。 6. 阅读执行计划,可以了解查询的执行流程,以及每个操作的代价估算、实际数据行数等信息。特别是,可以观察到是否存在性能瓶颈或者优化的空间。 通过使用Execution Plan,我们可以更好地了解查询语句在SQL Server中的执行情况,以便进行性能优化。除了简单的查询语句,Execution Plan还可以用于复杂查询的优化、索引的设计和优化以及其他数据库相关的性能问题的调优。同时,根据Execution Plan可以判断数据库是否需要优化或者重构,以提高系统的性能和响应速度。 ### 回答3: Execution Plan执行计划)对于SQL Server的性能优化非常重要。它可以帮助我们了解查询语句在数据库中的执行过程,并且提供了优化性能的建议。 下面是使用Execution Plan编写SQL Server的一个demo的示例: 首先,假设我们有一个名为"Employees"的表,包含员工的信息,包括员工ID、姓名、部门ID等字段。我们的目标是查询所有部门为部门ID为1的员工的姓名。 我们可以使用以下SQL查询语句来实现这个目标: ```sql SELECT Name FROM Employees WHERE DepartmentID = 1; ``` 接下来,在SQL Server Management Studio中,我们打开查询窗口并输入以上查询语句。然后点击工具栏上的"Include Actual Execution Plan"按钮,执行查询。 在结果窗口下方的"Execution Plan"选项卡中,我们可以看到查询的执行计划执行计划通常以图形化的方式呈现,包括各个操作符、数据流等。我们可以通过查看执行计划,了解查询的执行顺序、操作符的代价估算等信息,以及是否存在性能瓶颈。 在我们的示例中,执行计划显示了一个简单的查询计划,表明查询使用了索引扫描(Index Scan)操作符来获取结果。 此外,执行计划还可以提供一些性能优化的建议。例如,如果我们的查询中存在缺失的索引,执行计划会建议我们创建适当的索引来提高查询性能。 因此,在使用Execution Plan编写SQL Server的demo时,我们可以通过查看执行计划来了解查询的执行情况,并根据其建议来优化查询性能。这是一个非常有用的工具,能够帮助我们进行SQL Server性能调优。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值