【SQL】【SQL Server】SQL Server のパフォーマンスをあげることを考える

全般

http://technet.microsoft.com/ja-jp/ff606481
より、初めに以下を試すといい。

[1-1] インデックスの設定

 * どのようなインデックスが必要かを自動で判定してくれるツールが、データーベースエンジンチューニングアドバイザを参考にするといい
http://blogs.msdn.com/b/crmjapan/archive/2010/04/01/crm-5.aspx
http://takumayokoo.blogspot.jp/

[1-2] 統計情報の更新

以下の記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/30439950.html

[1-3] 断片化の解消

以下の記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/30441466.html

その他の確認事項

チェックリストを確認する

http://msdn.microsoft.com/ja-jp/library/ms998577.aspx
のチェックリストを確認する

トラブルシューティング

ボトルネックとなっている箇所を調べるには

ボトルネックとなっている箇所を調べるには、調査ツールを使って調べる必要がある。
SQL Server の調査ツールについては、以下を参照のこと。
http://blogs.yahoo.co.jp/dk521123/28894142.html

ビューのインデックスが効かなかった場合:WITH (NOEXPAND)

 * 直接ビューのインデックスを有効にする必要があるには、FROM句のテーブル指定に「WITH (NOEXPAND)」の指定する

サンプル

SELECT ID, CustomerID FROM Orders WITH (NOEXPAND)

参考文献

http://note.miyabis.jp/2009/07/30570725.html
http://technet.microsoft.com/ja-jp/library/cc917715.aspx

ロックが必要ない場合:WITH(NOLOCK)

 * 業務上、DBへの更新がなく、参照のみの場合、ロック待ちを行う必要もないので、「WITH(NOLOCK)」の使用を検討する
 ~~~~
 SELECT * FROM [tableName] WITH(NOLOCK)
 ~~~~
 * ロック待ちについては、以下のサイトの図が分かりやすい。
http://technet.microsoft.com/ja-jp/sqlserver/gg639075

参考文献

http://ameblo.jp/hiro628/entry-10204147688.html


関連記事

パフォーマンスをあげることを考える ~チューニング手順~

http://blogs.yahoo.co.jp/dk521123/28478871.html

SQL Server のパフォーマンスをあげることを考える

http://blogs.yahoo.co.jp/dk521123/28530905.html