0

vb.net プログラムでフォームをロードするたびに呼び出される 8 つの tsql ストアド プロシージャがあります。クエリは、どの windowsuser がクエリを送信したかを調べ、それに応じて結果を返します。プロシージャの構造は、最後のステートメントを除いて常に同じです。

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

最後の Select ステートメントは 8 つの SP すべてで変更され、Temp1 と Temp2 の情報を使用して、ログインしているユーザーに応じてクエリを送信します。それをスピードアップするための最良の方法は何ですか?

4

2 に答える 2

0

@これはパフォーマンスの問題であるため、SQL Server 2000 以降では、一時テーブルの代わりにテーブル変数 (接頭辞が ) を使用してみることができます。

于 2013-10-02T14:51:59.483 に答える
0

常に 8 つの proc をすべて一緒に使用している場合は、それらを 1 つに結合し、一時テーブルを 1 回だけ作成します。

速度を向上させる必要がある場合は、一時テーブルにインデックスを付けることもできます。

于 2013-10-02T14:26:31.270 に答える