日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > SQL Server表分區(一):基礎知識和實現方式

SQL Server表分區(一):基礎知識和實現方式

來源:程序員人生   發布時間:2013-10-27 10:43:13 閱讀次數:3637次

1、什么是表分區?

SQL Server使用三種不同類型的文件存儲數據,它們分別是.mdf、.ndf和.ldf。主要數據存儲在
.mdf文件中,比如表,索引,存儲過程等。.ndf文件也用于儲存這些數據。.ldf文件用于存儲操作日志。
表默認存儲在.mdf文件中。更新表時SQL Server會對表鎖。那么其它的操作必須等待正在更新操作完成。
如果一個表很大,那么無論是查詢操作還是更新操作,性能都會很差。如果將表分別存儲在物理上獨立但邏輯上連續的
分區中,那么SQL Server可以大幅優化查詢操作和更新操作的性能。

2、如何實現表分區?
1)確定分區策略,即劃分數據的邏輯規則。比如將整形值小于100的數據放在一個分區上,將大于等于100的數據放在第二個
分區上,等等。
SQL Server中的使用分區函數來實現分區策略:

CREATE PARTITION FUNCTION PF_Order(DATETIME)
AS RANGE RIGHT FOR VALUES
('20090101','20100101','20110101')

2)確定分區存儲架構,即劃分數據的物理存儲規則。最終分區可以存儲在主文件組,即.mdf文件中,也可以存儲在非主文件組,
即.ndf文件中。
SQL Server中的使用分區架構來實現分區存儲架構:

CREATE PARTITION SCHEME PS_Order
AS PARTITION PF_Order
TO ([FG1],[FG2],[FG3],[FG4])

3)將表創建在分區存儲架構上,并指定使用哪一列做為劃分數據的依據。注意做為劃分數據依據的列必須在聚集索引中
在更新數據時,SQL Server首先使用列的數據做為參數調用分區函數確定應該將該數據存儲在哪個文件組(邏輯分區),
然后將數據寫入文件組對應的物理文件中。

SQL Server中創建分區表:

CREATE TABLE dbo.[Order]
(
OrderID BIGINT IDENTITY(1,1),
OrderDate DATETIME NOT NULL,
CONSTRAINT PK_Order_OrderID_OrderDate PRIMARY KEY CLUSTERED(OrderID,OrderDate)
)
ON PS_Order(OrderDate)

下面是詳細的示例代碼:

--表分區測試代碼
USE [master]
GO

--創建具有多個文件組的測試數據庫
IF EXISTS(SELECT 1 FROM sys.databases WHERE [name]=N'TestTablePartitionDB')
BEGIN
    DROP DATABASE [TestTablePartitionDB]
END

CREATE DATABASE [TestTablePartitionDB]
ON PRIMARY
(
Name='PrimaryFG',
FileName='D:TestTablePartitionTestTablePartitionDB.mdf',
Size=5,
FileGrowth=1
),
FILEGROUP [FG1]
(
Name='FG1',
FileName='D:TestTablePartitionFG1.ndf',
Size=5,
FileGrowth=1
),
FILEGROUP [FG2]
(
Name='FG2',
FileName='D:TestTablePartitionFG2.ndf',
Size=5,
FileGrowth=1
),
FILEGROUP [FG3]
(
Name='FG3',
FileName='D:TestTablePartitionFG3.ndf',
Size=5,
FileGrowth=1
),
FILEGROUP [FG4]
(
Name='FG4',
FileName='D:TestTablePartitionFG4.ndf',
Size=5,
FileGrowth=1
)

USE TestTablePartitionDB
GO

--創建分區函數
CREATE PARTITION FUNCTION PF_Order(DATETIME)
AS RANGE LEFT FOR VALUES
('20090101','20100101','20110101')

--創建分區架構
CREATE PARTITION SCHEME PS_Order
AS PARTITION PF_Order
TO([FG1],[FG2],[FG3],[FG4])

--創建分區表
CREATE TABLE dbo.[Order]
(
OrderID BIGINT IDENTITY(1,1),
OrderDate DATETIME NOT NULL,
CONSTRAINT PK_Order_OrderID_OrderDate PRIMARY KEY CLUSTERED(OrderID,OrderDate)
)
ON PS_Order(OrderDate)

--測試數據的邏輯分區是哪個
SELECT $PARTITION.PF_Order('20090101')

--測試分區表的分區情況
SELECT partition_number,rows
FROM sys.partitions
WHERE [object_id]=object_id(N'dbo.[Order]')

--Drop index MyTable_IXC on MyTable with (Move To [Data Partition Scheme] (ID) )

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲电影免费观看 | 午夜日韩 | 日韩成人免费观看 | 中国一级特黄毛片大片 | 国产精品国产三级国产aⅴ9色 | 网曝91综合精品门事件在线 | 国产日韩精品视频 | 91大神在线看 | 全免一级毛片 | 自拍欧美亚洲 | 欧美一级淫片丝袜脚交 | 狠狠的日 | 亚洲欧美另类在线观看 | 在线观看日韩视频 | 爱爱免费视频 | 国产欧美久久一区二区三区 | 在线观看免费亚洲 | 免费一级黄色 | 日韩欧美在线观看视频 | 成人精品国产免费网站 | 日韩视频一区 | 黄网址在线观看 | 一区中文字幕 | 成人欧美一区二区三区黑人孕妇 | 亚洲精品视频自拍 | 91久久精品一区二区 | 久久精品视频播放 | 久久久精品一区二区 | 在线视频黄 | 日韩欧美精品在线 | 成人免费视频在线观看 | 午夜av在线播放 | 亚洲一区二区三区在线视频 | 精品一区在线播放 | 中文字幕av一区二区三区 | 国产精品国产亚洲精品看不卡15 | 国产成人精品一区二区 | 91网站在线免费看 | 日本中文字幕在线视频 | 国产精品视频一区二区三区四区五区 | 国产免费小视频 |