SQLServer 通用的分區(qū)增加和刪除的算法
更新時(shí)間:2009年07月22日 08:40:10 作者:
本算法默認(rèn)分去函數(shù)中已經(jīng)包含了足夠多的分區(qū)。不需要我們?nèi)?dòng)態(tài)的創(chuàng)建分區(qū)。
首先是將一個(gè)數(shù)據(jù)表加入到分區(qū)表的方法:
[dbo].[SP_Helper_Partition_Add]
@SrcTable nvarchar(256), 待加入的表
@DestTable nvarchar(256), 目標(biāo)表
@idxOnDest nvarchar(1024), 目標(biāo)表上的索引創(chuàng)建語句
@Partition_func_name nvarchar(256), 分區(qū)函數(shù)
@PartCol nvarchar(256), 分區(qū)的列
@SonIsPart tinyint=1, 待加入的表是否分區(qū)
算法如下:
獲取到源表的分區(qū)列的值;
在源表上加上分區(qū)列值的唯一性限制;
然后確定是否有一個(gè)分區(qū)恰好能存放這個(gè)表;如果不存在,則返回;
在源表上創(chuàng)建和目標(biāo)表一樣的索引;
現(xiàn)在源表和目標(biāo)結(jié)構(gòu)一致,源表的內(nèi)容能夠存在目標(biāo)分區(qū)上,使用alter table switch完成分區(qū);
刪除一個(gè)分區(qū)的算法
[dbo].[SP_Helper_Partition_Delete]
@SrcTable nvarchar(256), 從該表中刪除分區(qū)
@IdxOnTable nvarchar(1024), 該表上的索引創(chuàng)建語句
@Part_func nvarchar(256), 分區(qū)函數(shù)名
@PartCol nvarchar(256), 分區(qū)列
@PartIndex int, 待刪除分區(qū)的索引
@IdxIsPart tinyint 索引是否在另一個(gè)分區(qū)函數(shù)上分區(qū)
算法如下:
首先根據(jù)源表的表結(jié)構(gòu)復(fù)制一分臨時(shí)表的表結(jié)構(gòu);
獲取待刪除分區(qū)的邊界值;
在臨時(shí)表上創(chuàng)建限制;
在這個(gè)表上創(chuàng)建索引;
將指定分區(qū)使用alter switch交換到臨時(shí)表上;
刪除臨時(shí)表
[dbo].[SP_Helper_Partition_Add]
@SrcTable nvarchar(256), 待加入的表
@DestTable nvarchar(256), 目標(biāo)表
@idxOnDest nvarchar(1024), 目標(biāo)表上的索引創(chuàng)建語句
@Partition_func_name nvarchar(256), 分區(qū)函數(shù)
@PartCol nvarchar(256), 分區(qū)的列
@SonIsPart tinyint=1, 待加入的表是否分區(qū)
算法如下:
獲取到源表的分區(qū)列的值;
在源表上加上分區(qū)列值的唯一性限制;
然后確定是否有一個(gè)分區(qū)恰好能存放這個(gè)表;如果不存在,則返回;
在源表上創(chuàng)建和目標(biāo)表一樣的索引;
現(xiàn)在源表和目標(biāo)結(jié)構(gòu)一致,源表的內(nèi)容能夠存在目標(biāo)分區(qū)上,使用alter table switch完成分區(qū);
刪除一個(gè)分區(qū)的算法
[dbo].[SP_Helper_Partition_Delete]
@SrcTable nvarchar(256), 從該表中刪除分區(qū)
@IdxOnTable nvarchar(1024), 該表上的索引創(chuàng)建語句
@Part_func nvarchar(256), 分區(qū)函數(shù)名
@PartCol nvarchar(256), 分區(qū)列
@PartIndex int, 待刪除分區(qū)的索引
@IdxIsPart tinyint 索引是否在另一個(gè)分區(qū)函數(shù)上分區(qū)
算法如下:
首先根據(jù)源表的表結(jié)構(gòu)復(fù)制一分臨時(shí)表的表結(jié)構(gòu);
獲取待刪除分區(qū)的邊界值;
在臨時(shí)表上創(chuàng)建限制;
在這個(gè)表上創(chuàng)建索引;
將指定分區(qū)使用alter switch交換到臨時(shí)表上;
刪除臨時(shí)表
相關(guān)文章
sql server 2000阻塞和死鎖問題的查看與解決方法
在實(shí)際引用當(dāng)中,數(shù)據(jù)庫阻塞和死鎖在程序開發(fā)過程經(jīng)常出現(xiàn),下面通過介紹數(shù)據(jù)庫阻塞和數(shù)據(jù)庫死鎖,并提供查看和解決阻塞和死鎖的方法2014-01-01
SQL Server日志恢復(fù)還原數(shù)據(jù)的操作流程
有時(shí)開發(fā)過程中由于不小心或者程序出現(xiàn)錯(cuò)誤導(dǎo)致錯(cuò)誤刪除數(shù)據(jù),或者由于計(jì)算機(jī)以外引起數(shù)據(jù)遭到破壞,這時(shí)候可以采用日志進(jìn)行恢復(fù),所以本文給大家介紹了SQL Server日志恢復(fù)還原數(shù)據(jù)的操作流程,需要的朋友可以參考下2024-09-09
解決連接Sql?Server時(shí)報(bào)錯(cuò):無法通過使用安全套接字層加密與SQL?Server建立安全連接
這篇文章主要給大家介紹了關(guān)于解決連接Sql?Server時(shí)報(bào)錯(cuò):無法通過使用安全套接字層加密與SQL?Server建立安全連接的相關(guān)資料,需要的朋友可以參考下2024-01-01
DataGrip 格式化SQL的實(shí)現(xiàn)方法(自定義Sql格式化)
DataGrip 是 JetBrains 發(fā)布的多引擎數(shù)據(jù)庫環(huán)境,本文主要介紹了如何自定義Sql格式化風(fēng)格,具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09
sql 語句 取數(shù)據(jù)庫服務(wù)器上所有數(shù)據(jù)庫的名字
sql 語句 取數(shù)據(jù)庫服務(wù)器上所有數(shù)據(jù)庫的名字,一般作者自己是沒問題了。2009-02-02
將string數(shù)組轉(zhuǎn)化為sql的in條件用sql查詢
將string數(shù)組轉(zhuǎn)化為sql的in條件就可以用sql查詢了,下面是具體是的示例,大家可以參考下2014-05-05
SQL查詢中出現(xiàn)笛卡爾積現(xiàn)象的解決方法
本文主要介紹了SQL查詢中出現(xiàn)笛卡爾積現(xiàn)象的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
Sql學(xué)習(xí)第一天——SQL 將變量定義為Table類型(虛擬表)
sql語句中的變量時(shí)通常我們定義的都是像char,varchar,nvarchar之類的,接下來教大家實(shí)現(xiàn)讓變量作為一個(gè)像虛擬表一樣,感性的各位可以參考下哈2013-03-03

