成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server 2005 自動化刪除表分區設計方案

數據庫 SQL Server 自動化
SQL Server 2005是SQL Server數據庫開發過程中眾多版本之一,SQL Server 2005 是一個全面的數據庫平臺,使用集成的商業智能 (BI) 工具提供了企業級的數據管理。本文中將為大家介紹SQL Server 2005自動化刪除表分區設計方案。

導讀:隨著技術的發展進步,如今,SQL Server 2005數據庫自動化已經漸漸走近人們的生活,SQL Server 2005 自動化刪除表分區也已經實現啦,下文中將為大家詳細介紹SQL Server 2005 自動化刪除表分區設計方案,希望對大家能夠有所幫助。

我們的服務器的數據已經有了800G,并且每天進數據大概有120W條記錄(數據空間大概為7G),而服務器現在已經沒有太多的磁盤空間了,面對這樣的問題,一般都是使用交換表分區來快速刪除數據,并使用之前的分區來存放新進的數據,如果每次都人工的話就太麻煩了,所以我對這個如何進行交換分區刪除數據來清理磁盤空間做成了自動化。

 

分析與設計思路

分區特點:分區使用了自增ID作為分區字段;分區的索引進行存儲位置對齊;

設計步驟1:表分區已經確定了各個分區值,我們就用一個表保存可能存在的分區值,并插入到表中,當達到預警值(Change_Value)時,我們就執行交換分區;

設計步驟2:使用一個存儲過程來完成交換分區;

1) 創建一個臨時表

2) 交換分區數據

3) 刪除臨時表

4) 修改分區方案

5) 修改分區函數

設計步驟3:使用作業定時執行存儲過程,實現自動化;

 

參考腳本

下面是創建表的腳本和執行交換分區的存儲過程,希望對你有幫助。

創建表

CREATE TABLE [dbo].[PartitionManage](

[Id] [int] IDENTITY(1,1) NOT NULL,

[Change_Value] [int] NULL,

[Part_Value] [int] NULL,

[IsDone] [bit] NULL,

CONSTRAINT [PK_PartitionManage] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

 

插入數據

declare @i int

declare @maxValue int

set @i=10

set @maxValue=100

while @i <= @maxValue

begin

insert into dbo.PartitionManage values(@i-4,@i,0)

set @i = @i + 10

end

 

-- =============================================

-- Author: <Viajar>

-- Create date: <2011.02.22>

-- Description: <分區管理>

-- =============================================

CREATE PROCEDURE [dbo].[sp_PartitionManage]

AS

BEGIN

DECLARE @Max_value INT

DECLARE @Change_value INT

DECLARE @PARTITION_value INT

SELECT @Max_value = MAX(Id) FROM [dbo].[Archive]

SELECT *** @Change_value = Change_Value,@PARTITION_value= Part_Value

FROM [dbo].[PartitionManage] WHERE IsDone = 0

IF(@Change_value <= @Max_value)--判斷是否需要整理分區

BEGIN

#p#

創建一個臨時表

DECLARE @sql VARCHAR(MAX)

SET @sql = '

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].[Temp_Archive]'') AND type in (N''U''))

BEGIN

DROP TABLE [dbo].[Temp_Archive]

END'

EXEC (@sql)

SET @sql = '

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].[Temp_Archive]'') AND type in (N''U''))

BEGIN

CREATE TABLE [dbo].[Temp_Archive](

[Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,

[SiteId] [int] NULL,

[Title] [nvarchar](4000) NULL,

[Author] [nvarchar](4000) NULL,

[Content] [nvarchar](max) NULL,

CONSTRAINT [PK_Temp_Archive] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH( PAD_INDEX = ON, FILLFACTOR = 100, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Sch_Archive_Id](Id)

) ON [Sch_Archive_Id]([Id])

END'

EXEC (@sql)

 

--交換分區數據

DECLARE @Min_Id INT

DECLARE @PARTITION_num INT

SELECT @Min_Id = MIN(Id) FROM [dbo].[Archive]

SELECT @PARTITION_num = [Archives].$PARTITION.Fun_Archive_Id(@Min_Id);

ALTER TABLE [dbo].[Archive] SWITCH PARTITION @PARTITION_num TO [dbo].[Temp_Archive] PARTITION @PARTITION_num

 

刪除臨時表

DROP TABLE [dbo].[Temp_Archive]

 

修改分區方案

DECLARE @PARTITION_string varchar(50)

SET @PARTITION_string = 'FG_Archive_Id_' + RIGHT('0' + CONVERT(NVARCHAR,@PARTITION_num),2)

SET @sql = 'ALTER PARTITION SCHEME [Sch_Archive_Id] NEXT USED ['+@PARTITION_string+']'

EXEC (@sql)

 

修改分區函數

SET @sql = 'ALTER PARTITION FUNCTION Fun_Archive_Id() SPLIT RANGE ('+CONVERT(VARCHAR(50),@PARTITION_value)+')'

EXEC (@sql)

 

更新表

UPDATE [dbo].[PartitionManage] SET IsDone = 1 WHERE Change_Value = @Change_value

END

END

【編輯推薦】

  1. 將Access升級為SQL Server 2005
  2. SQL SERVER 2005中的同步復制技術
  3. 怎樣在SQL Server 2005中用證書加密數據
  4. 快速解決SQL server 2005孤立用戶問題
責任編輯:迎迎 來源: 博客園
相關推薦

2011-07-21 15:07:59

SQL Server數自動化管理分區

2010-07-19 11:01:55

SQL Server

2010-07-13 12:26:49

SQL Server

2011-07-06 13:09:11

SQL Server

2010-09-03 10:40:30

SQL刪除

2009-04-16 17:14:52

2011-03-15 17:13:49

SQL Server 自動化數據采集

2009-06-25 10:25:39

SQL Server

2010-11-10 14:47:11

SQL Server創

2019-03-13 16:09:47

VMware虛擬化服務器

2010-10-21 15:13:20

SQL Server系

2010-06-17 15:24:51

SQL SERVER

2010-07-14 14:16:30

SQL Server

2010-07-09 15:04:25

SQL Server

2010-07-13 17:25:55

SQL Server

2010-11-11 09:20:46

SQL Server創

2014-03-11 11:10:10

PowerShell自動化腳本

2010-07-08 12:52:58

SQL Server

2011-07-04 14:28:18

SQL Server分區

2010-07-09 15:31:25

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91色站| 国产一区二区三区免费 | 亚洲三级国产 | 日韩精品一区二区三区在线播放 | 99精品99 | 日本免费小视频 | 羞羞午夜 | 国产毛片久久久久久久久春天 | 国产成人一区二区三区久久久 | 啪一啪在线视频 | 国产成人99久久亚洲综合精品 | 国产成人免费网站 | 久久毛片 | 成人高清视频在线观看 | 欧美一区视频 | 国产精品69av | 日本三级做a全过程在线观看 | 一级黄色生活视频 | 精品一区二区三区免费毛片 | 毛片在线免费 | 在线免费av电影 | 国产精品99久久久久久久久久久久 | 中文字幕第十一页 | 久久伊人精品 | 亚洲精品综合 | 成人影院网站ww555久久精品 | 草草视频在线观看 | 中文字幕精品视频 | www.47久久青青 | 影音先锋中文字幕在线观看 | 国产精品久久久久影院色老大 | 亚洲精品大全 | 国产一区久久久 | 久久综合伊人 | 中文字幕在线免费视频 | 国产精品久久久久av | 2018国产精品 | 国际精品久久 | 日本亚洲欧美 | 精品国产乱码久久久久久图片 | 久久久久一区二区三区四区 |