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

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

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.  
  3. AS  
  4.  
  5. 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://database.51cto.com/sqlserver/,您的收获将是我们***的快乐!

【编辑推荐】

  1. 误删SQL Server日志文件后怎样附加数据库
  2. SQL Server 2005数据库用户权限管理的设置
  3. MSSQL数据库跨表和跨数据库查询方法简介
  4. 在SQL SERVER 2005执行存储过程的权限分配问题
  5. T-SQL行列相互转换命令:PIVOT和UNPIVOT使用详解
责任编辑:赵鹏 来源: 博客园
相关推荐

2011-08-25 18:09:36

SQL Server创建数据仓库已分区表

2010-09-10 13:37:30

表分区SQL Server

2011-08-18 10:36:24

SQL ServerISNULL函数

2011-03-21 10:13:31

Sql Server数分区

2011-08-22 12:01:36

SQL Server代码优化

2011-08-22 09:55:30

SQL Server 排序

2010-07-16 14:17:18

SQL Server

2011-03-29 09:15:20

原始分区SQL Server数

2011-03-22 14:57:52

Oracle数据库普通表分区表

2010-07-09 11:28:12

SQL Server数

2010-07-15 17:28:50

SQL Server

2011-08-18 10:21:50

SQL ServerDATEPART

2010-09-25 15:37:38

SQL语句

2011-06-28 12:58:44

表分区

2009-06-25 10:25:39

SQL Server

2011-08-04 15:55:25

SQL Server数

2011-03-22 13:49:20

SQL Server数维度表事实表

2010-06-17 10:02:12

SQL Server数

2011-08-19 14:53:02

SQL ServerDataRelatio

2010-07-08 11:05:14

SQL Server数
点赞
收藏

51CTO技术栈公众号