今天我想進一步談下SQL Server里的計劃緩存和它的副作用。我們都知道,每個提交到SQL Server的邏輯查詢,會編譯為物理執(zhí)行計劃。這個執(zhí)行計劃然后會緩存為所謂的計劃緩存,用于后期重用?,F(xiàn)在我們首先來談下即席SQL語句和它的負作用,還有它們帶來的性能問題。

即席SQL語句(Adhoc SQL Statements)

每次當你提交一個即席SQL語句到SQL Server,對于每個特定查詢,都會生成一個執(zhí)行計劃?!疤囟ú樵儭笔鞘裁匆馑??答案很簡單:SQL Server對每個完整的SQL語句(包括你的參數(shù)值)生成一個哈希值,并使用這個哈希值作為計劃緩存的查找值。如果使用這個哈希值找到一個執(zhí)行計劃,計劃就會重用,否則在計劃緩存里會編譯一個新的執(zhí)行計劃。假設(shè)你提交下列3個查詢到SQL Server:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項目經(jīng)理培訓(xùn)

SELECT * FROM Sales.SalesOrderHeaderWHERE CustomerID = 11000GOSELECT * FROM Sales.SalesOrderHeaderWHERE CustomerID = 30052GOSELECT * FROM Sales.SalesOrderHeaderWHERE CustomerID = 11223GO

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項目經(jīng)理培訓(xùn)

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓(xùn),做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學習是年輕人改變自己的最好方式