WEB开发网
开发学院数据库MSSQL Server SqlServer性能优化——Slide Window 阅读

SqlServer性能优化——Slide Window

 2010-03-31 00:00:00 来源:WEB开发网   
核心提示: 在整个滑动窗口的操作过程中,活动表和存档表分别合并和拆分了两次,SqlServer性能优化——Slide Window(5),有四个相关边界值,而由于活动表的合并边界值和存档表的合并边界值是一样的,能指点出文中瑕疵疏漏,不至于谬误流传,所以实际有三个边界值,其中合并边界就是第一个分区和第二个分区

在整个滑动窗口的操作过程中,活动表和存档表分别合并和拆分了两次,有四个相关边界值。而由于活动表的合并边界值和存档表的合并边界值是一样的,所以实际有三个边界值。其中合并边界就是第一个分区和第二个分区的边界,而存档表的拆分边界就是活动表的第二个分区和第三个分区的边界,这些都可以通过 sys.partition_range_values, sys.partition_functions表获得。所以这个存储过程只需要输入一个变量,即活动表新拆分出的分区的边界。

注意

由于新拆分的分区中非聚集索引不会应用原来的压缩方式,所以如有需要,应当在存储过程中补充对相应索引做压缩的操作。

之所以在存储过程中先进行分区的拆分,再进行分区切换,最后进行分区合并,是考虑对空的分区(切换前的存档表的第二分区、切换后的活动表的一、二分区)进行拆分或者合并效率比较高。

以上只是Slide Window的一种方式,事实上,如果对历史数据不那么在意,我们依然可以用分区切换的方式,将旧的数据移出然后删除。或者使用多个存档表,每次都将活动表的最后一个分区移到新的存档表中,这样省去了合并存档表分区的性能消耗,但多个存档表可能在管理上会比较麻烦。

后记:

关于数据库的“压缩”、“分区”、“滑动窗口”,这里就算告一段落了。虽然题目是“SqlServer性能优化”,其实这里提到的仅仅是关于性能优化比较偏门的一小部分,最常用的类似“索引”、“查询结构”之类的性能优化技巧并没有涉及。

而即使是这一小部分,也是诚惶诚恐。虽然这些技巧都在实际应用中实践过,但真要写出来,却还是有些力不从心,写博的过程基本就是重新学习的过程,其间翻阅了很多资料,不求有功,但求无过,不至于误人子弟。但毕竟百密一疏,而且即使看的资料,也不敢保证来源真确。所以来往过客,如有个中高手,能指点出文中瑕疵疏漏,不至于谬误流传,小弟不胜感激。

上一页  1 2 3 4 5 

Tags:SqlServer 性能 优化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接