天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Sql Server性能優(yōu)化——Partition(管理分區(qū))

  在企業(yè)管理器中,雖然有“管理分區(qū)”的菜單,里面的內(nèi)容卻可能與你的預(yù)想不同,這里并沒(méi)有提供直接對(duì)分區(qū)進(jìn)行操作的方法,所以一些普通的操作,比如“增加分區(qū)”、“刪除分區(qū)”之類的操作就需要通過(guò)腳本實(shí)現(xiàn)了。

  增加分區(qū)(Split Partition)

  “增加分區(qū)”事實(shí)上就是將現(xiàn)有的分區(qū)分割開(kāi),基于此,在SQL Server中應(yīng)用的是Split操作。在分離分區(qū)的時(shí)候,不僅僅要在Partition Function上指定分割的分界點(diǎn),同樣需要在Partition Scheme上指定新分區(qū)應(yīng)用的文件組:

--指定下一個(gè)分區(qū)應(yīng)用文件組PRIMARY
ALTER PARTITION SCHEME [MyPartitionSchema]
NEXT USED [PRIMARY]
--指定分區(qū)分界點(diǎn)為5000
ALTER PARTITION FUNCTION MyPartitionFunction()
SPLIT RANGE (5000)

  需要注意的一點(diǎn)是,新增的分區(qū)中非聚簇索引的壓縮模式會(huì)被置為None。

  刪除分區(qū)(Merge Partition)

  “刪除分區(qū)”同樣可以認(rèn)為是將原來(lái)分離的分區(qū)合并在一起,所以對(duì)應(yīng)的是Merge操作,而且由于并沒(méi)有新增的分區(qū),Partition Scheme并不需要改變:

ALTER PARTITION FUNCTION MyPartitionFunction ()
MERGE RANGE (5000)

  切換分區(qū)(Switch Partition)

  “切換分區(qū)”可能是一個(gè)比看上去會(huì)應(yīng)用的更頻繁的操作,它的意義在于將一個(gè)分區(qū)的數(shù)據(jù)從一張表切換到另一張表中。這里定義被切換分區(qū)的表為“源表”,被切換到的表為“目標(biāo)表”,則執(zhí)行切換操作的前提是:

  1. 源表和目標(biāo)表?yè)碛型瑯拥谋斫Y(jié)構(gòu),即同樣的字段、字段類型,同樣的索引結(jié)構(gòu)(聚簇和非聚簇),同樣的壓縮格式。但不要求默認(rèn)值約束一致(Default Constaint),也不要求目標(biāo)表設(shè)置了和源表一樣的自增長(zhǎng)列。
  2. 源表如果有索引且分區(qū),則其索引必須對(duì)齊。
  3. 源表中被切換的分區(qū)范圍必須包含于目標(biāo)表或者目標(biāo)表將要被切換到的分區(qū)范圍。這里有如下幾種情況:
    1. 將源表的源分區(qū)切換到目標(biāo)表的目標(biāo)分區(qū)中,則目標(biāo)分區(qū)范圍>=源分區(qū);
    2. 將源表的源分區(qū)切換到目標(biāo)表中(目標(biāo)表未分區(qū)),則目標(biāo)表沒(méi)有設(shè)約束,或約束范圍>=源分區(qū);
    3. 將源表切換到目標(biāo)表中(源表、目標(biāo)表都未分區(qū)),則只要目標(biāo)表沒(méi)有設(shè)約束就可以了(雖然Switch是分區(qū)提出的操作,但一個(gè)沒(méi)有分區(qū)的表同樣可以被看做一個(gè)大分區(qū),所以可以對(duì)沒(méi)有分區(qū)的表進(jìn)行Switch操作)。
  4. 目標(biāo)表或目標(biāo)分區(qū)不能含有數(shù)據(jù)。

  下面的操作將源表的第二個(gè)分區(qū)切換到目標(biāo)表的第二個(gè)分區(qū)中。

ALTER TABLE [STable] SWITCH PARTITION 2 TO [DTable] PARTITION 2

  分區(qū)管理操作的性能

  分割、合并以及切換分區(qū)是元數(shù)據(jù)上的操作而不是對(duì)數(shù)據(jù)的移動(dòng),所以操作的效率要比直接操作數(shù)據(jù)高很多。

  1. 對(duì)于分割分區(qū),操作時(shí)間和被分割分區(qū)的數(shù)據(jù)量相關(guān),數(shù)據(jù)越大則分割花費(fèi)的時(shí)間會(huì)越長(zhǎng)。
  2. 對(duì)于合并分區(qū),如果將兩個(gè)空的分區(qū)合并,自然不會(huì)耗什么時(shí)間;如果兩個(gè)分區(qū)都有數(shù)據(jù),則和分割分區(qū)一樣,數(shù)據(jù)越大花費(fèi)的時(shí)間越長(zhǎng);如果兩個(gè)分區(qū)中有一個(gè)沒(méi)有數(shù)據(jù),筆者的經(jīng)驗(yàn)是如果有大數(shù)據(jù)量的分區(qū)在右(>分界值),則消耗的時(shí)間較短,如果有大數(shù)據(jù)量的分區(qū)在左(<分界值),則會(huì)消耗較多的時(shí)間。
  3. 對(duì)于切換分區(qū),即使是上千萬(wàn)級(jí)別的數(shù)據(jù),也可以在不到1秒的時(shí)間完成分區(qū)的切換。所以雖然從表面上看,切換分區(qū)和調(diào)用Select或者Insert語(yǔ)句移動(dòng)數(shù)據(jù)的結(jié)果是一樣的,但效率卻是不可同日而語(yǔ)的。

  查看分區(qū)信息

  除了利用上文提到的通過(guò)“管理壓縮”的方式查看某張表的分區(qū)信息之外,SQL Server還提供了一張系統(tǒng)表查看數(shù)據(jù)庫(kù)中的分區(qū)情況:

  1. SYS.PARTITION_SCHEMES,數(shù)據(jù)庫(kù)中所有分區(qū)方案的信息,包括對(duì)應(yīng)的分區(qū)函數(shù)的ID。
  2. SYS.PARTITION_FUNCTIONS,數(shù)據(jù)庫(kù)中所有分區(qū)函數(shù)的信息,包括分區(qū)數(shù)等信息。
  3. SYS.PARTITION_RANGE_VALUES,每個(gè)分區(qū)范圍的信息,可以和SYS.PARTITION_FUNCTIONS聯(lián)查。

  比如可以通過(guò)如下的腳本,查出分區(qū)函數(shù)MyPartitionFunc的第一個(gè)分區(qū)的右邊界:

SELECT value FROM sys.partition_range_values, sys.partition_functions 
WHERE sys.partition_functions.function_id = sys.partition_range_values.function_id
AND sys.partition_functions.name = 'MyPartitionFunc' AND boundary_id = 1

  還可以通過(guò)如下腳本,獲取分區(qū)表中各分區(qū)的數(shù)據(jù)情況(行數(shù),最大值,最小值):

SELECT 
partition
= $PARTITION.MyParitionFunc([ParitionDate])
,
rows = COUNT(*)
,
min = MIN([ParitionDate])
,
max = MAX([ParitionDate])
FROM [MyTable]
GROUP BY $PARTITION.MyParitionFunc([ParitionDate])
ORDER BY PARTITION

  具體可以參照MSDN:從已分區(qū)表和索引中查詢數(shù)據(jù)和元數(shù)據(jù)

NET技術(shù)Sql Server性能優(yōu)化——Partition(管理分區(qū)),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日本久久精品毛片一区随边看 | 99国产在线精品视频 | 亚洲欧美国产双大乳头 | 一个人在线观看免费中文www | 国产伊人自拍 | 亚洲精品沙发午睡系列 | 性夜a爽黄爽 | 国产免费人成在线视频视频 | 日本一本在线播放 | 免费观看成人www精品视频在线 | 免费观看视频成人国产 | 日本福利片午夜免费观着 | 午夜伦午夜伦锂电影 | 国产精品自在在线午夜精品 | 欧美日韩亚洲第一区在线 | 97视频在线观看免费播放 | 日本久久免费大片 | 久久人人爽人人片AV人成 | 伊人大香线蕉影院在线播放 | 成人免费观看在线视频 | 最美女人体内射精一区二区 | 3DNagoonimation动漫| 国产精品女上位在线观看 | 久久亚洲国产成人影院 | 纯肉腐文高H总受男男 | 城中村快餐嫖老妇对白 | 亚洲精品一区国产欧美 | 射漂亮黑b丝女 | 亚洲午夜精品A片久久WWW软件 | 快穿之诱受双性被灌满h | 日韩亚洲人成在线 | 99精品免费久久久久久久久蜜桃 | 午夜影院和视费x看 | 亚洲国产欧美日韩在线一区 | 久久综合久久伊人 | 亚洲精品无码成人AAA片 | 妙玉被肉干高H潮文 | 国产69精品久久久久乱码韩国 | 国产精品看高国产精品不卡 | 99久久久无码国产精品AAA | 野花社区视频WWW高清 |