參數(shù)化和即席查詢,都是一個(gè)二難的選擇。
一旦選擇參數(shù)化 就有可能帶來 一種情況就是 執(zhí)行計(jì)劃反復(fù)被利用。
不會(huì)通過收集現(xiàn)有的統(tǒng)計(jì)信息,出一個(gè)比較優(yōu)異的執(zhí)行計(jì)劃。
即席查詢也就是 ad hoc query,每次都需要重編譯,花費(fèi)比較大。
這個(gè)是一個(gè)2難,需要平衡。對(duì)于這個(gè)問題 sql server 有 簡單參數(shù)化,強(qiáng)制參數(shù)化和2008 才有的optimize for ad hoc workloads。
optimize for ad hoc workloads 的原理大概如此:
當(dāng)你第一次執(zhí)行 ad hoc 查詢的時(shí)候,被編譯出來的執(zhí)行計(jì)劃,sql server 存?zhèn)€一部分。
為什么不全存呢,如果全存,adhoc 查詢很頻繁,那么不就給 內(nèi)存帶來壓力了。?
當(dāng)你第二次查詢的時(shí)候,就保存這個(gè)執(zhí)行計(jì)劃。
當(dāng)你第三次運(yùn)行的時(shí)候,就可以直接從cache 內(nèi)讀取出來執(zhí)行計(jì)劃。
EXEC sp_configure ' show advanced options ' , 1
RECONFIGURE
EXEC sp_configure ' optimize for ad hoc workloads ' , 1
RECONFIGURE
對(duì)sql server 運(yùn)行還是又好處的,沒事兒就開著吧
SQL Server 2008 性能調(diào)優(yōu) optimize for ad hoc workloads
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
