プロが教えるわが家の防犯対策術!

SQL Server 2008を使用したシステムがあるのですが、複数の端末からアクセスする為、処理が遅くなったりして困っています。

そこで、高速化を図る為、色々と調べていたら、tempdbファイルのサイズを増やす、及びtempdbファイルをCPUのコア数分に増やすと良いというのを見付けました。

が、tempdbの適切なサイズを調べる方法が、いまいちよく分かりません。
どなたか、分かり易く助言して頂けると助かります。

OS:Windows 2008 Server
DB:SQL Server 2008 Workgroup
   よければ、SQL Server 2008 Expressの場合も

以上、よろしくお願い致します。

A 回答 (1件)

http://engineer-memo.com/blogs/engineer-memo/arc …
にもありますが、tempdbは初期サイズから必要に応じて拡張され、再起動時に初期設定値に再度初期化されます。
起動されている最中には縮小されませんから、処理量のピーク時にデータファイルのサイズを確認して、初期サイズを再設定することが考えられます。

ただし、本当にtempdbの拡張がパフォーマンスのボトルネックになっているかは別問題です。tempdbへのアクセスそのものがボトルネックになっているならtempdbをデータベースファイルと違うストレージに分散配置するなどして競合を減らすなども考えられます。
そもそも、データベースファイルやログファイルの配置やSQLの記述が問題になっている可能性もあります。

バージョンは古くなりますが「インサイドMicrosoft SQL Server 2005 クエリチューニング&最適化編」などの書籍も参考にしてみてはどうでしょうか。
    • good
    • 1
この回答へのお礼

遅くなりましたが、回答、ありがとうございます。

たまたま納品先へ行く事がありましたので、tempdbファイルのサイズを確認したところ、200数MBでした。(2週間前にサービスの再起動をしました。)
よって、初期サイズを300MBに設定しようかと思います。

>tempdbをデータベースファイルと違うストレージに分散配置するなどして競合を減らすなども考えられます。
tempdbファイルをCPUのコア数分作成するというのは、有効でしょうか?

以上、よろしくお願い致します。

お礼日時:2012/03/30 09:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す