2010-12-23 5 views
0

Sql Server 2005には非常に大きなデータベースを持つクライアントがあります.dbに割り当てられる合計領域は15Gbで、データベースには約5Gb、トランザクションログには10Gbです。ちょうど最近、そのデータベースに接続しているWebアプリケーションがタイムアウトしています。大きなトランザクションログによりCPUが増加する可能性があります

私はウェブページ上のアクションを追跡し、これらのウェブ操作が実行されている間に実行されるクエリを調べました。実行計画には何の不都合もありません。

クエリ自体が複数の結合を使用しましたが、非常に迅速に完了します。しかし、dbサーバーのCPUは数秒間100%に上昇します。この問題は、複数の同時ユーザーがシステム上で作業しているときに発生します。このタイムアウトの下で発生します。

大きなトランザクションログがCPUパフォーマンスに問題を引き起こす可能性がありますか?現在、ディスクには約12Gbの空き容量があります。構成は私の手元から少し外れていますが、dbとログは両方とも同じ物理ディスクにあります。

は、私は、ログファイルが巨大であるとに出席し必要があると認めるが、私はちょうど(相関を見つけようとしてすなわち)アップとして、これがCPUスパイクを引き起こす可能性かどうかに頭を探しています。タイムアウトは最近のもので、このアプリケーションは数年(すなわち、最近の症状)に反応しています。

多くのおかげで、

答えて

1

:キンバリーメーカーTrippはGB単位で測定されたトランザクションログ用に500MBの自動拡張の上向き示唆データの不足を正確に述べるのは難しいですが、スパイクはトランザクションログのチェックポイントでよく観察されます。

チェックポイントは、トランザクションログに追加および格納されたデータを実際のデータファイルに順番に適用する手順です。

I/Oの多くは、CPUの操作を含み、これはアクティビティスパイクの原因である可能性があります。

通常、トランザクションログがいっぱいの場合、またはSQL Serverが回復手順(ログの再適用)が1分より長くかかると判断した場合、チェックポイントが発生します。

1

トランザクションログサイズには、が最も重要です。 DBが正しくバックアップされているか、そしてどのくらいの頻度でバックアップされていますか。これらの問題に対処し、CPUスパイクが消えるかどうかを確認します。 チェックポイントは、トランザクションログが巨大であれば、それはそれはそれに影響を与える可能性が理にかなっている、あなたのトランザクションログを読み込み、DBファイルに変更を適用する処理ですか?

0

サイズが問題の原因ではなかったというログを持っている場合、私は驚かないだろうが、それは同様かもしれない他のものがあります。統計は最近更新されましたか?自動化されたジョブが実行されているときにスパイクが発生していますか、スパイクを持っているときに明確な時間パターンがありますか?スパイクが発生し始めた時点でサーバー上に新しいバージョンのものをロードしましたか?いずれにしても

、トランザクションログを修正する必要があります。それが大きすぎる理由は、バックアップされていない(または頻繁にバックアップされていない)ためです。データベースをバックアップするだけでは不十分です。また、ログをバックアップする必要があります。私たちは15分ごとにバックアップを取っていますが、私たちは非常にトランザクションシステムであり、データを失う余裕はありません。

関連する問題