2013-10-02 44 views
0

我有8個tsql存儲過程,每次我在我的vb.net程序中加載一個表單。查詢查看哪個windowsuser發送查詢並根據結果給出結果。 的程序結構始終除了最後一條語句相同:加速查詢是否有許多SP基於相同的表

Create Procedure dbo.Name @one decimal(18,2) Output as 
... 
Create Table #Temp1 
Insert Into 
... 
Create Table #Temp2 
Insert Into 
... 
Select ... 

最後一個SELECT語句中的所有八個SP的變化,並藉助TEMP1和TEMP2信息,並將查詢取決於誰在登錄的用戶。一切正常,但由於load_event觸發了每八個查詢,所以速度非常緩慢。加快速度的最佳方法是什麼?

+1

發佈整個程序 –

+0

嗨!我的SP長180行,這就是爲什麼我只用這裏的結構。 – ruedi

+0

我們需要繼續努力。 8個查詢實際上並沒有那麼糟糕......幾乎可以肯定的是,您使用臨時表會導致真正的問題,但除非我們能看到一些代碼,否則我們無法幫到您。 –

回答

0

如果你總是一起使用所有八個過程,然後將它們合併成一個,並且只創建一次臨時表。

如果您需要提高速度,還可以對臨時表進行索引。

0

由於這是性能問題,對於SQL Server 2000及更高版本,您可以嘗試使用表變量(前綴爲@)而不是臨時表。