六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

教你在SQL Server 2000數(shù)據(jù)庫(kù)中使用分區(qū)

[摘要]分區(qū)視圖聯(lián)接來(lái)自一組成員的水平分區(qū)數(shù)據(jù),使數(shù)據(jù)看起來(lái)象來(lái)自同一張表。SQL Server 2000 區(qū)分本地分區(qū)視圖和分布式分區(qū)視圖。在本地分區(qū)視圖中,所有相關(guān)表和視圖駐留在 SQL Server ...

分區(qū)視圖聯(lián)接來(lái)自一組成員的水平分區(qū)數(shù)據(jù),使數(shù)據(jù)看起來(lái)象來(lái)自同一張表。SQL Server 2000 區(qū)分本地分區(qū)視圖和分布式分區(qū)視圖。在本地分區(qū)視圖中,所有相關(guān)表和視圖駐留在 SQL Server 的同一實(shí)例上。在分布式分區(qū)視圖中,相關(guān)表中至少有一張表駐留在其他某個(gè)(遠(yuǎn)程)服務(wù)器上。建議您不要將分布式分區(qū)視圖用于數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用程序。

矢量數(shù)據(jù)倉(cāng)庫(kù)圍繞事實(shí)(標(biāo)量)和矢量構(gòu)建,從物理上通常表示為星形架構(gòu)和雪花形架構(gòu),極少有同時(shí)包含事實(shí)和矢量的完全非正交化的平面表。由于矢量架構(gòu)是最常見(jiàn)的關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)結(jié)構(gòu),本文集中討論這類(lèi)架構(gòu)的分區(qū)。下面的建議也適用于其他通用數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)。

分區(qū)的優(yōu)點(diǎn)

數(shù)據(jù)修剪:

許多數(shù)據(jù)倉(cāng)庫(kù)管理員會(huì)定期將陳舊的數(shù)據(jù)歸檔。例如,一個(gè)單擊流數(shù)據(jù)倉(cāng)庫(kù)可能只將詳細(xì)數(shù)據(jù)聯(lián)機(jī)保留三至四個(gè)月。其他常見(jiàn)的規(guī)則可能是聯(lián)機(jī)保留 13 個(gè)月、37 個(gè)月或 10 年,當(dāng)舊數(shù)據(jù)不在活動(dòng)窗口中時(shí)就歸檔并從數(shù)據(jù)庫(kù)中刪除。這種滾動(dòng)窗口結(jié)構(gòu)是大數(shù)據(jù)倉(cāng)庫(kù)通常采取的做法。

在沒(méi)有分區(qū)表的情況下,從數(shù)據(jù)庫(kù)中刪除舊數(shù)據(jù)的進(jìn)程需要一個(gè)很大的 DELETE 語(yǔ)句,例如:

DELETE FROM fact_table

WHERE date_key < 19990101

執(zhí)行該語(yǔ)句開(kāi)銷(xiāo)會(huì)非常大,可能比同一張表的加載進(jìn)程需要更多的時(shí)間。相反,對(duì)于分區(qū)表,管理員重新定義 UNION ALL 視圖以排除最舊的表,然后將該表從數(shù)據(jù)庫(kù)中刪除(假設(shè)已確保備份該表),這個(gè)過(guò)程幾乎可以在瞬間完成。

后面我們會(huì)討論到,維護(hù)分區(qū)表的費(fèi)用也很高。如果數(shù)據(jù)修剪是采用分區(qū)的唯一原因,設(shè)計(jì)者應(yīng)考慮以數(shù)據(jù)分解的方式從未分區(qū)的表中刪除舊數(shù)據(jù)。在低優(yōu)先級(jí)進(jìn)程上連續(xù)運(yùn)行一個(gè)每次刪除 1000 行(用"set rowcount 1000"命令)的腳本,直至刪除所有希望刪除的數(shù)據(jù)。該技術(shù)可在大系統(tǒng)上有效運(yùn)用,比創(chuàng)建必要的分區(qū)管理系統(tǒng)更為直接。根據(jù)加載量和系統(tǒng)使用狀況,該技術(shù)適合于某些系統(tǒng),并應(yīng)該考慮在系統(tǒng)上進(jìn)行基準(zhǔn)測(cè)試。

加載速度:

加載數(shù)據(jù)最快的方法是將數(shù)據(jù)加載至空表或沒(méi)有索引的表。通過(guò)加載至較小的分區(qū)表,漸變加載進(jìn)程的效率將大大提高。

可維護(hù)性:

一旦已建成支持分區(qū)的數(shù)據(jù)倉(cāng)庫(kù)分階段應(yīng)用程序,整個(gè)系統(tǒng)將變得容易維護(hù)。維護(hù)活動(dòng)(包括加載數(shù)據(jù)、備份和還原表)可以并行地執(zhí)行,這樣可以極大地改善性能。漸變填充下行數(shù)據(jù)流多維數(shù)據(jù)集的進(jìn)程可以被加速和簡(jiǎn)化。

查詢(xún)速度:

查詢(xún)速度不應(yīng)該作為對(duì)數(shù)據(jù)倉(cāng)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行分區(qū)的理由。對(duì)于分區(qū)和未分區(qū)的事實(shí)表,查詢(xún)性能都差不多。在正確設(shè)計(jì)的分區(qū)數(shù)據(jù)庫(kù)中,關(guān)系引擎僅在查詢(xún)計(jì)劃中包括解析查詢(xún)所需的相關(guān)分區(qū)。例如,如果數(shù)據(jù)庫(kù)按月分區(qū),查詢(xún)條件為 2000 年 1 月,則查詢(xún)計(jì)劃僅包括 2000 年 1 月的分區(qū)。結(jié)果查詢(xún)將對(duì)分區(qū)表正確執(zhí)行,與在分區(qū)鍵上帶有簇索引的已索引合并表上執(zhí)行的大體相同。

分區(qū)的缺點(diǎn)

復(fù)雜性:

分區(qū)的主要缺點(diǎn)是需要管理員創(chuàng)建應(yīng)用程序來(lái)管理分區(qū)。在尚未設(shè)計(jì)、測(cè)試和試運(yùn)行應(yīng)用程序來(lái)管理分區(qū)之前,將在關(guān)系型數(shù)據(jù)庫(kù)中使用水平分區(qū)的數(shù)據(jù)倉(cāng)庫(kù)投入正式運(yùn)行是不恰當(dāng)?shù)摹1疚牡哪康闹痪褪怯懻撆c分區(qū)管理應(yīng)用程序有關(guān)的問(wèn)題和設(shè)計(jì)決策。

查詢(xún)?cè)O(shè)計(jì)約束:

要獲得最佳的查詢(xún)性能,所有的查詢(xún)都應(yīng)將條件直接放在事實(shí)表中的篩選鍵上。將約束放在第二張表(例如以日期為矢量的表)的查詢(xún)將包括所有分區(qū)。

設(shè)計(jì)時(shí)要考慮的因素:

矢量數(shù)據(jù)倉(cāng)庫(kù)圍繞事實(shí)(標(biāo)量)和矢量構(gòu)建,從物理上通常表示為星形架構(gòu)和雪花形架構(gòu),極少有同時(shí)包含事實(shí)和矢量的完全非正交化的平面表。典型情況下,矢量數(shù)據(jù)倉(cāng)庫(kù)的管理員僅對(duì)事實(shí)表進(jìn)行分區(qū);對(duì)矢量表進(jìn)行分區(qū)幾乎沒(méi)有什么好處。在某些情況下,對(duì)包含多于一千萬(wàn)個(gè)成員的大型矢量表進(jìn)行分區(qū)會(huì)有些好處。也可以對(duì)非矢量關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行分區(qū),本文中的一般觀點(diǎn)仍然適用。

只有充分考慮系統(tǒng)體系結(jié)構(gòu)和設(shè)計(jì)目標(biāo),才能制訂有效的分區(qū)計(jì)劃。即使使用相同的架構(gòu)設(shè)計(jì),僅用于填充服務(wù)分析多維數(shù)據(jù)集的關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)可能采用一個(gè)不同于分析員直接查詢(xún)的數(shù)據(jù)倉(cāng)庫(kù)的分區(qū)結(jié)構(gòu)。帶有滾動(dòng)窗口的系統(tǒng)必須按時(shí)間分區(qū),其他系統(tǒng)則不一定。

如果數(shù)據(jù)倉(cāng)庫(kù)包括分析服務(wù)多維數(shù)據(jù)集,Microsoft 建議關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)和分析服務(wù)數(shù)據(jù)庫(kù)中的分區(qū)應(yīng)該為并行結(jié)構(gòu)。維護(hù)應(yīng)用程序被簡(jiǎn)化了:應(yīng)用程序在關(guān)系型數(shù)據(jù)庫(kù)中創(chuàng)建新表的同時(shí)創(chuàng)建一個(gè)新多維數(shù)據(jù)集分區(qū)。管理員僅需要掌握一種分區(qū)策略。不過(guò),一個(gè)應(yīng)用程序也可能有充分的理由對(duì)兩個(gè)數(shù)據(jù)庫(kù)以不同方式進(jìn)行分區(qū),唯一降低的將是數(shù)據(jù)庫(kù)維護(hù)應(yīng)用程序的復(fù)雜性。

分區(qū)設(shè)計(jì)概述

SQL Server 數(shù)據(jù)庫(kù)中的分區(qū)表可以使用可更新或可查詢(xún)(不可更新)的分區(qū)視圖。在這兩種情況下,表分區(qū)都是由每個(gè)分區(qū)都包含正確數(shù)據(jù)的 CHECK 約束來(lái)創(chuàng)建的。一個(gè)可更新的分區(qū)視圖支持對(duì)視圖進(jìn)行 INSERT (或 UPDATE 或 DELETE)操作,并將操作推入至正確的基礎(chǔ)表。這很有益處,但數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用程序通常需要進(jìn)行批量加載,而這是無(wú)法通過(guò)視圖執(zhí)行的。下表總結(jié)了可更新和可查詢(xún)分區(qū)視圖的要求、優(yōu)點(diǎn)和缺點(diǎn)。

教你在SQL Server 2000數(shù)據(jù)庫(kù)中使用分區(qū) 

Microsoft 建議的做法是定義主鍵,并將事實(shí)表設(shè)計(jì)為本地(單個(gè)服務(wù)器上)的分區(qū)聯(lián)合視圖。大多數(shù)情況下,該定義會(huì)產(chǎn)生可更新的分區(qū)視圖,但數(shù)據(jù)倉(cāng)庫(kù)維護(hù)應(yīng)用程序應(yīng)設(shè)計(jì)為直接將大多數(shù)數(shù)據(jù)批量加載至成員表(而不是通過(guò)視圖進(jìn)行)。

語(yǔ)法示例:

以下代碼示例用來(lái)說(shuō)明定義成員表和聯(lián)合視圖以及將數(shù)據(jù)插入視圖的語(yǔ)法:

創(chuàng)建 1999 年事實(shí)表:

以下為引用的內(nèi)容:
CREATE TABLE [dbo].[sales_fact_19990101] (
[date_key] [int] NOT NULL
CHECK ([date_key] BETWEEN 19990101 AND 19991231),
[product_key] [int] NOT NULL ,
[customer_key] [int] NOT NULL ,
[promotion_key] [int] NOT NULL ,
[store_key] [int] NOT NULL ,
[store_sales] [money] NULL ,
[store_cost] [money] NULL ,
[unit_sales] [float] NULL
)
ALTER TABLE [sales_fact_19990101]
ADD PRIMARY KEY (
[date_key], [product_key], [customer_key], [promotion_key], [store_key])

 創(chuàng)建 2000 年事實(shí)表:

以下為引用的內(nèi)容:
CREATE TABLE [dbo].[sales_fact_20000101] (
[date_key] [int] NOT NULL
CHECK ([date_key] BETWEEN 20000101 AND 20001231),
[product_key] [int] NOT NULL ,
[customer_key] [int] NOT NULL ,
[promotion_key] [int] NOT NULL ,
[store_key] [int] NOT NULL ,
[store_sales] [money] NULL ,
[store_cost] [money] NULL ,
[unit_sales] [float] NULL
)
ALTER TABLE [sales_fact_20000101]
ADD PRIMARY KEY (
[date_key], [product_key], [customer_key], [promotion_key], [store_key])

創(chuàng)建 UNION ALL 視圖:

以下為引用的內(nèi)容:

CREATE VIEW [dbo].[sales_fact]
AS
SELECT * FROM [dbo].[sales_fact_19990101]
UNION ALL
SELECT * FROM [dbo].[sales_fact_20000101]

現(xiàn)在插入幾行數(shù)據(jù),例如:

INSERT INTO [sales_fact]
VALUES (19990125, 347, 8901, 0, 13, 5.3100, 1.8585, 3.0)
INSERT INTO [sales_fact]
VALUES (19990324, 576, 7203, 0, 13, 2.1000, 0.9450, 3.0)
INSERT INTO [sales_fact]
VALUES (19990604, 139, 7203, 0, 13, 5.3700, 2.2017, 3.0)
INSERT INTO [sales_fact]
VALUES (20000914, 396, 8814, 0, 13, 6.4800, 2.0736, 2.0)
INSERT INTO [sales_fact]
VALUES (20001113, 260, 8269, 0, 13, 5.5200, 2.4840, 3.0)

要驗(yàn)證分區(qū)是否正常工作,請(qǐng)使用查詢(xún)分析器來(lái)顯示查詢(xún)計(jì)劃,例如:

SELECT TOP 2 * FROM sales_fact WHERE date_key = 19990324

您應(yīng)該看到查詢(xún)計(jì)劃中僅包括表 1999。將該查詢(xún)計(jì)劃與主鍵已刪除 關(guān)鍵詞標(biāo)簽:分區(qū),使用,數(shù)據(jù)庫(kù),數(shù)據(jù)


學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。




主站蜘蛛池模板: 三上悠亚久久国产 | 日韩一区精品视频在线看 | 亚洲日本视频 | 日本久久伊人 | 欧美综合伊人久久 | 色.www| 色99色| 三级黄色网络 | 亚洲欧美在线观看一区二区 | 亚洲精品中文字幕乱码 | 日韩aⅴ在线观看 | 欧美性猛交ⅹxxx乱大交免费 | 天天拍拍夜夜出水 | 亚洲欧洲日韩在线 | 青娱乐在线视频免费观看 | 亚洲狠狠操 | 性刺激视频在线播放免费 | 日韩精品一区二区三区免费视频 | 午夜人屠h精品全集 | 亚洲综合视频在线 | 五月伊人婷婷 | 色综合久久久久久久久五月 | 日韩一区二紧身裤 | 亚洲一区二区三区免费观看 | 日韩毛片免费视频一级特黄 | 三级黄色片在线免费观看 | 日韩欧美国产另类 | 青春草a∨在线观看免费app | 午夜免费视频观看在线播放 | 日韩黄色小视频 | 天天操天天摸天天碰 | 欧美特级淫片 | 日韩欧美国产中文字幕 | 青草草在线观看 | 四虎在线精品免费高清在线 | 日韩精品亚洲人成在线播放 | 青青草 久久久 | 最新91网址| 日韩一区国产一级 | 婷婷狠狠操| 无码精品日韩中文字幕 |