Home  >  Article  >  Database  >  SQL Server数据库分区表

SQL Server数据库分区表

WBOY
WBOYOriginal
2016-06-07 14:55:141090browse

SQL Server数据库分区表 SQL Server 本文介绍一个SQL Server数据库分区表的应用实例,通过这个实例,我们得出:创建分区表可以优化查询的效率。接下来就让我们来一起看看这个实例吧。AD: 用SQL Server数据库做一个网游发号系统。功能是将厂商给的N个卡号导入

SQL Server数据库分区表 SQL Server
本文介绍一个SQL Server数据库分区表的应用实例,通过这个实例,我们得出:创建分区表可以优化查询的效率。接下来就让我们来一起看看这个实例吧。

AD: 


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



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

分区函数如下:

CREATE PARTITION FUNCTION [Card_PF](int)   AS   RANGE LEFT FOR VALUES (500, 1000, 1500, 2000, 2500, 3000) 这里我是用的ActivityID作为分区的条件。每500个活动一个区。

分区方案如下:

CREATE PARTITION SCHEME [Card_PS]   AS   PARTITION [Card_PF] TO ([Card1], [Card2], [Card3], [Card4], [Card5], [Card6], [Card7]) 下图是对应的文件和文件组:





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



到此为止分区表已经创建完毕,为了更好的测试效果我在这个新建立的表里从新插入2000W条数据,同样的SQL语句运行时间在1秒左右。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn