专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Sql Server

2014下分区表导致的奇葩有关问题

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
2014下分区表导致的奇葩问题

  2014的新特性针对基数估计的新设计相信大家并不陌生,同时如果亲身体验过从低版本升级到2014的小伙伴一定感触良多。一个字 “丫的坑死我了!”

  很多因为升级到2014后语句莫名其妙的问题网上很多,今天讲述一个我在2014下遇到的分区表问题,话不多说先上个小奇葩:

 

  TF_Fees表为一个数据2QW+的数据表并作了200+分区,并且每个分区都在不同的文件组(非不同物理磁盘)(有人会说 谁会做200多个分区...好吧确实有)从执行计划来看这条简单的语句使用了IX_TF_Fees_14 这个索引查找并且耗时38毫秒!

 

 

  -------------------------------下面亮点来了-----------------------------------

指定使用  IX_TF_Fees_14 这个索引,神奇的效果出现了  执行时间0毫秒(反复测试的结果....)

 

------------------------------------肯定有人怀疑执行计划的问题-----------------------

    用本人资深找茬的功力我真没看出不同

--------------------------------那IO呢?-------------------------------

  用本人资深找茬的功力我还是没看出不同

 

 

  38毫秒和0毫秒看似没有差别,但是这条语句是在一个几万次的循环中,悲剧可想而知!!!

 

  真真的不明白是什么原理 SQL SERVER在编译语句选用索引,选用计划的时候到底做了什么,只能傻傻的尝试。表在没有分区的情况下执行时间很稳定都是0毫秒 ,毕竟这么简单的语句。那么和分区数是否有关系的?200+的分区数,尝试降低一半,下面我完全复制了这张表数据、索引等,不同的是这次我只用100个分区。

   

  话说100个分区的时间确实比200个分区的时间缩短将近一半。那么果真的分区个数导致的,这么简单离奇的时间变长? 真心想不明白这是为什么了!!!!!!!

  想不明白了....

  想不明白了....

  希望研究过分区表索引选用问题的大神给点思路...毕竟添加个指定索引不是解决问题的根本办法~~~~~~~~

 

  下面进一步看一些其他的例子:

 

 

除了上一篇的其他问题外还遇到了不少奇葩语句变慢...

 

这样的

 

 

这样的

 

 

以及这样的

 

 

还有这样的

 

 

 

 

 

 

等等等等等等.......看起来好像所有和这个分区表有关的查询都变慢了!!!那么是不是像上一面一样,显示添加索引指定就可以了呢????

 

答:......不是......

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: