3

データウェアハウスをからSQL Server 2005に移行していますSQL Server 2008。テーブルの更新でパフォーマンスが大幅に低下します。インサートはうまく機能します。

両方の環境で同じSSISパッケージを使用していますが、2008はまだ正しく更新されません。

すべてのテーブルで更新統計を完全に実行しました。プロセスは一時テーブルを使用します。すべてのインデックス(更新に必要なものを除く)を削除しましたが、これらの対策はどれも役に立ちませんでした。また、SSISが実行していることを模倣する更新ステートメントを作成しました。これは、期待どおりに高速に実行されます。

processed更新プロセスはデータフロータスクを使用します(更新で使用されたデータを知るためにテーブルに挿入するなど、タスクには他のものがあります)。

これは、他に何も実行されていないまったく新しいデータベースです。助言がありますか?

キャプチャされた統計IO

  • 2005、CPU = 0、読み取り= 150
  • 2008、CPU = 1700、読み取り= 33,000

データベースRAM:

  • 2005年、合計40GB / 18 SQL Server
  • 2008、合計128GB / 110GB SQL Server
4

1 に答える 1

3

問題は実行計画で見つかりました。2008年の計画では、さまざまなテーブルを使用して更新ステートメントを作成していました。背景:これらのテーブルのクエリ中に他のアクセスを許可しないインデックス付きビューを使用するため、ユーザーが利用できるように、ディメンションではなく、iViewが使用するより小さな/よりスリムなテーブルを作成しました。オプティマイザーは、クエリで指定したテーブルではなく、これらのテーブルを選択していました。

私が最初に説明計画を行ったとき、私はこの機能を持たない間違ったクエリを使用しました。これはすべての違いを生みました。

ありがとう!

于 2013-02-12T22:02:14.347 に答える