- ベストアンサー
tempdb の適切なサイズ
SQL Server 2008を使用したシステムがあるのですが、複数の端末からアクセスする為、処理が遅くなったりして困っています。 そこで、高速化を図る為、色々と調べていたら、tempdbファイルのサイズを増やす、及びtempdbファイルをCPUのコア数分に増やすと良いというのを見付けました。 が、tempdbの適切なサイズを調べる方法が、いまいちよく分かりません。 どなたか、分かり易く助言して頂けると助かります。 OS:Windows 2008 Server DB:SQL Server 2008 Workgroup よければ、SQL Server 2008 Expressの場合も 以上、よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
http://engineer-memo.com/blogs/engineer-memo/archive/2009/11/07/tempdb.aspx にもありますが、tempdbは初期サイズから必要に応じて拡張され、再起動時に初期設定値に再度初期化されます。 起動されている最中には縮小されませんから、処理量のピーク時にデータファイルのサイズを確認して、初期サイズを再設定することが考えられます。 ただし、本当にtempdbの拡張がパフォーマンスのボトルネックになっているかは別問題です。tempdbへのアクセスそのものがボトルネックになっているならtempdbをデータベースファイルと違うストレージに分散配置するなどして競合を減らすなども考えられます。 そもそも、データベースファイルやログファイルの配置やSQLの記述が問題になっている可能性もあります。 バージョンは古くなりますが「インサイドMicrosoft SQL Server 2005 クエリチューニング&最適化編」などの書籍も参考にしてみてはどうでしょうか。
お礼
遅くなりましたが、回答、ありがとうございます。 たまたま納品先へ行く事がありましたので、tempdbファイルのサイズを確認したところ、200数MBでした。(2週間前にサービスの再起動をしました。) よって、初期サイズを300MBに設定しようかと思います。 >tempdbをデータベースファイルと違うストレージに分散配置するなどして競合を減らすなども考えられます。 tempdbファイルをCPUのコア数分作成するというのは、有効でしょうか? 以上、よろしくお願い致します。