推广

SQL基础-执行计划-源动力

iseeyu3年前 (2024-02-22)推广164

image.png

  • 实际执行计划

实际运行SQL语句,包含处理的行数、经过的时间、CPU、内存 和 I/O 使用情况等

image.png

查看执行计划

显示分析、编译和执行各语句所需的毫秒数
SET STATISTICS TIME ON

当 SET STATISTICS TIME 为 ON 时,会显示语句的时间统计信息。为 OFF 时,不显示时间统计信息。
SET STATISTICS TIME 的设置是在执行或运行时设置,而不是在分析时设置。

若要使用 SET STATISTICS TIME,用户必须具有执行 Transact-SQL 语句的相应权限。但不需要 SHOWPLAN 权限。

image.png

显示语句生成的磁盘活动量的信息
SET STATISTICS IO ON

image.png

扫描计数:索引或表扫描次数

逻辑读取:数据缓存中读取的页数

物理读取:从磁盘中读取的页数

预读: 为进行查询而放入缓存的页数

lob逻辑读取:从数据缓存读取的页数。 包括 text、ntext、image、varchar(max)、 nvarchar(max)、varbinary(max) 或列存储索引页

lob物理读取:从磁盘读取的页数。 包括 text、ntext、image、varchar(max)、 nvarchar(max)、varbinary(max) 或列存储索引页

lob预读:为进行查询而放入缓存的页数。 包括 text、ntext、image、varchar(max)、 nvarchar(max)、varbinary(max) 或列存储索引页

image.png

  • 按照从右到左、从上到下的方式阅读执行计划。
  • 箭头宽度与箭头数据量成正比。
  • 最左侧的运算符中可以查看该执行计划的缓存大小。
  • 表运算符中估计行数与实际行数是否一致(统计信息是否过期)

image.png

  • 执行 Transact-SQL 语句的适当权限。
  • 对包含 Transact-SQL 语句所引用对象的所有数据库的 SHOWPLAN 权限。

运算符解释:
https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/ms191158(v=sql.105)

看懂执行计划

image.png

image.png

image.png

image.png

image.png

嵌套循环联接(Nested Loops Join)

嵌套循环联接使用一个联接输入作为外部输入表,另一个作为内部输入表。外部输入表是执行计划中上面的输入,而内部输入表是下面的输入表。外部循环逐行消费外部输入表。内部循环为每个外部行执行一次,搜索内部输入表的匹配行。

image.png

哈希联接(Hash Join)

哈希联接运算符通过计算其生成输入中每行的哈希值生成哈希表。对于联接,使用第一个(顶端)输入生成哈希表,使用第二个(底端)输入探测哈希表。按联接类型规定的模式输出匹配项(或不匹配项)。

image.png

合并联接(Merge Join)

合并联接要求两个联接输入在合并列上排序,这将在联接条件中定义。如果两个联接上有索引,那么联接输入由该索引排序。因为每个联接输入都被排序,合并排序从每个输入得到一行比较是否相等,如果它们相等,匹配的行被生成。这个过程重复直到所有行都被处理。

image.png

image.png

分析执行计划及优化

隐式转换

SELECT TOP 10000 u.UserCode,u.UserName,o.HostIP,o.FunctionName
FROM myUser u 
INNER JOIN myOperLog o ON o.BUGUID = u.BUGUID
WHERE o.HostIP='192.168.0.34'
AND u.UserName='售楼部'

image.png

image.png

image.png

书签查找(键查找)

image.png

image.png

image.png

image.png

image.png

image.png

临界点是查询计划“提示”从寻找不覆盖的非聚集索引到扫描聚集索引或堆的阈值。
基本公式并不是硬性的规则,因为还有其他各种影响因素,它是这样的:

  • 当估计行数超过表中页数的33%时,通常会出现聚集索引(或表)扫描。
  • 当估计行数低于表中页的25%时,通常会出现非群集查找加键查找。
  • 在25%到33%之间,它可以走任何一条路。

image.png

参数嗅探

image.png

image.png

image.png

重编译

根据数据库新状态的不同,数据库中的某些更改可能导致执行计划效率降低或无效。
SQL Server 将检测到使执行计划无效的更改,并将计划标记为无效。
此后,必须为执行查询的下一个连接重新编译新的计划。
导致计划无效的情况包括:

  • 对查询所引用的表或视图进行更改(ALTER TABLE 和 ALTER VIEW)。
  • 对单个过程进行更改,这将从缓存中删除该过程的所有计划 (ALTER PROCEDURE)。
  • 对执行计划所使用的任何索引进行更改。
  • 对执行计划所使用的统计信息进行更新,这些更新可能是从语句(如 UPDATE STATISTICS)显式生成,也可能是自动生成的。
  • 删除执行计划所使用的索引。
  • 显式调用 sp_recompile。
  • 对键进行大量更改(这些更改是对查询所引用的表进行修改的其他用户执行 INSERT 或 DELETE 语句所产生的)。
  • 对于带触发器的表,如果插入的或删除的表内的行数显著增长。
  • 使用 WITH RECOMPILE 选项执行存储过程。

执行计划分析优化步骤

1、找到逻辑读取次数最多的表、执行计划中开销最大的查询

2、在图形执行计划中找到对应的表的运算符,不是聚集索引查找或索引查找的,如堆表、聚集索引扫描、键查找、一个表使用了2个索引关联取数等,结合表的数据量和现有索引情况尝试优化,如新建缺失索引(执行计划中建议的缺失索引不应照搬,应分析后再创建或修改现有索引,同时应删除缺失索引中的聚集键),修改索引为包含索引等(表数据量小的情况下,索引扫描可能更优于索引查找)

3、索引无法提高性能的情况下,检查估计行数与实际行数的差别,更新统计信息。还应分析执行时间长的SQL语句,修改SQL语句的写法,将SELECT子句中的子查询、自定义标量函数(串行)、APPLY运算符等改写为JOIN联接,尽量减少中间结果的数据量,如使用CTE、临时表等,尽量少用表变量,表变量不创建统计信息,会导致执行计划不准确

4、重复步骤1-3,直至图形执行计划中每个表对应的运算符基本为聚集索引查找或索引查找

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/55965.html

相关文章

西安企业做百度推广,一个月花三千和花三万到底差在哪?

4|最近跟几个西安的老板聊天,发现一个挺有意思的现象:同样做百度推广,有人一个月花三千块,询盘不断;有人一个月砸三万,水花都没见着。问他们区别在哪,大多数人说不清楚,只知道'钱花了,没效果'。 5| 6|百度推广这东西,说复杂也复杂,说简单也简单。核心就一件事:让你的潜在客户搜某个词的时候,你的信息...

我想当策划,大学应该选什么专业?

我想当策划,大学应该选什么专业?

学,广告,传播,公关,这些专业其实都可以。另外也可以学像汉语言文学,以及一些跟文学相关的一些专业,会对你找工作有帮助。但是,你想从事这个这份职业,除了专业的学习之外,更多的是,你要在上学的时候积极参与一些更营销策划相关的社会实践。比如说你可以做一些兼职,比如说帮别人去写稿,...

服装市场营销策略分析,“定位不慎满盘皆输”

服装市场营销策略分析,“定位不慎满盘皆输”

不同的区域需要不同的策略,而不同的营销策略需要不同的销售思路来配合。因此,在研究女装产品销售思路之前,最好先对于市场与营销策略做一次深入地了解。1.市场区域化(market segmentation):目标营销的第一步,是将整个市场拆分成若干个同性质的小市场。2.目标市场的...

晚间悦读丨你的思维方式,决定你的人生高度!

晚间悦读丨你的思维方式,决定你的人生高度!

越长大,越发现,能够决定你人生高度的,往往是你的认知层次。 你的认知在哪个层级,你的人生就处在什么状态。你认知的高度,决定了你人生的高度。 那如何才能升级方式、提升认知能力呢?可以从这三个方面做出改变。 NO. 1 改变态度 有人...

编写项目营销策划方案六大要点

编写项目营销策划方案六大要点

现在商业发展非常迅速,的需求非常的大,但是要做好营销策划是有一定难度的,我把自己做营销策划的一些体会在这里分享给朋友们。营销策划方案六大要点我们先说项目营销策划方案这个话题。大部分的营销策划人都是在企业里工作,大部分项目之初都是来源于一个想法,创始人、老板或者创始团队的一个...

【商场营销策划】如何进行商场营销策划?

【商场营销策划】如何进行商场营销策划?

商场是策划者们关注的永恒话题,那么究竟该如何作好商场营销策划呢?掌握以下这几点营销策略设计原则,至关重要!1.义利兼顾的原则。商场在获取利润的同时要充分考虑到消费者的合法利益和商场的长远利益。在作商场活动营销策略方案的时候应该将这一点作为首要的原则。对商场有利而对顾客不利的...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片