0

MSSQL Server に 65 GB のデータがあるアプリケーションがあります。約 250 のテーブルと 1000 のストアド プロシージャと関数を使用します。

これで、アプリケーションは完全な DB 固有になり、ほとんどすべてのロジックがプロシージャと関数でコーディングされます。一部のストアド プロシージャは、実行に 4 ~ 5 分以上かかります。現在、これらの実行速度の遅いストアド プロシージャを最適化/再設計するタスクが与えられています。

プロジェクト/スキーマ/デザインに関する情報はあまりありませんが、スキーマとデータにアクセスできます。幸いなことに、最適化するモジュールだけを処理する必要がありますが、これは遅いです。(しかし、それは1000以上の行を実行する多くのSPと機能を扱います..アプリケーションロジックを含みます..)

私の質問は、そのようなプロジェクトをどのように開始するかです。修正を 2 ~ 3 日で行うという非現実的な締め切りが設定されており、すでに 1 日をセットアップに費やしています。

アプローチはどうあるべきか:

  1. ハードウェア インフラストラクチャの増加を提案します。
  2. アプリを再設計する (計算の一部をアプリ側にプッシュする) と、DB 中心でなくなりますか?
  3. これを最適化するためにさらに時間 (どれくらい) を要求しますか? 面白いことに、私たちは元のコーダーではなく、アプリについての知識がほとんどありません。つまり、SP と関数で何がコード化されているかについてです。

ありがとう

4

1 に答える 1

0

修正を試みる前に、問題の領域を知る必要があります。

最初は 1 つのモジュールを見ているだけだとおっしゃる場合は、SQL プロファイラーなどを使用して、ステートメントが実行される頻度と実行にかかった時間を判断し、このデータを開始点として使用して、ロジックを最適化できます。よりセットベースのアプローチが役立つ可能性がある、カーソルを使用する操作を探します。

3 つのオプションについては、(3) を選択する必要があると思います。なぜなら、アプリを完全に理解していないと述べているためです。あなたの努力を集中するために。(1)は長期的な解決策ではないと思いますが、明らかに何らかの利点があります(現在の仕様と提案された仕様をどれだけ決定するか)。(2) が有効なオプションであるかどうかは、最初に問題の領域を確立する機会があった場合にのみわかります。

幸運を祈ります。

于 2012-12-18T13:36:53.730 に答える