以 280W 数据为依据。对比SQL2008 表分区前和分区后的 T_SQL 效率_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 以 280W 数据为依据。对比SQL2008 表分区前和分区后的 T_SQL 效率

以 280W 数据为依据。对比SQL2008 表分区前和分区后的 T_SQL 效率

 2013/12/6 3:26:07  青牛客  博客园  我要评论(0)
  • 摘要:一:数据库的优化一直项目后期的重中之重,特别是当单表数据庞大到1000W时候。各种SQL语句执行效率都会慢很多。SQL效率与索引,行数据,列数据,以及Where刷选字段类型(效率整数型大于字符串,时间等式)都很有关系。平时的优化除了针对性增加非聚集索引,对字节较长的字符串如:身份证号码进行整形处理存储。对大文本比如信息正文进行单独表关联,对一些字段暂用的字节大小进行优化外。还可以对臃肿的表进行水平切分以及垂直切分,或者对整库进行切分,主从读写分离等诸多手段。二:以SQL2008企业版为例
  • 标签: 数据 SQL 效率 表分区

           一: 数据库的优化一直项目后期的重中之重,特别是当单表数据庞大到1000W时候。各种SQL语句执行效率都会慢很多。SQL 效率 与索引,行数据,列数据,以及Where 刷选字段类型 (效率 整数型大于字符串,时间等式)都很有关系。平时的优化 除了针对性增加非聚集索引,对字节较长的字符串 如:身份证号码进行整形处理存储。对大文本比如 信息正文进行单独表关联,对一些字段暂用的字节大小进行优化外。还可以对臃肿的表进行 水平切分以及垂直切分,或者对整库进行切分,主从读写分离等诸多手段。

          二:以 SQL 2008 企业版为例。单表数据量为380W,进行水平切分,分区处理 。应该能稍微对比出两者间的效率。

          三:如何建立分区表:参考大牛博客:ttp://blog.sina.com.cn/s/blog_614316190100egs2.html 

               ps:值得注意的建立 分区方案 分区函数的时候 文件。文件组最好多建立一个。楼主在建立一样的时候报错。多建立一个文件就通过了。如图:

                        

                   分区函数和分区方案脚本

USE [SMSRoute] GO

/****** Object:  PartitionFunction [partitionFunArea]    Script Date: 12/05/2013 22:27:09 ******/ CREATE PARTITION FUNCTION [partitionFunUserName](nvarchar(50)) AS RANGE LEFT FOR VALUES (N'ck_fengxiong_system', N'ck_hujiao_system', N'ck_jianfei_system', N'ck_yifubao_system', N'ck_zengzhi_system') GO

 

USE [SMSRoute] GO

/****** Object:  PartitionScheme [partitionSchemeUserName]    Script Date: 12/05/2013 22:27:45 ******/ CREATE PARTITION SCHEME [partitionSchemeUserName] AS PARTITION [partitionFunUserName] TO ([fengxiong], [hujiao], [zengzhi], [jianfei], [yifubao], [zengzhi]) GO

             

             四:以经典ROW_NUMBER 分页函数为对比。

                 

                     

 

                PS: 由于数据比较少。对比不是很明显。当数据超过1000W的时候差距才会逐渐明显。

                个人浅见,欢迎指正。

                  

发表评论
用户名: 匿名