中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

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

  在企業(yè)管理器中,雖然有“管理分區(qū)”的菜單,里面的內(nèi)容卻可能與你的預(yù)想不同,這里并沒(méi)有提供直接對(duì)分區(qū)進(jìn)行操作的方法,所以一些普通的操作,比如“增加分區(qū)”、“刪除分區(qū)”之類(lèi)的操作就需要通過(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),即同樣的字段、字段類(lèi)型,同樣的索引結(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ū)表和索引中查詢(xún)數(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)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产欧美日韩综合精品一区二区 | 成人精品视频 | 国产精品中文字幕在线 | 婷婷桃色网 | 亚洲+变态+欧美+另类+精品 | 一区二区三区在线看 | 日韩欧美精品在线播放 | 99re在线视频| 国产成人精品综合 | 精品欧美一区二区久久久伦 | 亚洲精品电影在线观看 | 91视在线国内在线播放酒店 | 精品国产乱码久久久久久丨区2区 | 欧美成人猛片aaaaaaa | 欧美精品久久久久久久久久 | 亚洲精品白浆高清久久久久久 | 国产精品欧美一区喷水 | 97影院在线午夜 | 一区二区国产精品 | 国产精品福利网 | 色噜噜色综合 | 怡红院怡春院一级毛片 | 在线一区| 91视频在线网站 | 国产激情91久久精品导航 | 91精品观看 | 亚洲高清一区二区三区 | 国产一区二区 | av网址在线播放 | 夜夜摸天天操 | 久久99视频免费观看 | 激情久久av一区av二区av三区 | 一区二区三区日本 | 亚洲欧洲国产视频 | 99视频在线播放 | 中文字幕国产精品 | 国内精品久久精品 | 亚洲国产精品一区二区三区 | 国产日韩91 | 国产精品久久久久久一区二区三区 | 欧美久久一区二区三区 |