首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么导致Azure SQL和Server之间的执行计划不同?

是什么导致Azure SQL和Server之间的执行计划不同?
EN

Stack Overflow用户
提问于 2016-06-06 10:16:54
回答 1查看 796关注 0票数 3

我在Azure SQL (Tier S3) and SQL Server (12.0).上的同一个数据库副本上运行相同的查询,执行计划不同,Azure的性能似乎更差。DB是一个精确的副本,包含相同的索引。当观察执行计划时,Estimated Subtree Cost on SQL Server is 0.325 while on Azure SQL it is 1.431。执行时间的最大百分比由其中一个表上的聚集索引获取。这部分查询执行的相对比例在Azure SQL (84%) and SQL Server (52%)之间是不同的。

现在我的问题是:

我应该关心Azure SQL查询的性能吗?

如果您认为执行计划的差异是一个问题,请您提供建议,如果您有任何想法如何进一步诊断或找到一种方法来改进Azure SQL查询?如果有更多的信息我可以提供,请告诉我。

编辑: Server执行计划:

Server文件

Azure SQL执行计划:

Azure SQL XML文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-06 15:18:14

在两种instances.Total计划成本中,计划都是相同的--一直到100%.So --您可能会看到一个运营商的成本比另一个运营商高,但是所有的总和都高达100%。

我并不是说密钥查找不好,但是那些是随机读取的.From --我可以看到一个表被访问了两次(查找和查找).So--我建议在测试后添加修改下面的索引

这个索引[IX_InstantMessageThreadAccesses_ProfileId]应该有多一个键列(归档),并包含这个列(kastreadon).By,这样您就可以避免几乎44%的查询成本,并且在选择新计划时会产生SQL。

此外,我可以看到您的统计数据不是要更新的,我建议对所有使用huge扫描的表进行更新统计(如果表非常大,这可能会导致大量的I/O活动).

代码语言:javascript
复制
UPDATE STATISTICS <<tablename>> WITH FULLSCAN

更新问题,如果您有任何进一步的问题,现在完成的步骤和任何分歧,您正在看到

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37654865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档