大數(shù)據(jù)量下的SQL Server數(shù)據(jù)庫自身優(yōu)化
博客園 發(fā)表于:13年01月22日 00:44 [轉(zhuǎn)載] 51CTO
數(shù)據(jù)文件和日志文件的操作會產(chǎn)生大量的I/O。在可能的條件下,日志文件應(yīng)該存放在一個與數(shù)據(jù)和索引所在的數(shù)據(jù)文件不同的硬盤上以分散I/O,同時還有利于數(shù)據(jù)庫的災(zāi)難恢復(fù)。
優(yōu)化②:表分區(qū),索引分區(qū) (優(yōu)化①粗略的進行了表分區(qū),優(yōu)化②為精確數(shù)據(jù)分區(qū))
為什么要表分區(qū)?
當一個表的數(shù)據(jù)量太大的時候,我們最想做的一件事是什么?將這個表一分為二或者更多分,但是表還是這個表,只是將其內(nèi)容存儲分開,這樣讀取就快了N倍了
原理:表數(shù)據(jù)是無法放在文件中的,但是文件組可以放在文件中,表可以放在文件組中,這樣就間接實現(xiàn)了表數(shù)據(jù)存放在不同的文件中。能分區(qū)存儲的還有:表、索引和大型對象數(shù)據(jù) 。
SQL SERVER 2005中,引入了表分區(qū)的概念, 當表中的數(shù)據(jù)量不斷增大,查詢數(shù)據(jù)的速度就會變慢,應(yīng)用程序的性能就會下降,這時就應(yīng)該考慮對表進行分區(qū),當一個表里的數(shù)據(jù)很多時,可以將其分拆到多個的表里,因為要掃描的數(shù)據(jù)變得更少 ,查詢可以更快地運行,這樣操作大大提高了性能,表進行分區(qū)后,邏輯上表仍然是一張完整的表,只是將表中的數(shù)據(jù)在物理上存放到多個表空間(物理文件上),這樣查詢數(shù)據(jù)時,不至于每次都掃描整張表
2.1什么時候使用分區(qū)表:
1、表的大小超過2GB。
2、表中包含歷史數(shù)據(jù),新的數(shù)據(jù)被增加到新的分區(qū)中。
2.2表分區(qū)的優(yōu)缺點
表分區(qū)有以下優(yōu)點:
1、改善查詢性能:對分區(qū)對象的查詢可以僅搜索自己關(guān)心的分區(qū),提高檢索速度。
2、增強可用性:如果表的某個分區(qū)出現(xiàn)故障,表在其他分區(qū)的數(shù)據(jù)仍然可用;
3、維護方便:如果表的某個分區(qū)出現(xiàn)故障,需要修復(fù)數(shù)據(jù),只修復(fù)該分區(qū)即可;
4、均衡I/O:可以把不同的分區(qū)映射到磁盤以平衡I/O,改善整個系統(tǒng)性能。
缺點:
分區(qū)表相關(guān):已經(jīng)存在的表沒有方法可以直接轉(zhuǎn)化為分區(qū)表。不過 Oracle 提供了在線重定義表的功能。
2.3表分區(qū)的操作三步走
2.31 創(chuàng)建分區(qū)函數(shù)
CREATE PARTITION FUNCTION xx1(int)
AS RANGE LEFT FOR VALUES (10000, 20000);
注釋:創(chuàng)建分區(qū)函數(shù):myRangePF2,以INT類型分區(qū),分三個區(qū)間,10000以內(nèi)在A 區(qū),1W-2W在B區(qū),2W以上在C區(qū).
2.3.2創(chuàng)建分區(qū)架構(gòu)
CREATE PARTITION SCHEME myRangePS2
AS PARTITION xx1
TO (a, b, c);
注釋:在分區(qū)函數(shù)XX1上創(chuàng)建分區(qū)架構(gòu):myRangePS2,分別為A,B,C三個區(qū)間
A,B,C分別為三個文件組的名稱,而且必須三個NDF隸屬于這三個組,文件所屬文件組一旦創(chuàng)建就不能修改
2.3.3 對表進行分區(qū)
常用數(shù)據(jù)規(guī)范--數(shù)據(jù)空間類型修改為:分區(qū)方案,然后選擇分區(qū)方案名稱和分區(qū)列列表,結(jié)果如圖所示:
也可以用sql語句生成
- CREATE TABLE [dbo].[AvCache](
- [AVNote] [varchar](300) NULL,
- [bb] [int] IDENTITY(1,1)
- ) ON [myRangePS2](bb);
--注意這里使用[myRangePS2]架構(gòu),根據(jù)bb分區(qū)
2.3.4查詢表分區(qū)
SELECT *, $PARTITION.[myRangePF2](bb) FROM dbo.AVCache
這樣就可以清楚的看到表數(shù)據(jù)是如何分區(qū)的了
2.3.5創(chuàng)建索引分區(qū)
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.