开发学院数据库MSSQL Server SqlServer性能优化:Partition(管理分区) 阅读

SqlServer性能优化:Partition(管理分区)

 2010-03-10 00:00:00 来源:WEB开发网 闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�闂傚倸鍊风粈渚€骞夐敓鐘插瀭闁汇垹鐏氬畷鏌ユ煙閹殿喖顣奸柛搴$У閵囧嫰骞掗幋婵冨亾閻㈢ǹ纾婚柟鐐灱濡插牊绻涢崱妤冃℃繛宀婁簽缁辨捇宕掑鎵佹瀸闂佺懓鍤栭幏锟�濠电姷鏁告慨顓㈠箯閸愵喖宸濇い鎾寸箘閹规洟姊绘笟鈧ḿ褍煤閵堝悿娲Ω閳轰胶鍔﹀銈嗗笂閼冲爼鍩婇弴銏$厪闁搞儮鏅涙禒褏绱掓潏鈺佷槐闁轰焦鎹囬弫鎾绘晸閿燂拷闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�  闂傚倸鍊烽懗鑸电仚缂備胶绮〃鍛村煝瀹ュ鍗抽柕蹇曞У閻庮剟姊虹紒妯哄闁圭⒈鍋嗛惀顏囶樄闁哄本娲樼换婵婄疀閺囩姷鐛ラ梻浣哄帶婢瑰﹥绂嶅⿰鍫氣偓鏃堝礃椤忎礁浜鹃柨婵嗛婢ь喖霉閻樻瑥瀚粻楣冩煕椤愩倕鏋庨柣蹇嬪劜閵囧嫰寮村Ο鍝勫Е濡炪們鍨洪悷鈺呭箖閳╁啯鍎熼柕鍥у簻閹凤拷
核心提示: 对于切换分区,即使是上千万级别的数据,SqlServer性能优化:Partition(管理分区)(3),也可以在不到1秒的时间完成分区的切换,所以虽然从表面上看,查出分区函数MyPartitionFunc的第一个分区的右边界:SELECTvalueFROMsys.partition_range_

对于切换分区,即使是上千万级别的数据,也可以在不到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:从已分区表和索引中查询数据和元数据

上一页  1 2 3 

Tags:SqlServer 性能 优化

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接