日期:2014-05-17  浏览次数:20621 次

为什么我作的表分区后,查询速度总是不如未分区的表
    我测试过好多次,使用相同的表结构,数量,查询语句,索引等,就是只有一个区别,一个有分区,一个未分区,但从执行计划和运行时间看,总是未分区的会更快点,现在都搞不清,到底该不该分区,我的测试数据量是4000多万,而且我在磁盘阵列上也试了,把分区放在不同的磁盘上,结果还是一样。请高手指点一下,谢谢!
------最佳解决方案--------------------
 


 IO CPU 
扫描计数 物理读取 CPU 时间 占用时间 

没有包括分区字段的
 普通表 1 次 47 次 298 毫秒 28 毫秒 
分区表 1 次 47 次 359 毫秒 32 毫秒 
有分区字段的ORDERBY
 普通表 17 次 9538 次 874 毫秒 69 毫秒 
分区表 17 次 8964 次 812 毫秒 83 毫秒 
有分区字段的函数查询
 普通表 2 次 1012 次 31 毫秒 27 毫秒 
分区表 1 次 863 次 16 毫秒 23 毫秒 
有分区字段的范围查询
 普通表 1 次 178798 次 499 毫秒 2628 毫秒 
分区表 1 次 103866 次 499 毫秒 556 毫秒 
针对分区字段的查询
 普通表 1 次 4570 次 297 毫秒 296 毫秒 
分区表 17 次 4375 次 499 毫秒 56 毫秒 



刚好前段时间做了一系列的表分区的效率测试,可以参考一下。。

不是什么时候表分区都能提高效率的
------其他解决方案--------------------
索引也放到分区

------其他解决方案--------------------
别放到一个硬盘上。
------其他解决方案--------------------
建议看执行计划,也可能跟CPU性能有关,
因为会并行读取多个磁盘阵列上的多个数据文件,
若CPU线程数不够分配,那也只能一个一个去读了.

------其他解决方案--------------------
分区字段与查询字段的关系呢?
另外查询字段是否确定走索引?
------其他解决方案--------------------
跟硬件有关系
--reply by CSDN Study V1.0.0.3 (starts_2000)
------其他解决方案--------------------
1.你根据什么键值来做分区的
2.你的查询语句会用到分区键值该字段吗?

------其他解决方案--------------------
别放到一个硬盘上。
=======================
现在服务器都做阵列的好伐,所以这个问题应该是不存在的。
------其他解决方案--------------------
你的分区依据
你的索引

------其他解决方案--------------------
索引分区,具体看一下你的索引了。
------其他解决方案--------------------
引用:
你的分区依据
你的索引


分区依据列 ?  索引如何处理的?

------其他解决方案--------------------
该回复于2011-04-21 11:01:20被版主删除
------其他解决方案--------------------
索引分区
------其他解决方案--------------------
我估计是 你以字段 A建立的分区,但是查询的时候 你的查询条件是B,所以建立分区根本没有起到应该有的作用
------其他解决方案--------------------
重建几个索引
------其他解决方案--------------------
我的表有1.5亿条,按月分了24个区,建索引的时候在分区架构下,在同一个磁盘阵列里。做查询比没分的时候慢了挺多的,不知道为什么
------其他解决方案--------------------
我觉得可能会意义不大,但是应该没用不应该速度变慢了。我在分区架构下建立了一个主键和一个非聚集索引,不知道有什么影响吗。
------其他解决方案--------------------
如果 分区是放在一个阵列里面也是没意义的
------其他解决方案--------------------