原創(chuàng)|使用教程|編輯:龔雪|2014-01-20 09:26:38.000|閱讀 214 次
概述:Linq to SQL Profiler是由以色列著名公司Hibernating Rhinos開發(fā)出來的數(shù)據(jù)庫工具。并且該軟件是由 OR/M 社區(qū)的高層領(lǐng)導(dǎo)人親自開發(fā)設(shè)計(jì),能夠精準(zhǔn)的幫助優(yōu)化App的冗余的代碼。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
常見注意事項(xiàng):不同的參數(shù)大小會(huì)導(dǎo)致查詢計(jì)劃緩存的使用效率低下
當(dāng)Linq to SQL Profiler分析器檢查到相同的語句使用了不同大小的相同參數(shù)后會(huì)導(dǎo)致什么問題?現(xiàn)在我們來假設(shè)一種查詢情況:根據(jù)名字來找到用戶(下面我們會(huì)用到一種語法來顯示出參數(shù)的大小以達(dá)到演示的目的)。我們可以使用如下的查詢方式:
exec sp_executesql N'SELECT * FROM Users WHERE Username = @username', N'@username nvarchar(3)', @username=N'bob' exec sp_executesql N'SELECT * FROM Users WHERE Username = @username', N'@username nvarchar(4)', @username=N'john'
由于不同大小的參數(shù),這串代碼會(huì)導(dǎo)致讓數(shù)據(jù)庫查詢緩存里出現(xiàn)兩種查詢計(jì)劃。實(shí)際上,如果我們假設(shè)用戶名的長度是16位字符,那么這次查詢就會(huì)在查詢緩存里占用16位。
更糟糕的是,如果還會(huì)出現(xiàn)參數(shù)大小發(fā)生改變的情況,例如用戶名的長度和密碼長度都為最長時(shí)(16位字符),就有可能占用查詢緩存里的256位。因此很明顯的是,如果使用的參數(shù)越多,或是參數(shù)的長度越長,那么占用查詢緩存的資源就會(huì)急速增加。而如果當(dāng)多個(gè)查詢同時(shí)發(fā)生時(shí),對于系統(tǒng)內(nèi)存的消耗將是難以接受的,這很可能會(huì)導(dǎo)致性能出錯(cuò)。
在Linq to SQL 4.0,這個(gè)問題已被解決,方式是通過調(diào)用GetCommand來手動(dòng)設(shè)置參數(shù)的長度,然后通過使用轉(zhuǎn)換的功能來獲得查詢結(jié)果。
>>歡迎點(diǎn)此免費(fèi)下載和試用Linq to SQL Profiler
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn