SQL Server中創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù)已分區(qū)表
注意: 您可以復(fù)制下面的腳本,這些腳本位于 C:\SQLHOLS\Partitioning\Solution\Partition Processing 文件夾中的 Partition Processing.ssmssln 解決方案中。
1.新建 SQL Server 腳本項(xiàng)目
(1)從開(kāi)始->所有程序菜單中的 Microsoft SQL Server 2008 程序組中啟動(dòng)SQL Server Management Studio。
(2)在連接到服務(wù)器對(duì)話框中,驗(yàn)證下列設(shè)置無(wú)誤后單擊連接:
• 服務(wù)器類(lèi)型:數(shù)據(jù)庫(kù)引擎
• 服務(wù)器名稱(chēng):(local)
• 身份驗(yàn)證:Windows 身份驗(yàn)證
(3)在文件菜單上,指向新建,然后單擊項(xiàng)目。
(4)確保選中 SQL Server 腳本,然后輸入下列設(shè)置:
• 名稱(chēng):Partition Processing
• 位置:C:\SQLHOLs\Partitioning\Starter
• 解決方案名稱(chēng):Partition Processing
(5)確保選中創(chuàng)建解決方案的目錄,然后單擊確定。
(6)在解決方案資源管理器中,右鍵單擊連接,然后單擊新建連接。
(7)在連接到服務(wù)器對(duì)話框中,驗(yàn)證下列設(shè)置無(wú)誤后單擊確定:
• 服務(wù)器名稱(chēng):(local)
• 身份驗(yàn)證:Windows 身份驗(yàn)證
2.創(chuàng)建文件組和文件
(1)在解決方案資源管理器中,右鍵單擊在前面步驟中添加的連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Files and Filegroups.sql,然后按 Enter。
(4)鍵入下面的代碼(每個(gè) FILENAME 參數(shù)都應(yīng)單占一行)。
USE [master]ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2001]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2002]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2003]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2004]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILE
(NAME = N'AdventureWorksDW_Data2001',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2001.ndf',
SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2001]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILE
(NAME = N'AdventureWorksDW_Data2002',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2002.ndf',
SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2002]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILE
(NAME = N'AdventureWorksDW_Data2003',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2003.ndf',
SIZE = 2048KB , FILEGROWTH = 1024KB) TO FILEGROUP [fg2003]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILE
(NAME = N'AdventureWorksDW_Data2004',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2004.ndf',
SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2004]
GO
(5)單擊執(zhí)行。
3.創(chuàng)建分區(qū)函數(shù)
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Create Partition Function.sql,然后按 Enter。
(4)鍵入下面的代碼。
USE AdventureWorksDWCREATE PARTITION FUNCTION pf_OrderDateKey(int)
AS RANGE RIGHT
FOR VALUES(185,550)
GO
(5)單擊執(zhí)行。
注意:分區(qū)函數(shù)提供了兩個(gè)文件組之間的邊界。在本例中,值是與 1 月 1 日對(duì)應(yīng)的鍵。
4.創(chuàng)建分區(qū)方案
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Create Partition Scheme.sql,然后按 Enter。
(4)鍵入下面的代碼。單擊執(zhí)行。
USE AdventureWorksDWCREATE PARTITION SCHEME ps_OrderDateKey
AS PARTITION pf_OrderDateKey
TO (fg2001,fg2002,fg2003,fg2004)
GO
注意:雖然分區(qū)函數(shù)中僅列出了兩個(gè)邊界,但卻有四個(gè)文件組在分區(qū)函數(shù)中列出。第四個(gè)文件組是作為供將來(lái)的文件組拆分使用的下一個(gè)文件組提供的。
5.創(chuàng)建已分區(qū)表
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Create Table.sql,然后按 Enter。
(4)鍵入下面的代碼。
USE AdventureWorksDWCREATE TABLE [dbo].[FactInternetSalesPartitioned]
(
[InternetSalesID] [int] IDENTITY(1,1) NOT NULL,
[ProductKey] [int] NOT NULL,
[OrderDateKey] [int] NOT NULL,
[DueDateKey] [int] NOT NULL,
[ShipDateKey] [int] NOT NULL,
[CustomerKey] [int] NOT NULL,
[PromotionKey] [int] NOT NULL,
[CurrencyKey] [int] NOT NULL,
[SalesTerritoryKey] [int] NOT NULL,
[SalesOrderNumber] [nvarchar](20) NOT NULL,
[OrderQuantity] [smallint] NULL,
[UnitPrice] [money] NULL,
CONSTRAINT [PK_ FactInternetSalesPartitioned] PRIMARY KEY CLUSTERED
(
[InternetSalesID],
[ProductKey],
[OrderDateKey],
[DueDateKey],
[ShipDateKey],
[CustomerKey],
[PromotionKey],
[CurrencyKey],
[SalesTerritoryKey]
)
)
ON ps_OrderDateKey(OrderDateKey)
GO
(5)單擊執(zhí)行。
6.將數(shù)據(jù)插入已分區(qū)表中
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Load Data.sql,然后按 Enter。
(4)鍵入下面的代碼。
USE AdventureWorksDWINSERT INTO [dbo].[FactInternetSalesPartitioned]
(
[ProductKey],
[OrderDateKey],
[DueDateKey],
[ShipDateKey],
[CustomerKey],
[PromotionKey],
[CurrencyKey],
[SalesTerritoryKey],
[SalesOrderNumber],
[OrderQuantity],
[UnitPrice]
)
SELECT
[ProductKey],
[OrderDateKey],
[DueDateKey],
[ShipDateKey],
[CustomerKey],
[PromotionKey],
[CurrencyKey],
[SalesTerritoryKey],
[SalesOrderNumber],
[OrderQuantity],
[UnitPrice]
FROM [dbo].[FactInternetSales]
GO
(5)單擊執(zhí)行。
7.查看分區(qū)數(shù)據(jù)
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 View Partitioned Data.sql,然后按 Enter。
(4)鍵入下面的代碼。
USE AdventureWorksDWSELECTProductKey,
OrderDateKey,
$PARTITION.pf_OrderDateKey (OrderDateKey) AS PartitionNo
FROM FactInternetSalesPartitioned
GO
SELECT $PARTITION.pf_OrderDateKey (OrderDateKey) AS PartitionNo,
COUNT(*) AS Rows FROM FactInternetSalesPartitioned
GROUP BY $PARTITION.pf_OrderDateKey (OrderDateKey)
ORDER BY PartitionNo
GO
(5)單擊執(zhí)行。
(6)待查詢(xún)完成后,查看結(jié)果。
注意:第一個(gè)結(jié)果集顯示表中每行的產(chǎn)品密鑰和訂單日期密鑰以及存儲(chǔ)各行的相應(yīng)分區(qū)。
第二個(gè)結(jié)果集顯示各分區(qū)中的行數(shù)。
(7)保持 SQL Server Management Studio 打開(kāi),下一個(gè)練習(xí)還要使用此程序。
在本練習(xí)中,您將創(chuàng)建一個(gè)分區(qū)數(shù)據(jù)倉(cāng)庫(kù)事實(shí)數(shù)據(jù)表。非常大的表經(jīng)常需要跨幾個(gè)磁盤(pán)卷存儲(chǔ)數(shù)據(jù)。SQL Server 表無(wú)法放置在特定文件中。但是,文件組可以放置在文件中,而表可以分配給文件組。這樣您就可以控制 SQL Server 中非常大的表中的數(shù)據(jù)的存儲(chǔ)。而且,如果表跨幾個(gè)文件組,定義哪些數(shù)據(jù)放置在哪個(gè)文件組中會(huì)非常有用。分區(qū)函數(shù)通過(guò)基于特定列中的值沿水平方向拆分表提供 了此功能。
注意: 您可以復(fù)制此練習(xí)中所用的腳本,這些腳本位于 C:\SQLHOLS\Partitioning\Solution\Partition Processing 文件夾中的 Partition Processing.ssmssln 解決方案中。
1.新建 SQL Server 腳本項(xiàng)目
(1)從開(kāi)始->所有程序菜單中的 Microsoft SQL Server 2008 程序組中啟動(dòng)SQL Server Management Studio。
(2)在連接到服務(wù)器對(duì)話框中,驗(yàn)證下列設(shè)置無(wú)誤后單擊連接:
• 服務(wù)器類(lèi)型:數(shù)據(jù)庫(kù)引擎
• 服務(wù)器名稱(chēng):(local)
• 身份驗(yàn)證:Windows 身份驗(yàn)證
(3)在文件菜單上,指向新建,然后單擊項(xiàng)目。
(4)確保選中 SQL Server 腳本,然后輸入下列設(shè)置:
• 名稱(chēng):Partition Processing
• 位置:C:\SQLHOLs\Partitioning\Starter
• 解決方案名稱(chēng):Partition Processing
(5)確保選中創(chuàng)建解決方案的目錄,然后單擊確定。
(6)在解決方案資源管理器中,右鍵單擊連接,然后單擊新建連接。
(7)在連接到服務(wù)器對(duì)話框中,驗(yàn)證下列設(shè)置無(wú)誤后單擊確定:
• 服務(wù)器名稱(chēng):(local)
• 身份驗(yàn)證:Windows 身份驗(yàn)證
2.創(chuàng)建文件組和文件
(1)在解決方案資源管理器中,右鍵單擊在前面步驟中添加的連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Files and Filegroups.sql,然后按 Enter。
(4)鍵入下面的代碼(每個(gè) FILENAME 參數(shù)都應(yīng)單占一行)。
USE [master]ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2001]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2002]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2003]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILEGROUP [fg2004]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILE
(NAME = N'AdventureWorksDW_Data2001',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2001.ndf',
SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2001]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILE
(NAME = N'AdventureWorksDW_Data2002',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2002.ndf',
SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2002]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILE
(NAME = N'AdventureWorksDW_Data2003',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2003.ndf',
SIZE = 2048KB , FILEGROWTH = 1024KB) TO FILEGROUP [fg2003]
GO
ALTER DATABASE [AdventureWorksDW] ADD FILE
(NAME = N'AdventureWorksDW_Data2004',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW_Data2004.ndf',
SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [fg2004]
GO
(5)單擊執(zhí)行。
3.創(chuàng)建分區(qū)函數(shù)
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Create Partition Function.sql,然后按 Enter。
(4)鍵入下面的代碼。
USE AdventureWorksDWCREATE PARTITION FUNCTION pf_OrderDateKey(int)
AS RANGE RIGHT
FOR VALUES(185,550)
GO
(5)單擊執(zhí)行。
注意:分區(qū)函數(shù)提供了兩個(gè)文件組之間的邊界。在本例中,值是與 1 月 1 日對(duì)應(yīng)的鍵。
4.創(chuàng)建分區(qū)方案
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Create Partition Scheme.sql,然后按 Enter。
(4)鍵入下面的代碼。單擊執(zhí)行。
USE AdventureWorksDWCREATE PARTITION SCHEME ps_OrderDateKey
AS PARTITION pf_OrderDateKey
TO (fg2001,fg2002,fg2003,fg2004)
GO
注意:雖然分區(qū)函數(shù)中僅列出了兩個(gè)邊界,但卻有四個(gè)文件組在分區(qū)函數(shù)中列出。第四個(gè)文件組是作為供將來(lái)的文件組拆分使用的下一個(gè)文件組提供的。
5.創(chuàng)建已分區(qū)表
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Create Table.sql,然后按 Enter。
(4)鍵入下面的代碼。
USE AdventureWorksDWCREATE TABLE [dbo].[FactInternetSalesPartitioned]
(
[InternetSalesID] [int] IDENTITY(1,1) NOT NULL,
[ProductKey] [int] NOT NULL,
[OrderDateKey] [int] NOT NULL,
[DueDateKey] [int] NOT NULL,
[ShipDateKey] [int] NOT NULL,
[CustomerKey] [int] NOT NULL,
[PromotionKey] [int] NOT NULL,
[CurrencyKey] [int] NOT NULL,
[SalesTerritoryKey] [int] NOT NULL,
[SalesOrderNumber] [nvarchar](20) NOT NULL,
[OrderQuantity] [smallint] NULL,
[UnitPrice] [money] NULL,
CONSTRAINT [PK_ FactInternetSalesPartitioned] PRIMARY KEY CLUSTERED
(
[InternetSalesID],
[ProductKey],
[OrderDateKey],
[DueDateKey],
[ShipDateKey],
[CustomerKey],
[PromotionKey],
[CurrencyKey],
[SalesTerritoryKey]
)
)
ON ps_OrderDateKey(OrderDateKey)
GO
(5)單擊執(zhí)行。
6.將數(shù)據(jù)插入已分區(qū)表中
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 Load Data.sql,然后按 Enter。
(4)鍵入下面的代碼。
USE AdventureWorksDWINSERT INTO [dbo].[FactInternetSalesPartitioned]
(
[ProductKey],
[OrderDateKey],
[DueDateKey],
[ShipDateKey],
[CustomerKey],
[PromotionKey],
[CurrencyKey],
[SalesTerritoryKey],
[SalesOrderNumber],
[OrderQuantity],
[UnitPrice]
)
SELECT
[ProductKey],
[OrderDateKey],
[DueDateKey],
[ShipDateKey],
[CustomerKey],
[PromotionKey],
[CurrencyKey],
[SalesTerritoryKey],
[SalesOrderNumber],
[OrderQuantity],
[UnitPrice]
FROM [dbo].[FactInternetSales]
GO
(5)單擊執(zhí)行。
7.查看分區(qū)數(shù)據(jù)
(1)在解決方案資源管理器中,右鍵單擊該連接,然后單擊新建查詢(xún)。
(2)右鍵單擊 SQLQuery1.sql,然后單擊重命名。
(3)鍵入 View Partitioned Data.sql,然后按 Enter。
(4)鍵入下面的代碼。
USE AdventureWorksDWSELECTProductKey,
OrderDateKey,
$PARTITION.pf_OrderDateKey (OrderDateKey) AS PartitionNo
FROM FactInternetSalesPartitioned
GO
SELECT $PARTITION.pf_OrderDateKey (OrderDateKey) AS PartitionNo,
COUNT(*) AS Rows FROM FactInternetSalesPartitioned
GROUP BY $PARTITION.pf_OrderDateKey (OrderDateKey)
ORDER BY PartitionNo
GO
(5)單擊執(zhí)行。
(6)待查詢(xún)完成后,查看結(jié)果。
注意:第一個(gè)結(jié)果集顯示表中每行的產(chǎn)品密鑰和訂單日期密鑰以及存儲(chǔ)各行的相應(yīng)分區(qū)。
第二個(gè)結(jié)果集顯示各分區(qū)中的行數(shù)。
(7)保持 SQL Server Management Studio 打開(kāi),下一個(gè)練習(xí)還要使用此程序。
關(guān)鍵字:服務(wù)器、SQL Server、數(shù)據(jù)庫(kù)
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶(hù)
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶(hù)的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解