|
在這篇文章里,我將介紹怎樣編寫你的代碼來提高緩存計劃的重用。了解當有緩存計劃或重用一個已有的計劃時空格和注釋會產生怎樣的影響,這會幫助你降低你的應用程序緩存的計劃數(shù)目。
探究緩存計劃
你在利用計劃緩存嗎?你是否很好地利用緩存計劃?你的應用程序曾經使用它們了嗎,它們是否被多次利用?你有沒有在同一時間在存儲過程緩存中對同一查詢具有多個緩存計劃?這些緩存計劃使用了多少空間?這些是你需要回答的問題,以確保你在優(yōu)化過程緩存以及減少你的應用程序將創(chuàng)建的緩存計劃數(shù)目。你編寫你的T-SQL代碼時有些細微的地方需要注意,它會使得SQL Server為相同的T-SQL代碼去執(zhí)行額外的工作來編譯和緩存執(zhí)行計劃。
在SQL Server可以處理一個T-SQL批處理之前,它需要創(chuàng)建一個執(zhí)行計劃。為了使SQL Server創(chuàng)建一個執(zhí)行計劃,它必須首先消耗一些寶貴的資源,比如CPU來編譯一個T-SQL批處理。當一個計劃編譯后,它被緩存起來,因此在你的應用程序不止一次地調用相同的T-SQL語句時它可以被重用。如果你編寫你的T-SQL代碼來提高經常執(zhí)行的T-SQL語句的緩存計劃的重用,那么你就能夠改進你的代碼性能。
隨著SQL Server 2005的推出,微軟提供了一些你可以用來探究緩存計劃的DMV。通過使用這些DMV,你可以確認一些關于緩存計劃的事情,下面是你可以確認的事情的簡短列表:
• 與一個緩存計劃相關的文本
• 一個緩存計劃執(zhí)行的次數(shù)
• 緩存計劃的規(guī)模
在后面我將告訴你怎樣使用DM來探究緩存計劃信息。
由于注釋或多余空格而使得有多個計劃
我相信你們所有人都有將代碼放到存儲過程中的想法。我們?yōu)榱舜a在一個應用程序中或多個應用程序間重用而這么做。但是,不是SQL Server執(zhí)行的所有代碼都包含在存儲過程中。一些應用程序可能以順序T-SQL代碼來編寫的。如果你在編寫順序T-SQL代碼,那么你需要了解注釋你的代碼以及放置空格的方式可能會導致SQL Server為相同的T-SQL語句創(chuàng)建多個緩存計劃。
下面是一個T-SQL腳本的示例,它包含兩個不同的T-SQL語句:
1. SELECT * FROM AdventureWorks.Production.Product
2. GO
3. SELECT * FROM AdventureWorks.Production.Product -- return records
4. GO
it知識庫:利用T-SQL代碼提高緩存效率 減少內存消耗,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。