加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server-2008-r2 – UAT和PROD服务器上执行计划的差异

发布时间:2021-01-12 10:53:11 所属栏目:编程 来源:网络整理
导读:我想领略为什么在UAT(运行3秒)和PROD(23秒运行)上执行沟通查询会有云云庞大的差别. UAT和PROD都具有完全数据和索引. 查询: set statistics io on;set statistics time on;SELECT CONF_NO,'DE','Duplicate Email Address ''' + RTRIM(EMAIL_ADDRESS) + ''' in

缓冲池的隐藏巨细也会影响优化措施的数据会见本钱模子.模子中的一个假设是每个查询都以冷缓存开始 – 因此起首会见页面会发生物理I / O.该模子确实试图思量一再见见未来自缓存的也许性,该身分取决于缓冲池的隐藏巨细等.

题目中表现的查询打算中的聚积索引扫描是一再见见的一个示例;对付嵌套轮回半毗连的每次迭代,扫描被重绕(一再,没有相干参数的改变).半毗连的外部输入预计28.7874行,而且这些扫描的查询打算属性表现预计的倒带为27.7874.

同样,仅在SQL Server 2012中,打算的根迭代器表现优化器硬件依靠相关部门中缓存的预计页数.此编号陈诉本钱算法的一个输入,该算法旨在思量一再页面会见来自缓存的也许性.

功效是,具有更高设置的最大缓冲池巨细的安装将倾向于低落与具有较小最大缓冲池巨细的安装对比读取沟通页面的扫描(或搜刮)的本钱.

在简朴的打算中,通过较量(预计的执行次数)*(预计的CPU预计的I / O)与预计的操纵符本钱,可以看到重绕扫描的本钱低落.因为半毗连和并集的影响,示例打算中的计较更伟大.

尽量云云,题目中的打算好像表白,一再扫描和建设姑且索引之间的选择很是风雅.在具有较大缓冲池的计较机上,一再扫描的本钱略低于建设索引.在具有较小缓冲池的计较机上,扫描本钱镌汰了较少的量,这意味着索引假脱机打算看起来轻微自制一点.

打算选择

优化器的本钱模子做出了很多假设,并包括大量具体的计较.并不老是(可能乃至凡是)可以遵循全部细节,由于并非全部我们必要的数字城市袒露,而且算法可以在差异版本之间举办变动.出格是,应用于思量到碰着缓存页面的机遇的缩放公式并不为人所知.

更重要的是,在这种非凡环境下,优化器的打算选择基于不正确的数字. Clustered Index Seek的预计行数为28.7874,而在运行时碰着256行 – 险些是一个数目级.我们无法直接看到优化器关于28.7874行内值的预期漫衍的信息,但它也很也许长短常错误的.

当预计错误时,打算选择和运行机遇能根基上不比偶尔性好.具有索引假脱机的打算恰比如一再扫描更好,但以为增进缓冲池的巨细是导致非常的缘故起因是错误的.

在优化用具有正确信息的环境下,它将发生一个别面的执行打算的也许性要大得多.具有更多内存的实例凡是比具有更少内存的另一个实例在事变负载上示意更好,可是没有担保,尤其是当打算选择基于不正确的数据时.

两个实例都以本身的方法提议穷乏索引.一个陈诉显式缺失索引,另一个陈诉利器具有沟通特性的索引假脱机.假如索引提供精采的机能和打算不变性,那也许就足够了.我倾向于重写查询,但这也许是另一个故事.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读