1

データベースのバックアップを SQL Server 2000 から SQL Server 2005 に移動しています。

それらが実行されているハードウェアは同等です。

それを踏まえると、ストアド プロシージャは、SSQL2005 で実行している間、少なくとも同じくらい高速に (高速ではないにしても) 実行するべきではないでしょうか? データはまったく同じです。ただし、実行速度は 5 倍遅くなります。

データベースを再インデックスし、SSQL2005 に復元した後、統計をリセットしました。

口あんぐり.....

参考までに、ダンプ ファイルを作成するときに、チェックサムと検証が行われていることを確認しました。

2 つの別々のバックアップを作成し、これを 2 つのバックアップで実行したところ、同じ結果が得られました。

4

3 に答える 3

2

データベースの互換性レベルを更新してください。

ALTER DATABASE dbname SET COMPATIBILITY_LEVEL = 90;

また、インデックスの統計を更新(または再構築)してください。

そしてもちろん、SQL Server 2005にすべてのパッチが適用されていることを確認する必要があります。ServicePack4最新の累積的な更新プログラムをインストールしましたか?

于 2012-05-01T19:44:46.520 に答える
1

SQL Server 2000と2005の間には多くの違いがあります。したがって、これは確かに不可能ではありません。

データとインデックスがすべて同じであると仮定して、最初に代表的なプロシージャの実行プランを確認します。それらが異なる場合は、そこで調査する必要があるものがあり、パラメータスニッフィングの問題が含まれる可能性があります。

それがすべてうまくいったら、次にファイルの場所を調べて、データファイルとログファイルがドライブや基盤となるRAIDなどの点で異なって設定されているかどうかを確認する必要があります。次にパフォーマンスカウンターなどに進みます。

更新:利用可能なスイッチなどについては、Tスイッチ4199、http://msdn.microsoft.com/en-us/library/ms188396.aspxを試してください。また、最新の累積的な更新パックがインストールされていることを確認してください。

于 2012-05-01T19:42:59.267 に答える
1

実際、Microsoft SQL Serverレベル3サポートでの私の時間から、いくつかの問題があります。そのうちの1つは、2005年に2000データベースの実行を非常に遅くします。これはクエリオプティマイザIIRC(3年前)の問題です。無視するテーブルスキャンを設定するコスト。したがって、小さなテーブルスキャンを低コストと見なすと、コストが高くなり(多くのオーバーヘッドが発生する)、その周りをループします。2005年に「終わらない」という質問をした事件を覚えています。

古い動作を強制するためのスタートアップ用のスイッチがありますが、私はそれを覚えていません。今それを見つけようとしています。

于 2012-05-01T19:46:07.517 に答える