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

SqlServer性能优化——Slide Window

 2010-03-31 00:00:00 来源:WEB开发网   
核心提示: 此时存档表中并没有数据,我们可以用ALTERTABLE[STable]SWITCHPARTITION1TO[DTable]PARTITION1将活动表的第一个分区迁移到存档表的第一个分区中,SqlServer性能优化——Slide Window(4),这样活动表的第一个分区、存档表的第二个分区为

此时存档表中并没有数据,我们可以用

ALTER TABLE [STable] SWITCH PARTITION 1 TO [DTable] PARTITION 1

将活动表的第一个分区迁移到存档表的第一个分区中。这样活动表的第一个分区、存档表的第二个分区为空,也就达成了前文所述的执行Slide Window的前提条件。

自动执行

有了存档表,就可以进行滑动窗口了。以用时间类型字段做分区依据的表为例,这里我把执行脚本存到一个存储过程里:

CREATE PROCEDURE [dbo].[sp_SlideWindow] 
@SplitRange SMALLDATETIME -- 指定活动表新增分区的边界 
 
AS 
BEGIN 
  DECLARE @SwitchRange SMALLDATETIME 
  DECLARE @MergeRange SMALLDATETIME 
  --获得活动表、存档表合并分区以及存档表的新分区的边界 
  SELECT @MergeRange=CONVERT(SMALLDATETIME,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 = 'E_Alive_Partition_Func' AND boundary_id = 1 
  SELECT @SwitchRange=CONVERT(SMALLDATETIME,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 = 'E_Alive_Partition_Func' AND boundary_id = 2 
 
  BEGIN TRANSACTION 
  ALTER PARTITION SCHEME [E_Alive_Partition_Schema] NEXT USED [PRIMARY] 
  ALTER PARTITION SCHEME [E_Staging_Partition_Schema] NEXT USED [PRIMARY] 
   
  --在活动表中新增分区 
  ALTER PARTITION FUNCTION [E_Alive_Partition_Func]()SPLIT RANGE(CONVERT(NVARCHAR,@SplitRange,120)) 
  --在存档表中新增分区      
  ALTER PARTITION FUNCTION [E_Staging_Partition_Func]()SPLIT RANGE(CONVERT(NVARCHAR,@SwitchRange ,120)) 
  --切换分区   
  ALTER TABLE [Alive_Table] SWITCH PARTITION 2 TO [Staging_Table] PARTITION 2 
   
  --合并活动表分区与存档表分区 
  ALTER PARTITION FUNCTION [E_Alive_Partition_Func]() MERGE RANGE(CONVERT(NVARCHAR,@MergeRange,120)) 
  ALTER PARTITION FUNCTION [E_Staging_Partition_Func]() MERGE RANGE(CONVERT(NVARCHAR,@MergeRange,120)) 
 
  COMMIT TRANSACTION 
END

上一页  1 2 3 4 5  下一页

Tags:SqlServer 性能 优化

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