>  一、簡介  自從你和你的團隊成功的開發(fā)和部署了一個INTER網(wǎng)站,已經(jīng)過去數(shù)月了,這個網(wǎng)站在很短的時間內(nèi)吸引了數(shù)千用戶前來注冊和使用,因此你有了一個非常滿意的客戶。包括你和你的團隊、管理層、">
sql server使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化--

sql server使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化--

ID:22725945

大?。?2.00 KB

頁數(shù):14頁

時間:2018-10-31

sql server使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化--_第1頁
sql server使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化--_第2頁
sql server使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化--_第3頁
sql server使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化--_第4頁
sql server使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化--_第5頁
資源描述:

《sql server使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化--》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術論文-天天文庫。

1、SQLServer使用索引實現(xiàn)數(shù)據(jù)訪問優(yōu)化>>  一、簡介  自從你和你的團隊成功的開發(fā)和部署了一個INTER網(wǎng)站,已經(jīng)過去數(shù)月了,這個網(wǎng)站在很短的時間內(nèi)吸引了數(shù)千用戶前來注冊和使用,因此你有了一個非常滿意的客戶。包括你和你的團隊、管理層、客戶,每個人都非常高興?! ∩畈⒉豢偸且环L順的。當站點的用戶開始日均高速增長的時候,問題隨即出現(xiàn)了,客戶發(fā)來郵件開始抱怨網(wǎng)站性能太慢,同時稱網(wǎng)站正在丟失客戶?! ∧汩_始調(diào)查這個系統(tǒng),很快你發(fā)現(xiàn)當系統(tǒng)訪問或更新數(shù)據(jù)的時候,速度非常慢。打開數(shù)據(jù)庫一看,數(shù)據(jù)庫的記錄增加的很快,有些表的記錄達到了成千上萬行,測試團隊在產(chǎn)品數(shù)據(jù)庫上做了一個測試,結(jié)果

2、發(fā)現(xiàn)在測試服務器上僅2/3秒就能完成的一個處理過程,現(xiàn)在需要5分鐘。  這個古老的故事發(fā)生在全球范圍內(nèi)的數(shù)以千計的系統(tǒng)身上。包括我在內(nèi),幾乎每個開發(fā)人員在他或她的開發(fā)過程中會碰到同樣的事情。我知道為什么這樣的情形會發(fā)生,同時我也知道如何去克服它?! 《?、閱讀范圍  請注意本一系列文章討論的主要的焦點是事務性的SQLServer數(shù)據(jù)庫數(shù)據(jù)訪問性能優(yōu)化,但大部分優(yōu)化技術同樣適用于其他的數(shù)據(jù)庫?! ∥覍⒁懻摰膬?yōu)化技術僅僅適用于軟件開發(fā)人員。作為一個開發(fā)者,你需要跟隨我關注的問題,確認你已經(jīng)作了所有能做的事情,去優(yōu)化你已經(jīng)寫的或?qū)⒁獙懙臄?shù)據(jù)訪問代碼。數(shù)據(jù)庫管理人員(DBA)同樣在優(yōu)化和

3、提高性能上扮演了很重要的角色,但是DBA領域的優(yōu)化將不屬于這篇文章討論的范圍?! ∪?、開始優(yōu)化一個數(shù)據(jù)庫  當基于數(shù)據(jù)庫的應用系統(tǒng)放慢的時候,99%的可能是系統(tǒng)的數(shù)據(jù)訪問過程沒有優(yōu)化,或者沒有使用最好的方式。所以你需要回顧和優(yōu)化你的數(shù)據(jù)訪問/操作過程,提高系統(tǒng)的全局性能。接下來我們通過一步一步的方式開始我們的優(yōu)化任務。  第一步:在列上采用正確的索引  有些人可能爭論實施正確的索引是否是數(shù)據(jù)庫優(yōu)化過程的第一步。但是我認為在數(shù)據(jù)庫應用正確的索引是第一位的。原因有2點:  1.在一個產(chǎn)品系統(tǒng)里,它將使你在很快的時間內(nèi)提高盡可能大的性能?! ?.創(chuàng)建數(shù)據(jù)庫索引不需要你做任何的系統(tǒng)修改,

4、因此不需要任何重新編譯和部署  如果你發(fā)現(xiàn)有當前的數(shù)據(jù)庫沒有很好的處理索引,你建了索引,結(jié)果就是性能的快速提升。然而,如果索引已經(jīng)處理了,我們進入下面的步驟。  什么是索引  我相信你已經(jīng)明白了什么是索引,但是,我仍舊看到很多人對索引不太清楚。讓我們再一次弄明白什么是索引,請看下面的小故事?! 『芫靡郧?,在一個古城市里有一個很大的圖書館,里面有數(shù)以千計的圖書,圖書凌亂的存放在書架上。因此,一旦有讀者向圖書員索要一本圖書,圖書員除了一本一本的檢查圖書,看是否匹配讀者索要的圖書,其它沒有更好的辦法。發(fā)現(xiàn)一本渴望的圖書往往需要花費圖書員數(shù)個小時。同時讀者也不得不等很長的時間?! 這看

5、起來象一個沒有主鍵的表,當在表里進行搜索數(shù)據(jù)的時候,數(shù)據(jù)庫引擎需要遍歷全部的數(shù)據(jù)來查找相關的記錄,所以運行起來非常慢。]  當讀者和圖書每天都在大量增加的時候,圖書員的工作越來越繁重。有一天,有一個智者來到圖書館,看到圖書員的繁重的工作,建議他給每一本書編號,同時按順序碼放在書架上。我可以從中得得什么好處?圖書員問,那個智者回答到:如果有讀者通過給你一個書號來索要圖書,你很快就能發(fā)現(xiàn)在哪個書架上存放了包含該書號的圖書,然后在這個書架上,你同樣能很快的找到需要的圖書  [給書編號就象在數(shù)據(jù)表里創(chuàng)建一個主鍵,當你在一個表里創(chuàng)建了一個主健后,系統(tǒng)就創(chuàng)建了一個聚集索引樹,所有的包含記錄的

6、數(shù)據(jù)頁按照主鍵的值在文件系統(tǒng)中進行排序.每一個數(shù)據(jù)頁內(nèi)部也同樣按照主鍵的值進行排序.所以,當你向數(shù)據(jù)庫請求任何一個數(shù)據(jù)行的時候,首先數(shù)據(jù)庫服務器使用聚焦索引找到合適的頁(象首先發(fā)現(xiàn)書架一樣),接著在頁里查找包含主鍵值的記錄(象在書架發(fā)現(xiàn)一本書)]  這正是我所需要的,興奮的圖書員開始給書編號,接著把它們排列在不同的書架上,他花費了一天的時間來排序.在那天快結(jié)束的時候,他做了測試,結(jié)果發(fā)現(xiàn)幾乎不用花費時間就能找到一本書.圖書員高興極了.  [這正是你創(chuàng)建了主鍵后所發(fā)生的事情.首先,創(chuàng)建了聚焦索引,接著數(shù)據(jù)頁在物理文件里按照主鍵的值被排序.有一點我想你應該很容易理解,因為數(shù)據(jù)僅僅只能

7、使用一列的值作為憑證來排序,所以一個表只能創(chuàng)建一個聚焦索引.就象圖書只能使用一個標準即書號來排序一樣.]  等一等,問題還沒有被完全解決,在接下來的時間里,有個讀者沒有圖書的編號,只有圖書的名字,他想通過書名索要圖書,如何辦呢?可憐的圖書員只能按照從1到N來查遍所有已經(jīng)編號的圖書.如果圖書存放在67號書架上,他可能需要20分鐘,相比早間圖書沒有被排序的時候,他所花費的2-3個小時.這確實有一個進步.但是和花費30秒通過書號查找一本書比較起來,,20分鐘仍舊是一個不短的時間.還有沒

當前文檔最多預覽五頁,下載文檔查看全文

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

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