SQL Server 2008 R2 Standard Editionには30 GBのデータベースがあります。昨日、データベースをバックアップし、以前のマシンとまったく同じ仕様の別の仮想マシンにデータベースを復元しました-新しいVMである唯一の例外は、より多くのRAMを持っていることです。
しかし、以前のVMのパフォーマンスは、この新しいVMよりもはるかに優れていることがわかりました。私の質問は次のとおりです。
このような復元後に、データベース内のすべてのインデックスを再作成/更新する必要がありますか?もしそうなら、(一度に1つのインデックスとは対照的に)すべてのインデックスを簡単に更新する良い方法があります。
他に欠けている明白なステップはありますか-データベースのフロントで行う作業はそれほど多くないため、社内にDBAがいません。
このような復元後に、データベース内のすべてのインデックスを再作成/更新する必要がありますか?もしそうなら、(一度に1つのインデックスとは対照的に)すべてのインデックスを簡単に更新する良い方法があります。
別のサーバーへのデータベースの更新後に、reorg/rebuildを実行して統計を更新することは常に良い考えです。 これは、データベースを別のサーバーに復元するときに行う復元後の手順の1つです
SQL Serverインデックスと統計情報のメンテナンス-Ola Hallengrenから を楽しく使うことができます。
他に欠けている明白なステップはありますか-データベースのフロントで行う作業はそれほど多くないため、社内にDBAがいません。
この回答で説明されている詳細な復元後の手順 があります。それはあなたを助けるでしょう。 アップグレード用ですが、復元後の手順は同じです。
新しいVM=
only例外がさらに多くの場合RAM新しいサーバー上で、トレースフラグを有効にしてくださいT2335
。 Paul Whiteは、[〜#〜] more [〜#〜]Memory でそれが起こる理由の詳細を説明しています。 マイクロソフトが私たちのケースでも推奨しているもの を共有しました。
サーバーハードウェアの仕様以外のパフォーマンスに影響を与える可能性のあるSQL Server設定はたくさんあります。インデックスと統計情報はデータベースの復元の一部として復元されるため、昨日復元したばかりの事実から、それは問題ではないと考えられます(現時点では問題ですが、対処しないと将来的に問題になる可能性があります)。インデックスを再構築できるメンテナンスジョブがあり、古いサーバーをチェックして、新しいサーバーに移動する必要のあるセットアップされたメンテナンスジョブがあったことを確認します。を使用して2つのサーバー間でSQL Serverの構成を比較する
EXEC sp_configure 'Show Advanced Options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure;
注:最後のsp_configureステートメントは構成出力を表示するだけで、実際にはサーバー構成設定を変更しません。
RAIDタイプやディスク速度など、2台のサーバー間のディスク設定も確認してください。データベースとログファイルがOSドライブとは別のディスクにあることを確認してください。 2つのサーバー間のtempdb設定も確認してください。データベースの断片化につながる可能性があるため、回答の1つでデータベースを縮小することはお勧めできません。新しいサーバーにはあるが古いサーバーにはない監査ソフトウェアまたはアンチウイルスがある場合、これは問題を引き起こす可能性があります。新しいサーバーに最新のOSパッチが適用されていることを確認し、2つのサーバー間のSQL Serverサービスパックレベルを比較します。
重要なアプリにデータベースを使用するかどうか、これを実行できるメンテナンスウィンドウがあるかどうか(データベースのサイズを考慮して)か、重要なテーブルのインデックスをいくつか再作成するかによって異なります。それはあなたのデータの性質とその使用に依存します。
上記の提案に加えて、tempdb構成も複製しましたか?以前のサーバーには複数のtempdbが構成されていた可能性がありますが、新しいサーバーには1つしかありません。それらを設定する必要がある場合は、見てください here :
私はあなたがパラノイドオプションで統計を更新することを確認します。
USE db_name;
GO
EXEC sp_MSforeachtable @command1='UPDATE STATISTICS ? WITH FULLSCAN';
それ以外は間違いなく戻って違いを確認し、仮想化担当者と話し合ってください