2009-02-25 8 views
1

私は大規模なデータベースに問題があります。これは、単一のドライブ上に存在する作業に使用されています。このデータベースには、約1GBの2つの主要なものがあります。私の問題は、データベースを使用するWebサイトがアイドル状態であっても、データベースドライブのディスクキューは約96%〜100%です。どのような最適化を行うことができますか、または問題の原因は何ですか?ディスク上のDBは合計で16GBであり、トランザクションデータ、顧客情報、在庫情報のほとんどすべてのデータが必要です。
ウェブサイトのトラフィックに関係なくディスクキューが常に高い理由は何ですか?
このサイズのデータ​​ベースのパフォーマンスを向上させるためには、何ができますか?データベースディスクキューが高すぎます。何ができるのですか?

ご意見をお寄せください。

データベースは、Windows Server 2003上で動作し、16GBのサイズ(データファイルのディスクサイズ)で動作するMS SQL 2000データベースです。

ありがとうございました

答えて

1

どのくらいのメモリがマシンにありますか?ページをメモリに保存できない場合、SQL Serverは情報を取得するためにディスクに移動する必要があります。メモリが不足している場合は、アップグレードを検討することをお勧めします。

データベースが非常に大きいので、2つの物理ドライブを別々に追加し、トランザクションログを1つのドライブに入れ、他のテーブルのいくつかを別のドライブに分割することを検討することをお勧めします。テーブル間の最適な分割は何ですか)。

このようにすると、IOアクセスをシリアルではなく並列で実行できるようになります。これにより、DBからのパフォーマンスがさらに向上します。

+0

DBにあった古いデータを使ってディスクキューを減らす方法をいくつか調べてみましょう。パフォーマンスオーバーヘッドがそれを上回っていない場合は、他のドライブのテーブルも面白く聞こえます。ありがとう! – RoguePlanetoid

1

さらに多くのディスクを購入したり物事を変えたりする前に、統計を更新してクエリを確認することもできます。テーブルスキャンなどをたくさん行うと、ハードウェアに不必要な作業が発生します。

あなたのデータベースは結局大きなものではありません。私は最初にクエリをチューニングします。どのような種類のクエリーがデータベースにヒットしているのかプロファイリングしましたか?

1

あなたのサイトがアイドル状態の間にディスクのアクティビティが高い場合は、実行中の他のプロセスが影響を受ける可能性があるプロセスを探します。たとえば、スケジュールされたバックアップが実行されていないことを確認しますか?特に大きなデータベースの場合、これらは長時間実行される可能性があります。

Mike Wが指摘しているように、通常、既存のハードウェアでクエリの最適化を行うことができます。遅い実行クエリを分離し、最初に最適化する方法を見つけます。私たちのアプリケーションの1つでは、文字通り2ヶ月間この作業を行い、アプリケーションのパフォーマンスとハードウェアの使用率を劇的に向上させました。

関連する問題