分类目录

链接

2012 年 1 月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > SQL Server > 正文
SQL Server 2008数据库分区表
SQL Server 暂无评论 阅读(3,017)

SQL Server数据库做一个网游发号系统。功能是将厂商给的N个卡号导入到库里在固定的时间为用户提供领取。这个系统最大的亮点应该就是这个N的不确定性,不同的厂商提供的卡数量不同,N可能是10也可能是10W。经过分析得表结构如下图:

SQL Server数据库分区表的应用实例

 

现在做一个简单的测试,在这个表里插入2000W条数据,然后根据ActivityID随机查询一条数据出来,居然需要4秒多。。于是决定尝试用分区表来优化查询效率。

 

分区函数如下:

 

  1.     CREATE PARTITION FUNCTION [Card_PF](int)  
  2.      
  3.     AS  
  4.      
  5.     RANGE LEFT FOR VALUES (500, 1000, 1500, 2000, 2500, 3000) 

 

这里我是用的ActivityID作为分区的条件。每500个活动一个区。

 

分区方案如下:

  1. CREATE PARTITION SCHEME [Card_PS]  
  2. AS  
  3. PARTITION [Card_PF] TO ([Card1], [Card2], [Card3], [Card4], [Card5], [Card6], [Card7])

 

 

下图是对应的文件和文件组:

 

SQL Server数据库分区表的应用实例

 

SQL Server数据库分区表的应用实例

 

接下来就是最关键的一步,为这个表增加一个聚合索引,并且采用上面创建的分区方案:

 

SQL Server数据库分区表的应用实例

 

到此为止分区表已经创建完毕,为了更好的测试效果我在这个新建立的表里从新插入2000W条数据,同样的SQL语句运行时间在1秒左右。

 

关于SQL Server数据库分区表的知识就介绍到这里,如果您想了解更多的SQL Server数据库的知识,可以看一下这里的文章:http://blog.peos.cn/category/sql-server,您的收获将是我们最大的快乐!

 

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:SQL Server 2008数据库分区表 | Bruce's Blog

发表评论

留言无头像?