SQL SERVER2005中將普通表修改為分割槽表

2022-05-08 09:03:28 字數 1164 閱讀 2321

前提是你的表上有聚焦索引(一般主鍵預設就是聚焦索引)

而且改的時候要把普通索引刪除掉(因為改是通過刪除聚焦索引實現資料切換的, 所以不刪除普通索引會導致普通索引被重建, 而切換到分割槽表再建立聚焦索引的時候又會導致普通索引重建一次, 所以刪除普通索引再重建可以避免兩次重建普通索引)

use tempdb

go-- 測試表

create table dbo.tb(

id int,

constraint pk_id primary key clustered(

id))

insert dbo.tb

select 1 union all

select 10

go-- 切換為分割槽表

-- 分割槽函式

create partition function pf_test(int)

as range left

for values(5)

-- 分割槽架構

create partition scheme ps_test

as partition pf_test

all to(

[primary])

-- 切換到分割槽表

alter table dbo.tb

drop constraint pk_id

with(

move to ps_test(id))

上面的示例建立測試表 dbo.tb , 並切換到分割槽表

切換完成後, 可以查詢 dbo.tb, 並檢查其執行計畫來確定是否使用了分割槽資訊, 以此來確定是否正確切換到了分割槽表

最後可以用下面的語句刪除測試

-- 刪除測試

drop table dbo.tb

drop partition scheme ps_test

drop partition function pf_test

分割槽鍵列必須是主鍵的一部分,聯機幫助上有說明的

是【建立分布式分割槽檢視】中的一句話吧,而不是說建立分割槽表所用的分割槽列一定要是主鍵的一部分

在(create)建立分割槽表時,對分割槽列要求很低,但是便於效能優化,最好是聚集索引的一部分。

如果alter將已有表變為分割槽表的話,應該是將分割槽列加入到聚集索引中

如果是分割槽索引:分割槽列包含在聚集索引/唯一約束/唯一索引的鍵列中

sql server 2005中的output子句

今天看了下sql server 2005中的output子句,以使您可以從修改語句 insert update delete 中將資料返回到表變數中。帶結果的 dml 的有用方案包括清除和存檔 訊息處理應用程式以及其他方案。這一新的 output 子句的語法為 output into table v...

With在sql server 2005中的用法

with在msdn中的講解,可以參考鏈結 1 2 建立錶值變數型別 3 4create type ty newareagoods as table 5 areaid int notnull,6 goodsid int notnull 7 8 9 創鍵返回今天 的資料 10 根據有 的地區獲取參 11...

sql server 2005中的output子句

今天看了下sql server 2005中的output子句,以使您可以從修改語句 insert update delete 中將資料返回到表變數中。帶結果的 dml 的有用方案包括清除和存檔 訊息處理應用程式以及其他方案。這一新的 output 子句的語法為 output into table v...