現在、VMは非常に不十分であり、より優れた仕様のAzure VMに移行することを提案しています。問題は、Azure VMがより高いスペックであるにもかかわらず、元のVMよりもはるかに遅いことです。
元のサーバーは、2 GBのメモリを備えた2コアVMであり、Webサーバーでもあります。 Microsoft SQL Server Web Edition 2008 R2を実行しており、このサーバーは他の目的で使用されるため、SQL Serverの最大サーバーメモリを512MBに制限する必要がありました。
新しいサーバーは4コアVMで、7 GBのメモリを備え、データベースサーバーのみです。 Microsoft SQL Server Standard Edition 2008 R2を実行しており、SQL Serverが使用できるメモリの量を制限していません。
これは、ミラーリング環境でセットアップされた2つのサーバーの1つですが、テストを実行しているデータベースがミラーリングされていません。このサーバー上の他のデータベースは、現時点ではトラフィックを多く取得していません(実際、これらのテストを実行している間、アクティビティモニターは他のDBでアクティビティを示していません)。
Azure VMの問題は、ハードドライブがネットワークリソースであるため、スローダウンの原因になることは承知していますが、IOの統計に物理的な読み取りが0であっても、速度は遅くなります。
ディスク(ドライブごとに2つのディスク)のストライピングや、ログとデータファイルを別々のドライブに配置することなど、Azure VMの このページ に関するチューニングアドバイスに従いました。
私が行っていない唯一のことは、ページ圧縮を有効にし、データベースの自動拡張を制限し、SQLサーバーのエラーログとトレースファイルのディレクトリをデータディスクに移動することです。私は古いサーバーでもそれをしていません。
古いサーバーではこの調整は行われず、ログとデータファイルはストライプ化されていない同じドライブ上にあります。
現在のサーバーのデータベースは65 GB(45データと20ログ)であり、新しいサーバーに転送するには少し大きすぎるため、より小さなDB(6データと13.5ログ)でテストしています。
古いサーバーでの結果はCPU time = 1311 ms, elapsed time = 1057 ms.
で、新しいサーバーでの結果はCPU time = 1281 ms, elapsed time = 2525 ms.
です。これは1回の実行にすぎませんが、結果は私が通常見ているものを表しています。
新しいサーバーの経過時間は常にCPU時間よりもかなり長いようです。それは問題ですか?それを引き起こしている原因を追跡するために私ができることはありますか?
このサーバーが古いサーバーよりも高速であるように見えるのに、なぜこのサーバーの動作が遅いのかを調べるために、他にどのような手順を実行できますか?
価値があるのは、AzureのVMをタイプAからタイプDに変更してから、別のディスクを接続してTEMPDBをそのディスクに移動することでした。つまり、最後のVMは7 GBのD2標準になりましたRAMと3つのデータディスク、1つはMDFファイル、もう1つはLDFファイルと新しいTEMPDB用ですディスク。
私はあなたが言及したいくつかのことをA3で理解し、仮想マシンを単にアップグレードすることをやめました。私はA2からA3に移行しましたが、いくつかの改善点を見つけましたが、結局D2 VMに変更しました。
あなたが述べたドキュメントでは、Microsoftは、ドキュメントの最初にあるチェックリストの中で、Enterprise EditionまたはD2 for WebまたはStandard EditionのD3、およびPremium Storageの使用を推奨しています。