使用被自動緩存的查詢計劃提高SQL Server查詢性能
如果想提高SQL Server查詢性能,可以有多種的方法,下面為您介紹的是使用被自動緩存的查詢計劃提高SQL Server查詢性能的方法,供您參考。
在SQL Server數據庫系統中,查詢是用SELECT語句來表示,從查詢語句執行計劃提交到輸出查詢數據結果集。要經過以下過程:解釋、解析、優化、編譯和執行。為了提高性能.SQL Server能夠保存編譯過的查詢計劃供以后使用。查詢計劃是經過優化的指令.它指定了如何處理查詢并訪問數據。查詢計劃保存在過程緩存中,這是一個臨時存儲空間,它保存當前正在執行的一個特定查詢的查詢計劃,稱為自動緩存查詢。利用自動緩存,能夠提高查詢效率,因為,在執行下面與自動查詢緩存計劃相同的查詢語句時.就可以使用該緩存中所保存的查詢計劃,避免了對查詢語句重新解釋、解析、優化、編譯過程,從而提高SQL Server查詢性能。SQL Server數據庫在執行查詢時.使用被自動緩存的查詢計劃有兩種情況:
(1)特殊的批
SQL Server降為特殊的批保存查詢計劃。如果接下的批和上一個批類似,SQLServer將使用緩存的查詢計劃。可以使用緩存的查詢計劃的前提是兩個查詢的腳本文本必須匹配。
例如:學生(學號,姓名,性別,年齡,入學日期,政治面貌,班級編號.系別)
Select from 學生where入學日期=”2O05—09一l3”
Go
Select from 學生where入學日期=”20o5—O9一l3”
Go
查詢語句l和查詢語句2具有相同的語法結構.執行時語句2可以直接使用語句l所緩存的查詢計劃.省去了對語句2的解釋、解析、優化、編譯過程,從而提高了查詢效率。因此,在編程的時候盡可能的使用與前面執行過的查詢語句具有相同的腳本,使數據和數據類型精確匹配。提高SQL Server查詢性能。
(2)自動參數化
SQL Server試圖探測實際上是參數的常量.并自動將其轉化成與字段的數據類型對應的參數。如果轉換成功,則以后類似的查詢就可以使用同一個查詢計劃。例如:
select from 學生where學號=1234
select}from 學生where 學號=5678
語句l將其參數常量l234轉化為字段”學號”的數據類型.并將其查詢計劃緩存。語句2將使用與語句l同一樣的查詢計劃,省去了對語句2的解釋、解析、優化、編譯過程。從而提高了查誨效率。因此。在編制查詢語句時盡可能的使用和前面具有相同的查詢語句和參數常量.以便使后面的查詢語句使用前面已經自動緩存的查詢計劃。提高應用程序的效率。
【編輯推薦】