資料庫表分割槽

2022-09-19 00:21:11 字數 4304 閱讀 7015

create database mytest

on/*

sql server 資料庫表分割槽由三個步驟來完成:

1.建立分割槽函式

2.建立分割槽架構

3.對錶進行分割槽

*/--1.0建立表分割槽函式

create partition function mypartfunc(int)

as range right

for values(

100000

,200000

,300000

,400000

,500000

,600000

,700000 )/*

這些分割界線指定了四個分割槽。第乙個分割槽包含所有值小於100000的記錄。

第二個分割槽包含所有值在100000和200000之間的記錄。

而第三個分割槽包含所有值在200000和300000之間的記錄。

注意這個例子中使用了「range right」從句。這說明分界值是在分割槽的右邊。

同樣,如果使用的是「range left」從句,

那麼第乙個分割槽就會包含所有值小於或等於250000的記錄;

第二個分割槽就會包含所有值在250001和500000之間的記錄,如此類推。

*/--2.建立分割槽架構 上一步是完成乙個概念上的分割槽,接下來要完成乙個物理的構建,

--使得屬於不同分割槽的資料儲存到不同的物理檔案上去.

/*建立檔案組*/

alter database mytest add filegroup [party100000]

alter database mytest add filegroup [party200000]

alter database mytest add filegroup [party300000]

alter database mytest add filegroup [party400000]

alter database mytest add filegroup [party500000]

alter database mytest add filegroup [party600000]

alter database mytest add filegroup [party700000]

/*建立物理檔案,在這裡,為了方便起見,

我把每個物理檔案放到了乙個單獨的檔案組裡面. 注意這裡需要自己建立資料夾的

*/

alter database mytest

add file

(name = n'party100000',filename = n'd:\sqlservertest\partitiontable\p100000\party100000.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)

to filegroup [party100000]

alter database mytest

add file

(name = n'party200000',filename = n'd:\sqlservertest\partitiontable\p200000\party200000.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)

to filegroup [party200000]

alter database mytest

add file

(name = n'party300000',filename = n'd:\sqlservertest\partitiontable\p300000\party300000.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)

to filegroup [party300000]

alter database mytest

add file

(name = n'party400000',filename = n'd:\sqlservertest\partitiontable\p400000\party400000.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)

to filegroup [party400000]

alter database mytest

add file

(name = n'party500000',filename = n'd:\sqlservertest\partitiontable\p500000\party500000.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)

to filegroup [party500000]

alter database mytest

add file

(name = n'party600000',filename = n'd:\sqlservertest\partitiontable\p600000\party600000.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)

to filegroup [party600000]

alter database mytest

add file

(name = n'party700000',filename = n'd:\sqlservertest\partitiontable\p700000\party700000.ndf',size = 5mb,maxsize = 100mb,filegrowth = 5mb)

to filegroup [party700000]

/*建立完分割槽函式,接下來就要建立分割槽架構,用來將概念上的分割槽和檔案組(物理檔案)關聯起來.

*/create partition scheme [mypartfuncrangepscheme]

as

partition mypartfunc to

( [party100000],

[party200000],

[party300000],

[party400000],

[party500000],

[party600000],

[party700000],

[primary]

) go

--3.0 分割槽表的基礎架構到此就完成了,接下來就要建立分割槽表了.

create table [dbo].mypartytable(

id int identity(1,1),

partyid int,

name varchar(10)

) on mypartfuncrangepscheme(partyid)

/*新增 聚焦索引 提高查詢效率*/

alter table mypartytable

add constraint [mypartytable_pk]

primary key clustered ([id], [partyid])

go

/*插入測試資料*/

insert into mypartytable values(10,'na1')

insert into mypartytable values(100000,'na1')

insert into mypartytable values(200000,'na1')

insert into mypartytable values(300000,'na1')

insert into mypartytable values(400000,'na1')

insert into mypartytable values(400001,'na1')

select * from mypartytable

/*查詢所在分割槽表*/

select $partition.mypartfunc(partyid),partyid,*

from mypartytable a

order by a.partyid asc

/*查詢每個分割槽的行數*/

select $partition.mypartfunc(partyid) as partition

,count(0) as [count]

from mypartytable

group by $partition.mypartfunc(partyid)

order by partition

資料庫表分割槽

create database mytest on sql server 資料庫表分割槽由三個步驟來完成 1.建立分割槽函式 2.建立分割槽架構 3.對錶進行分割槽 1.0建立表分割槽函式 create partition function mypartfunc int as range right...

資料庫表分割槽

實現資料庫表分割槽步驟 1,檢視資料庫檔案儲存位置 select from v datafile 2,在伺服器上資料庫儲存位置上,新建表空間檔案 touch d part1.dbf touch d part2.dbf 第二種方式 在plsql或oracle命令端,建立表空間 3,建立表,並根據型別分...

mysql 資料庫表分割槽

create table if not exists demo range eventid int 11 unsigned not null,event sk int 11 not null,product sk int 11 not null,date sk int 11 not null,dev...