原創(chuàng)|使用教程|編輯:龔雪|2014-01-26 09:45:11.000|閱讀 236 次
概述:Linq to SQL Profiler是由以色列著名公司Hibernating Rhinos開發(fā)出來的數(shù)據(jù)庫工具。并且該軟件是由 OR/M 社區(qū)的高層領(lǐng)導(dǎo)人親自開發(fā)設(shè)計,能夠精準(zhǔn)的幫助優(yōu)化App的冗余的代碼。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
對數(shù)據(jù)庫進(jìn)行遠(yuǎn)程請求是在App里最“昂貴”的一種操作方式,越過本地機器和進(jìn)程進(jìn)行遠(yuǎn)程請求,其代價都是相當(dāng)“昂貴”的,因為這需要消耗掉系統(tǒng)的大量資源。
無論是查詢還是寫入,對數(shù)據(jù)庫都會進(jìn)行遠(yuǎn)程請求。理論上,我們是需要將遠(yuǎn)程請求的數(shù)量減少到最低。如果當(dāng)Linq to SQL Profiler檢測到某一個request對數(shù)據(jù)庫進(jìn)行了大量的請求時就會發(fā)出提示。導(dǎo)致請求過多通常有以下幾點原因:
對于第一個原因和Select N + 1有關(guān),請具體參考上一篇文章。
對數(shù)據(jù)庫進(jìn)行了循環(huán)的請求模式通常來講就是一個BUG,應(yīng)該要注意避免。我們可以對代碼進(jìn)行重建以取消對數(shù)據(jù)庫的循環(huán)請求。
最后兩個原因則需要individual basis來解決。有的時候使用另外一種不一樣的方法比如批量插入、批量拷貝,或者具體的查詢、存儲程序等一次性的從數(shù)據(jù)庫里獲得所有數(shù)據(jù)。
另外,session也會出現(xiàn)對數(shù)據(jù)庫請求多次的情況。造成這種情況的原因跟上面列舉的四點是一樣的。解決方法也大相徑庭。只是針對于最后一點:我們執(zhí)行的任務(wù)里含有大量的不同的查詢,有另一種更加簡單的辦法。那就是利用Linq to SQL Profiler自帶的一個查詢批處理功能,叫futures,它可以讓我們將幾個不同的查詢集合起來,只對數(shù)據(jù)庫進(jìn)行一次請求。這樣一來我們就能有效的減少對數(shù)據(jù)庫的請求次數(shù)從而讓App的性能有大幅度的提高。
>>歡迎免費下載和試用Linq to SQL Profiler
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn