自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL SERVER視圖對查詢效率的提高

數(shù)據(jù)庫 SQL Server
SQL SERVER視圖對于數(shù)據(jù)庫的查詢效率也能夠有提高的作用,下文對SQL SERVER視圖和數(shù)據(jù)庫查詢效率的聯(lián)系作了分析討論,供您參考。

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

有兩張數(shù)據(jù)表:A和B,其中A的記錄為2萬條左右,而B中的數(shù)據(jù)為200萬條以上,現(xiàn)在要求以a.id=b.id為關(guān)聯(lián)進行數(shù)據(jù)篩選。

為此要求,我做了個SQL SERVER視圖View1,將a.id與b.id關(guān)聯(lián)起來,運行該視圖的查詢,使用了2秒中就得到結(jié)果了。

這時又有一特殊需求:編寫存儲過程,該存儲過程中有一個游標的循環(huán),該循環(huán)重復(fù)1萬次,在每次循環(huán)中都使用了對View1的查詢。

舉例如下:

循環(huán)游標體(重復(fù)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)游標體(重復(fù)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ī)則的應(yīng)用

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-07-15 15:42:38

2010-07-07 13:18:13

SQL Server視

2010-11-11 16:59:59

SQL Server視

2010-07-08 17:28:02

2010-05-26 08:47:00

索引SQL Server

2011-04-02 13:37:05

SQL Server 索引視圖

2010-06-30 13:49:02

SQL Server數(shù)

2010-11-12 11:19:19

SQL Server視

2010-09-27 09:54:26

Sql Server視

2010-10-21 10:42:30

SQL Server查

2010-07-07 10:02:46

SQL Server數(shù)

2011-03-21 15:51:27

SQL執(zhí)行效率

2010-10-21 10:56:29

SQL Server查

2010-10-21 11:10:57

SQL Server查

2010-09-25 16:47:51

SQL查詢

2011-04-02 17:21:29

sql server視圖

2010-09-13 11:09:34

SQL SERVER分

2010-11-11 17:20:51

SQL Server創(chuàng)

2010-11-15 16:46:49

Oracle查詢效率

2010-07-14 10:11:30

SQL Server系
點贊
收藏

51CTO技術(shù)棧公眾號