首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

优化!同一查询语句,两台机器执行计划不同、并行度有关问题

2012-04-26 
优化!!同一查询语句,两台机器执行计划不同、并行度问题两台服务器,CPU及内存不同,但多是多核相同查询如句,

优化!!同一查询语句,两台机器执行计划不同、并行度问题
两台服务器,CPU及内存不同,但多是多核

相同查询如句,一台上执行计划是索引查询,另一台则被分为 索引扫描+并行度(信息提示什么分区列) ,两库、表统计信息、结构完全一样。

被分为 索引扫描+并行度 的CPU时长在1000ms左右,而使用索引查询的只有10ms左右

是什么原因引起了不同的执行计划?如何解决???




[解决办法]
先MARK考虑一下
[解决办法]
并行度

这个不懂,帮顶
[解决办法]

SQL code
DBCC   CHECKDB   (数据库名)           DBCC   CHECKTABLE   (表名)         DBCC   CHECKDB有多个修复选项,其中一个是REPAIR_ALLOW_DATA_LOSS         执行由   REPAIR_REBUILD   完成的所有修复,包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象。这些修复可能会导致一些数据丢失。修复操作可以在用户事务下完成以允许用户回滚所做的更改。如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。修复完成后,备份数据库。         不过,需要先备份数据库,用这个选项可以修复,但可能丢失一部分数据。
[解决办法]
是不是你并行部分没有用到索引 检查一下
[解决办法]
不行的话建立包含性列 用索引覆盖试下
[解决办法]
站位学习!
[解决办法]
正常,不同的硬件就是会引起执行计划的不同。
[解决办法]
这样的问题我遇到过多次了,就算是内存相同,cpu只要不同,就有可能产生不同的执行计划。
[解决办法]
信息提示什么分区列)

是因为有分区列?这东西太深奥
[解决办法]
可以限制一下并行度试试
如使用
select * from tbname option(maxdop 1)
[解决办法]
with (index(xxx)) 
一般都是统计信息的问题导致计划不同
更新统计信息基本都能解决
或者干脆帮他指定索引
[解决办法]
尝试两种解决办法:
1.显示配置option(maxdop 1)
2.修改全局:
SQL code
sp_configure 'show advanced options', 1;GORECONFIGURE WITH OVERRIDE;GOsp_configure 'max degree of parallelism', 1;GORECONFIGURE WITH OVERRIDE;GOsp_configure 'show advanced options', 1;GORECONFIGURE WITH OVERRIDE;GO
[解决办法]
学习中!帮顶。。。

热点排行