sqlserver數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)

sqlserver數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)

ID:17654932

大小:57.50 KB

頁(yè)數(shù):24頁(yè)

時(shí)間:2018-09-04

sqlserver數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)_第1頁(yè)
sqlserver數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)_第2頁(yè)
sqlserver數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)_第3頁(yè)
sqlserver數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)_第4頁(yè)
sqlserver數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)_第5頁(yè)
資源描述:

《sqlserver數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、SQLServer數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)摘要:影響數(shù)據(jù)庫(kù)性能的一些因素及SQLServer進(jìn)行性能優(yōu)化的原理,并且提出了一些指導(dǎo)性的原則來(lái)優(yōu)化數(shù)據(jù)庫(kù)的性能。關(guān)鍵詞:SQLServer數(shù)據(jù)庫(kù)性能優(yōu)化查詢?cè)O(shè)計(jì)1個(gè)應(yīng)用系統(tǒng)似乎并不難,但是要想使系統(tǒng)達(dá)到最優(yōu)化的性能并不是一件容易的事。在開發(fā)工具、數(shù)據(jù)庫(kù)設(shè)計(jì)、應(yīng)用程序的結(jié)構(gòu)、查詢?cè)O(shè)計(jì)、接口選擇等方面有多種選擇,這取決于特定的應(yīng)用需求以及開發(fā)隊(duì)伍的技能。本文以SQLServer為例,從后臺(tái)數(shù)據(jù)庫(kù)的角度討論應(yīng)用程序性能優(yōu)化技巧,并且給出了一些有益的建議。1數(shù)據(jù)庫(kù)設(shè)計(jì)要在良好的SQLServer方案中實(shí)現(xiàn)最優(yōu)的性能,最關(guān)鍵的是要有1個(gè)很好的數(shù)據(jù)庫(kù)設(shè)計(jì)

2、方案。在實(shí)際工作中,許多SQLServer方案往往是由于數(shù)據(jù)庫(kù)設(shè)計(jì)得不好導(dǎo)致性能很差。所以,要實(shí)現(xiàn)良好的數(shù)據(jù)庫(kù)設(shè)計(jì)就必須考慮這些問(wèn)題。1.1邏輯庫(kù)規(guī)范化問(wèn)題一般來(lái)說(shuō),邏輯數(shù)據(jù)庫(kù)設(shè)計(jì)會(huì)滿足規(guī)范化的前3級(jí)標(biāo)準(zhǔn):1.第1規(guī)范:沒有重復(fù)的組或多值的列。2.第2規(guī)范:每個(gè)非關(guān)鍵字段必須依賴于主關(guān)鍵字,不能依賴于1個(gè)組合式主關(guān)鍵字的某些組成部分。3.第3規(guī)范:1個(gè)非關(guān)鍵字段不能依賴于另1個(gè)非關(guān)鍵字段。遵守這些規(guī)則的設(shè)計(jì)會(huì)產(chǎn)生較少的列和更多的表,因而也就減少了數(shù)據(jù)冗余,也減少了用于存儲(chǔ)數(shù)據(jù)的頁(yè)。但表關(guān)系也許需要通過(guò)復(fù)雜的合并來(lái)處理,這樣會(huì)降低系統(tǒng)的性能。某種程度上的非規(guī)范化可以改善系統(tǒng)的性能,非

3、規(guī)范化過(guò)程可以根據(jù)性能方面不同的考慮用多種不同的方法進(jìn)行,但以下方法經(jīng)實(shí)踐驗(yàn)證往往能提高性能。1.如果規(guī)范化設(shè)計(jì)產(chǎn)生了許多4路或更多路合并關(guān)系,就可以考慮在數(shù)據(jù)庫(kù)實(shí)體中加入重復(fù)屬性。2.常用的計(jì)算字段可以考慮存儲(chǔ)到數(shù)據(jù)庫(kù)實(shí)體中。比如某一個(gè)項(xiàng)目的計(jì)劃中有計(jì)劃表,其字段為:項(xiàng)目編號(hào)、年初計(jì)劃、二次計(jì)劃、調(diào)整計(jì)劃、補(bǔ)列計(jì)劃…,而計(jì)劃總數(shù)是用戶經(jīng)常需要在查詢和報(bào)表中用到的,在表的記錄量很大時(shí),有必要把計(jì)劃總數(shù)作為1個(gè)獨(dú)立的字段加入到表中。這里可以采用觸發(fā)器以在客戶端保持?jǐn)?shù)據(jù)的一致性。3.重新定義實(shí)體以減少外部屬性數(shù)據(jù)或行數(shù)據(jù)的開支。相應(yīng)的非規(guī)范化類型是:把1個(gè)實(shí)體分割成2個(gè)表。這樣就把頻繁

4、被訪問(wèn)的數(shù)據(jù)同較少被訪問(wèn)的數(shù)據(jù)分開了。這種方法要求在每個(gè)表中復(fù)制首要關(guān)鍵字。這樣產(chǎn)生的設(shè)計(jì)有利于并行處理,并將產(chǎn)生列數(shù)較少的表。把1個(gè)實(shí)體分割成2個(gè)表。這種方法適用于那些將包含大量數(shù)據(jù)的實(shí)體。在應(yīng)用中常要保留歷史記錄,但是歷史記錄很少用到。因此可以把頻繁被訪問(wèn)的數(shù)據(jù)同較少被訪問(wèn)的歷史數(shù)據(jù)分開。而且如果數(shù)據(jù)行是作為子集被邏輯工作組訪問(wèn)的,那么這種方法也是很有好處的。1.2生成物理數(shù)據(jù)庫(kù)要想正確選擇基本物理實(shí)現(xiàn)策略,必須懂得數(shù)據(jù)庫(kù)訪問(wèn)格式和硬件資源的操作特點(diǎn),主要是內(nèi)存和磁盤子系統(tǒng)I/O。這是一個(gè)范圍廣泛的話題,但以下的準(zhǔn)則可能會(huì)有所幫助。1.與每個(gè)表列相關(guān)的數(shù)據(jù)類型應(yīng)該反映數(shù)據(jù)所需的

5、最小存儲(chǔ)空間,特別是對(duì)于被索引的列更是如此。比如能使用smallint類型就不要用integer類型,這樣索引字段可以被更快地讀取,而且可以在1個(gè)數(shù)據(jù)頁(yè)上放置更多的數(shù)據(jù)行,因而也就減少了I/O操作。2.把1個(gè)表放在某個(gè)物理設(shè)備上,再通過(guò)SQLServer段把它的不分簇索引放在1個(gè)不同的物理設(shè)備上,這樣能提高性能。尤其是系統(tǒng)采用了多個(gè)智能型磁盤控制器和數(shù)據(jù)分離技術(shù)的情況下,這樣做的好處更加明顯。3.用SQLServer段把一個(gè)頻繁使用的大表分割開,并放在2個(gè)單獨(dú)的智能型磁盤控制器的數(shù)據(jù)庫(kù)設(shè)備上,這樣也可以提高性能。因?yàn)橛卸鄠€(gè)磁頭在查找,所以數(shù)據(jù)分離也能提高性能。4.用SQLServe

6、r段把文本或圖像列的數(shù)據(jù)存放在1個(gè)單獨(dú)的物理設(shè)備上可以提高性能。1個(gè)專用的智能型的控制器能進(jìn)一步提高性能。2與SQLServer相關(guān)的硬件系統(tǒng)與SQLServer有關(guān)的硬件設(shè)計(jì)包括系統(tǒng)處理器、內(nèi)存、磁盤子系統(tǒng)和網(wǎng)絡(luò),這4個(gè)部分基本上構(gòu)成了硬件平臺(tái),和SQLServer運(yùn)行于其上。2.1系統(tǒng)處理器根據(jù)自己的具體需要確定CPU結(jié)構(gòu)的過(guò)程就是估計(jì)在硬件平臺(tái)上占用CPU的工作量的過(guò)程。從以往的經(jīng)驗(yàn)看,CPU配置最少應(yīng)是1個(gè)80586/100處理器。如果只有2~3個(gè)用戶,這就足夠了,但如果打算支持更多的用戶和關(guān)鍵應(yīng)用,推薦采用PentiumPro或PⅡ級(jí)CPU。2.2內(nèi)存為SQLServer

7、方案確定合適的內(nèi)存設(shè)置對(duì)于實(shí)現(xiàn)良好的性能是至關(guān)重要的。SQLServer用內(nèi)存做過(guò)程緩存、數(shù)據(jù)和索引項(xiàng)緩存、靜態(tài)開支和設(shè)置開支。SQLServer最多能利用2GB虛擬內(nèi)存,這也是最大的設(shè)置值。還有一點(diǎn)必須考慮的是WindowsNT和它的所有相關(guān)的服務(wù)也要占用內(nèi)存。WindowsNT為每個(gè)WIN32應(yīng)用程序提供了4GB的虛擬地址空間。這個(gè)虛擬地址空間由WindowsNT虛擬內(nèi)存管理器映射到物理內(nèi)存上,在某些硬件平臺(tái)上可以達(dá)到4GB。SQLServer應(yīng)用程序只知道虛擬地

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。