新聞中心
SQL SERVER視圖不僅可以實現(xiàn)許多我們需要的功能,而且對于SQL SERVER查詢效率的提高也有幫助,下面一起來了解一下。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、環(huán)江網(wǎng)站維護、網(wǎng)站推廣。
有兩張數(shù)據(jù)表:A和B,其中A的記錄為2萬條左右,而B中的數(shù)據(jù)為200萬條以上,現(xiàn)在要求以a.id=b.id為關聯(lián)進行數(shù)據(jù)篩選。
為此要求,我做了個SQL SERVER視圖View1,將a.id與b.id關聯(lián)起來,運行該視圖的查詢,使用了2秒中就得到結(jié)果了。
這時又有一特殊需求:編寫存儲過程,該存儲過程中有一個游標的循環(huán),該循環(huán)重復1萬次,在每次循環(huán)中都使用了對View1的查詢。
舉例如下:
循環(huán)游標體(重復1萬次)
{ select @text=text from view1 whereid=@id
--其中@text,@id均為變量update form1 set text=@text where id=@id}
執(zhí)行以上的存儲過程,發(fā)現(xiàn)竟然要花費>7分鐘的運算時間,進行分析后得知效率全損耗在對view1視圖的掃描上,盡管單獨對該視圖進行查詢只需2秒,但在這種情況下即需要太多的時間。
因此改進該存儲過程如下:
create table #tempTab( id nvarchar(20), text nvarchar(20))
查詢View1視圖,將記錄插入到#tempTab臨時表中... 循環(huán)游標體(重復1萬次)
{ select @text=text from #tempTab whereid=@id
--其中@text,@id均為變量update form1 set text=@text where id=@id}
別小瞧以上的改動,此時該存儲過程只花費50秒的時間。 對于上述現(xiàn)象,分析如下:在多次循環(huán)對某個視圖進行查詢時,將會耗費大量的時間,因此將該視圖的數(shù)據(jù)放在內(nèi)存中進行計算會在很大程度上提高速度。
【編輯推薦】
sql server表格變量的用法
SQL Server變量賦值的方法
Java調(diào)用Sql Server存儲過程
SQL Server創(chuàng)建視圖的語法
SQL Server排序規(guī)則的應用
當前名稱:SQLSERVER視圖對查詢效率的提高
文章地址:http://www.5511xx.com/article/djgccgh.html


咨詢
建站咨詢
