SqlServer性能优化:Partition(管理分区)
2010-03-10 00:00:00 来源:WEB开发网对于切换分区,即使是上千万级别的数据,也可以在不到1秒的时间完成分区的切换。所以虽然从表面上看,切换分区和调用Select或者Insert语句移动数据的结果是一样的,但效率却是不可同日而语的。
查看分区信息
除了利用上文提到的通过“管理压缩”的方式查看某张表的分区信息之外,SQL Server还提供了一张系统表查看数据库中的分区情况:
SYS.PARTITION_SCHEMES,数据库中所有分区方案的信息,包括对应的分区函数的ID。
SYS.PARTITION_FUNCTIONS,数据库中所有分区函数的信息,包括分区数等信息。
SYS.PARTITION_RANGE_VALUES,每个分区范围的信息,可以和SYS.PARTITION_FUNCTIONS联查。
比如可以通过如下的脚本,查出分区函数MyPartitionFunc的第一个分区的右边界:
SELECT value FROM sys.partition_range_values, sys.partition_functions
WHERE sys.partition_functions.function_id = sys.partition_range_values.function_id
AND sys.partition_functions.name = 'MyPartitionFunc' AND boundary_id = 1
还可以通过如下脚本,获取分区表中各分区的数据情况(行数,最大值,最小值):
SELECT
partition = $PARTITION.MyParitionFunc([ParitionDate])
,rows = COUNT(*)
,min = MIN([ParitionDate])
,max = MAX([ParitionDate])
FROM [MyTable]
GROUP BY $PARTITION.MyParitionFunc([ParitionDate])
ORDER BY PARTITION
具体可以参照MSDN:从已分区表和索引中查询数据和元数据
- ››sqlserver安装和简单的使用
- ››SqlServer触发器、存储过程和函数
- ››SQLServer建立交叉表查询
- ››SqlServer强制断开数据库连接的方法
- ››SQLServer 2005 海量数据解决方案
- ››SQLServer 2008数据库查看死锁、堵塞的SQL语句
- ››SqlServer 插入多条数据
- ››SQLServer 2008 R2导出的SQL文件中没有数据
- ››SQLSERVER通过游标查询两个数据表共有字段名组合成...
- ››sqlserver2008实现拼音首字母和随机n位数的生成
- ››SQLServer与Java数据类型对应表
- ››性能自检Win7快速提高系统性能3技巧
更多精彩
赞助商链接