0

SQL サーバーのパフォーマンス チューニングに関する質問があります。

毎月実行する必要があるプログラムがあり、完了するまでに 24 時間以上かかります。実行時間を 12 時間以下に短縮できることを期待して、このプログラムを調整する必要があります。

このプログラムは当社で開発したものではないため、プログラムの内容を確認して修正することはできません。私にできることは、SQL サーバー プロファイラーとアクティビティ モニターを開いて、SQL コンテンツをトレースおよび分析することだけです。未使用のトリガーを無効にしてハウスキーピングを行いましたが、実行時間は 1 時間しか短縮されませんでした。

ネットワーク I/O とバッファ I/O が高くなっていることがわかりましたが、原因と意味がわかりません。

ここに画像の説明を入力

これら 2 つの問題 (ネットワーク I/O とバター I/O) の原因を誰か教えてもらえますか? このプログラムを最適化するための提案はありますか?

ありがとうございました!

4

2 に答える 2

0

私には、あなたのアプリケーションが大量のデータをアプリケーションに読み込むように思えます。それでも、私は次のことをチェックします。

  • ブロッキングはありますか?プロセスが他の何かが完了するのを待っているだけの場合、これは簡単に膨大な時間の無駄になります。統計に基づくとそのようには見えませんが、確認することは重要です。

  • テーブルは適切に索引付けされていますか? 検索基準/結合に一致する適切なインデックス。膨大なキー ルックアップがある場合は、インデックスをカバーすることで大きな違いが生じる可能性があります。インデックスや不要なインデックスが多すぎると、更新が遅くなる可能性があります。

    プラン キャッシュを調べて、I/O または CPU の使用率が最も高いステートメントを確認する必要があります。

  • クエリ プランは、最もコストのかかる操作に対して適切ですか? 古い統計やその他の最適化の問題がある可能性があります。

  • アプリケーションがデータベースとの間で大量のデータを転送する場合、ネットワークの遅延と帯域幅は十分ですか?それとも速度低下の原因になっている可能性がありますか? アプリケーションが実行されているサーバーがボトルネックになっていませんか?

これらが役に立たない場合は、おそらく詳細な情報を含む新しい質問を投稿する必要があります。

于 2016-02-19T18:32:39.227 に答える