欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

SqlServer關(guān)于分區(qū)表的相關(guān)知識(shí)點(diǎn)有哪些

這篇文章主要講解了“SqlServer關(guān)于分區(qū)表的相關(guān)知識(shí)點(diǎn)有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“SqlServer關(guān)于分區(qū)表的相關(guān)知識(shí)點(diǎn)有哪些”吧!

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、大英網(wǎng)站維護(hù)、網(wǎng)站推廣。

創(chuàng)建分區(qū)表的大致步驟

1、建立文件組(類似oracle的表空間),當(dāng)然不建立也行,把所有分區(qū)都放一個(gè)文件組內(nèi)也可以

2、建立分區(qū)函數(shù),數(shù)據(jù)按什么范圍分配

3、建立分區(qū)方案,關(guān)聯(lián)分區(qū)函數(shù),也會(huì)關(guān)聯(lián)文件組,分區(qū)函數(shù)把數(shù)據(jù)分了幾個(gè)范圍,就需要關(guān)聯(lián)幾個(gè)文件組,當(dāng)然也可以把這幾個(gè)分區(qū)范圍都放入到同一個(gè)文件組

4、建立表,關(guān)聯(lián)分區(qū)方案

遇到的一個(gè)Bug

直接右鍵表導(dǎo)出表結(jié)構(gòu)時(shí)導(dǎo)不出分區(qū)信息,只能右鍵數(shù)據(jù)庫(kù)--任務(wù)--生成腳本才能導(dǎo)出表的分區(qū)信息

分區(qū)表的一些結(jié)論:

1、分區(qū)字段不一定需要建立索引

2、分區(qū)字段可以創(chuàng)建為clustered索引或noclustered索引

3、分區(qū)字段不管是clustered索引還是noclustered索引,重建為clustered索引且沒(méi)有關(guān)聯(lián)分區(qū)方案時(shí),分區(qū)表就變成了非分區(qū)表

4、普通表轉(zhuǎn)換為分區(qū)表,只要在該表創(chuàng)建一個(gè)clustered索引,并在clustered索引上使用分區(qū)方案即可。比如非分區(qū)表的字段1創(chuàng)建clustered索引且關(guān)聯(lián)分區(qū)方案時(shí),該表轉(zhuǎn)換為分區(qū)表,且分區(qū)字段為字段1。

5、分區(qū)表轉(zhuǎn)換為普通表,如果有分區(qū)字段有索引則重建分區(qū)字段為clustered索引且不關(guān)聯(lián)分區(qū)方案即可,分區(qū)字段沒(méi)有索引的話則分區(qū)字段新建clustered索引且不關(guān)聯(lián)分區(qū)方案即可

6、普通表改成分區(qū)表或把分區(qū)表改成普通表,只能使用clustered索引來(lái)實(shí)現(xiàn),因?yàn)橛辛薱lustered索引就是索引組織表,通過(guò)clustered索引的重建來(lái)實(shí)現(xiàn)表的重新分布。普通表變成分區(qū)表,把分區(qū)字段重建為clustered索引并關(guān)聯(lián)分區(qū)方案即可,分區(qū)表變成普通表,把分區(qū)字段重建為clustered索引不要關(guān)聯(lián)分區(qū)方案即可。

7、分區(qū)表創(chuàng)建唯一性約束,必須包含分區(qū)列

8、創(chuàng)建分區(qū)方案時(shí),必須保證文件組數(shù)量匹配分區(qū)函數(shù)的分區(qū)范圍段,文件組名稱重復(fù)沒(méi)有關(guān)系,當(dāng)然也可以使用ALL,指定一個(gè)文件組名稱,這樣所有的分區(qū)函數(shù)的分區(qū)范圍段數(shù)據(jù)都落到這一個(gè)文件組。

9、分區(qū)函數(shù)和分區(qū)方案是在一個(gè)個(gè)數(shù)據(jù)庫(kù)里面的,而不是面對(duì)整個(gè)實(shí)例的

10、分區(qū)表太大占用很多磁盤(pán)空間,delete了一些字段后大小還是沒(méi)變,這個(gè)時(shí)候進(jìn)行分區(qū)合并或把分區(qū)表轉(zhuǎn)換為普通表,則大小會(huì)降下來(lái)

創(chuàng)建分區(qū)表的步驟

1.1、建立文件組的示例

alter database test1 add filegroup part1;

alter database test1 add filegroup part1000;

alter database test1 add filegroup part2000;

alter database test1 add filegroup part3000;

alter database test1 add filegroup part4000;

1.2、建立文件的示例,關(guān)聯(lián)文件組

ALTER DATABASE test1 ADD FILE(NAME = test1part1,FILENAME = 'G:\test1part1.ndf',SIZE = 5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB) TO FILEGROUP part1;

ALTER DATABASE test1 ADD FILE(NAME = test1part1000,FILENAME = 'G:\test1part1000.ndf',SIZE = 5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB) TO FILEGROUP part1000;

ALTER DATABASE test1 ADD FILE(NAME = test1part2000,FILENAME = 'G:\test1part2000.ndf',SIZE = 5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB) TO FILEGROUP part2000;

ALTER DATABASE test1 ADD FILE(NAME = test1part3000,FILENAME = 'G:\test1part3000.ndf',SIZE = 5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB) TO FILEGROUP part3000;

ALTER DATABASE test1 ADD FILE(NAME = test1part4000,FILENAME = 'G:\test1part4000.ndf',SIZE = 5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB) TO FILEGROUP part4000;

2、建立分區(qū)函數(shù)的示例,分區(qū)函數(shù)名為partfun1

CREATE PARTITION FUNCTION partfun1 (int)

AS RANGE LEFT FOR VALUES ('1000','2000','3000','4000')

--VALUES ('1000','2000','3000','4000')表明,將把表分為5個(gè)區(qū)了,是從根據(jù)表字段的值的大小來(lái)分區(qū),五個(gè)區(qū)分別是最小--1000,1000-2000,2000-3000,3000-4000,4000-最大

3、建立方案的例子,關(guān)聯(lián)分區(qū)函數(shù)partfun1,關(guān)聯(lián)文件組

CREATE PARTITION SCHEME partschema1

AS PARTITION partfun1

TO (part1,part1000,part2000,part3000,part4000);

--建立在part1,part1000,part2000,part3000,part4000幾個(gè)文件組上

CREATE PARTITION SCHEME partschema2

AS PARTITION partfun1

TO (part1,[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY]);

--建立在part1、[PRIMARY]文件組上,把part1換成[PRIMARY]也沒(méi)問(wèn)題,這樣就類似都建立在[PRIMARY]文件組上

CREATE PARTITION SCHEME partschema3

AS PARTITION partfun1

ALL TO (part1);

--都建立在part1文件組上

CREATE PARTITION SCHEME partschema4

AS PARTITION partfun1

ALL TO ([PRIMARY]);

--都建立在[PRIMARY]文件組上

4、建立分區(qū)表的示例

CREATE TABLE parttable1(

[ID] [int] NOT NULL,

[IDText] [nvarchar](max) NULL,

[Date] [datetime] NULL)

ON [partschema1](ID);

insert into parttable1 values (1,'1',getdate()-4);

insert into parttable1 values (1001,'1001',getdate()-3);

insert into parttable1 values (2001,'2001',getdate()-2);

insert into parttable1 values (3001,'3001',getdate()-1);

insert into parttable1 values (4001,'4001',getdate());

5、驗(yàn)證分區(qū)表的數(shù)據(jù)

SELECT * FROM parttable1;

--返回分區(qū)表所有行

SELECT distinct $PARTITION.[partfun1](4) FROM parttable1;

--返回ID字段值為4的行屬于哪個(gè)分區(qū)

SELECT * FROM parttable1 where $PARTITION.[partfun1](ID)=2

--返回第2個(gè)分區(qū)的所有行,ID就是分區(qū)字段ID

注意:不能因?yàn)镾ELECT * FROM parttable1 where $PARTITION.[partfun1](ID)=2有結(jié)果就說(shuō)明它是分區(qū)表,本文最后試驗(yàn)7該表是非分區(qū)表了,但是執(zhí)行SELECT * FROM parttable1 where $PARTITION.[partfun1](ID)=2還是有結(jié)果的

新增分區(qū)

1、為分區(qū)方案指定一個(gè)可以使用的文件組(新增分區(qū)方案的文件組)。

2、修改分區(qū)函數(shù)(新增分區(qū)函數(shù)的數(shù)據(jù)范圍)

ALTER PARTITION SCHEME partschema1 NEXT USED [PRIMARY]

ALTER PARTITION FUNCTION partfun1() SPLIT RANGE ('4500')

select p.partition_number,p.rows from sys.indexes i inner join sys.partitions p on p.object_id = i.object_id and i.object_id = object_id('parttable2') order by 1

--第一條語(yǔ)句,如果分區(qū)方案使用的ALL TO ([PRIMARY]),則這條語(yǔ)句不用執(zhí)行

--第二條語(yǔ)句新增一個(gè)分區(qū),范圍是4000-4500

--第三條語(yǔ)句驗(yàn)證新增分區(qū)是否存在,是否存在行數(shù)

刪除\合并分區(qū)

ALTER PARTITION FUNCTION partfun1() MERGE RANGE ('2000')

就把1000-2000這個(gè)分區(qū),刪除了,合并成了1000-3000

--無(wú)法像oracle一樣執(zhí)行ALTER TABLE TABLENAME DROP PARTITION PARTITIONNAME;

刪除分區(qū)表及對(duì)應(yīng)的文件組

刪除順序?yàn)椋簞h除分區(qū)表、刪除分區(qū)方案、刪除分區(qū)函數(shù),最后刪除文件組,刪除完文件組后對(duì)應(yīng)的文件也就刪除了

分區(qū)表轉(zhuǎn)換為普通表,普通表轉(zhuǎn)換為分區(qū)表的示例

DROP TABLE parttable1;

CREATE TABLE parttable1(

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

[Name] [varchar](16) NOT NULL,

[Id2][int] NOT NULL

) ON partschema1(Id2);

insert into parttable1 values ('1',1);

insert into parttable1 values ('1001',1001);

insert into parttable1 values ('2001',2001);

insert into parttable1 values ('3001',3001);

insert into parttable1 values ('4001',4001);

1、在分區(qū)表上創(chuàng)建的唯一約束,必須包含分區(qū)列。

ALTER TABLE parttable1 ADD CONSTRAINT PK_prattable1_id PRIMARY KEY CLUSTERED ([ID] ASC)

報(bào)錯(cuò)Column 'Id2' is partitioning column of the index 'PK_prattable1_id'. Partition columns for a unique index must be a subset of the index key.

2、分區(qū)列id2新建clustered索引,parttable1還是分區(qū)表

create clustered index CI_prattable1_id2 on parttable1(id2);

3、分區(qū)列id2創(chuàng)建nonclustered索引,parttable1還是分區(qū)表

drop index CI_prattable1_id2 on parttable1;

create nonclustered index NCI_prattable1_id2 on parttable1(id2);

4、非分區(qū)列id列創(chuàng)建clustered索引,parttable1還是分區(qū)表,說(shuō)明非分區(qū)列可以是cluster索引列

create clustered index CI_prattable1_id on parttable1(id);

5、分區(qū)列id2重建為nonclustered索引并且不使用分區(qū)方案,parttable1還是分區(qū)表

create nonclustered index NCI_prattable1_id2 on parttable1(id2) WITH (DROP_EXISTING = ON) ON [PRIMARY];

6、分區(qū)列id2重建為clustered索引不加ON條件,parttable1還是分區(qū)表

drop index CI_prattable1_id on parttable1;

drop index NCI_prattable1_id2 on parttable1;

create clustered index CI_prattable1_id2 on parttable1(id2);

create clustered index CI_prattable1_id2 on parttable1(id2) WITH (DROP_EXISTING = ON);

7、分區(qū)列id2重建為clustered索引加上ON條件但不使用分區(qū)方案,parttable1變成了非分區(qū)表

create clustered index CI_prattable1_id2 on parttable1(id2) WITH (DROP_EXISTING = ON) ON [PRIMARY];

8、分區(qū)列id2重建為clustered索引并且使用分區(qū)方案,parttable1變成了分區(qū)表

create clustered index CI_prattable1_id2 on parttable1(id2) WITH (DROP_EXISTING = ON) on partschema1(Id2);

9、刪掉上面8的clustered索引后,parttable1還是分區(qū)表

drop index CI_prattable1_id2 on parttable1;

10、分區(qū)列id2新建為clustered索引并且不使用分區(qū)方案,parttable1變成了非分區(qū)表

create clustered index CI_prattable1_id2 on parttable1(id2) ON [PRIMARY];

11、刪掉上面10的clustered索引后,parttable1還是非分區(qū)表

drop index CI_prattable1_id2 on parttable1;

12、分區(qū)列id2新建為nonclustered索引,雖然使用了分區(qū)方案,還是非分區(qū)表

create nonclustered index NCI_prattable1_id2 on parttable1(id2) on partschema1(Id2);

分區(qū)表轉(zhuǎn)換為普通表,遇到分區(qū)字段是主鍵的情況下,則刪除主鍵約束,再對(duì)原來(lái)主鍵的字段重建cluster索引或重建為主鍵,但是都不關(guān)聯(lián)分區(qū)方案

ALTER TABLE Table_name DROP CONSTRAINT PK_NAME WITH (>

CREATE CLUSTERED INDEX PK_NAME ON Table_name(column)  WITH (ON [PRIMARY];

ALTER TABLE Table_name ADD CONSTRAINT PK_NAME PRIMARY KEY CLUSTERED(column) WITH (ON [PRIMARY];

普通表轉(zhuǎn)換為分區(qū)表,要保留原來(lái)的主鍵的情況下,則刪除主鍵約束,再創(chuàng)建主鍵但不設(shè)為聚集索引,再創(chuàng)建新的聚集索引,在該聚集索引中使用分區(qū)方案

ALTER TABLE Table_name DROP CONSTRAINT PK_NAME WITH (>

ALTER TABLE Table_name ADD CONSTRAINT PK_NAME PRIMARY KEY NONCLUSTERED(column) WITH (ON [PRIMARY];

--創(chuàng)建主鍵,但不設(shè)為聚集索引

CREATE CLUSTERED INDEX index_name ON Table_name(column) ON 分區(qū)方案(分區(qū)字段)

--創(chuàng)建一個(gè)新的聚集索引,在該聚集索引中使用分區(qū)方案

查詢某張分區(qū)表的總行數(shù)和大小,比如表為crm.EmailLog

exec sp_spaceused 'crm.EmailLog';

查詢某張分區(qū)表的信息,每個(gè)分區(qū)有多少行,比如表為crm.EmailLog

select convert(varchar(50), ps.name

) as partition_scheme,

p.partition_number,

convert(varchar(10), ds2.name

) as filegroup,

convert(varchar(19), isnull(v.value, ''), 120) as range_boundary,

str(p.rows, 9) as rows

from sys.indexes i

join sys.partition_schemes ps on i.data_space_id = ps.data_space_id

join sys.destination_data_spaces dds

on ps.data_space_id = dds.partition_scheme_id

join sys.data_spaces ds2 on dds.data_space_id = ds2.data_space_id

join sys.partitions p on dds.destination_id = p.partition_number

and p.object_id = i.object_id and p.index_id = i.index_id

join sys.partition_functions pf on ps.function_id = pf.function_id

LEFT JOIN sys.Partition_Range_values v on pf.function_id = v.function_id

and v.boundary_id = p.partition_number - pf.boundary_value_on_right

WHERE i.object_id = object_id('crm.EmailLog')

and i.index_id in (0, 1)

order by p.partition_number

查詢分區(qū)函數(shù)

select * from sys.partition_functions

查看分區(qū)架構(gòu)

select * from sys.partition_schemes

感謝各位的閱讀,以上就是“SqlServer關(guān)于分區(qū)表的相關(guān)知識(shí)點(diǎn)有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)SqlServer關(guān)于分區(qū)表的相關(guān)知識(shí)點(diǎn)有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

分享題目:SqlServer關(guān)于分區(qū)表的相關(guān)知識(shí)點(diǎn)有哪些
本文網(wǎng)址:http://aaarwkj.com/article34/ipdsse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航、App開(kāi)發(fā)、響應(yīng)式網(wǎng)站網(wǎng)站策劃、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
精品国产91久久粉嫩| 欧美激情一区二区亚洲专区| 免费观看久久黄色大片| 国产一区二区黑丝美女| 精品人妻人伦一区二区三区| 亚洲精品一区二区av| 91熟女成人精品一区二区| 精品亚洲午夜久久久久| 国产欧美又粗又猛又爽老| av中文字幕一二三区| 日本大型午夜福利视频| 色婷婷区二区三区四区| 久久精品性少妇一区=区三区| 一卡二卡精品在线免费| 日本韩国亚洲三级在线| av天天堂网在线播放| 91九色国产成人久久精品| 日韩精品一区二区三区四区蜜桃| 一区二区三区深夜福利| 九九九热在线观看视频| 日韩50岁老女人骚色| 日韩有码大片最新自拍| 色哟哟免费在线观看视频| 久久这里只有精品伊人网| 午夜福利亚洲免费久久| 日韩人妻一区中文字幕| 国产精品国产三级国av麻豆| 亚洲高清成人在线观看| 亚洲国产精品一区二区| 日韩欧美亚洲另类视频| 国产原创av剧情在线播放| 欧美色精品人妻视频在线| 男女视频午夜刺激一区二区| 日日夜夜久久一二三区| 亚洲黄色av网址在线观看| 国产一区二区不卡在线播放| 亚洲国产精品区一区二区| 国产精品青青草原在线| 日韩国产欧美亚州精品| 久久99热这里只频精品| 天堂久久天堂av色综合|