今回やることを説明してみる
少しでも高速化するために、SET NOCOUNT ON を使用します。
使用する環境を説明してみる
Microsoft Azure 上の SQL Server 2014 を使用します。
早速試してみる
以下のクエリを実行してみましょう。
select * from [Production].[WorkOrder]
上図の下の画像で書きのように出力されています。
(72591 row(s) affected)
これは SQL Server がクエリ実行時に何件ヒットしたか、更新したかなどをクライアント側へ通知しています。これもネットワークのオーバーヘッドとなってしまうので、無効化したほうがいいものです。無効化するには、下記のようにクエリを書きなおします。
SET NOCOUNT ON select * from [Production].[WorkOrder] SET NOCOUNT OFF
クエリを実行してみましょう。
先ほどのクエリのように、
(72591 row(s) affected)
ではなく、
Command(s) completed successfully.
と表示されています。これで、件数を返すためのオーバーヘッドを取り除くことができました。
おわりになにか言ってみる
チューニングは地道に続けましょう。
SQL Server Tuning Scripts: Performance Optimization Secrets
- 作者: Robin Schumacher
- 出版社/メーカー: Rampant Techpress
- 発売日: 2014/05/27
- メディア: ペーパーバック
- この商品を含むブログを見る