0

次のようなストアドプロシージャに動的SQLがあります

@sql = 'SELECT a, 
       b, 
       c d 
FROM   table t 
       LEFT JOIN table2 t2 
              ON t.id = t2.id '

次に、テーブル変数に挿入します

Insert into @tblCustomer

EXECUTE sp_executesql @sql

挿入ステートメントの実行に時間がかかっています。改善できる方法はありますか?

SQL Server 2008 を使用しています

ありがとう

4

3 に答える 3

0

多くのことはできませんが(単純なSQLクエリ)。

代わりに一時テーブルを使用してみてください

CREATE TABLE #TempTable(
 ID int,
 col2 <datatype>,
 col3 <datatype>)

そしてそこに挿入

それがより速く動作するかどうかを確認してください。詳細はこちら

データベースのインデックスを作成してみてください。目に見えるパフォーマンスの向上が得られるはずです。

于 2013-03-28T18:21:07.483 に答える
0

次のクエリを試してください。

@sql = SELECT a, b, c, d 
FROM table t (NOLOCK) LEFT JOIN table2 t2 (NOLOCK) ON t.id = t2.id
于 2013-03-28T20:31:03.990 に答える
-2

最適化することは不可能のようです。クエリは簡単です。一時テーブルを使用すると、メモリの使用によりプロセスがさらに遅くなる可能性があります。

于 2013-03-28T18:23:21.670 に答える