web-dev-qa-db-ja.com

データベースの互換性レベルはパフォーマンスに影響しますか?

同じ仕様のハードウェアでMicrosoft SQL Serverを2005年のエンタープライズから2008年の標準に移行しました。データベースはバックアップされ、クリーンなSQL 2008インストールに復元されました。互換性レベルは現在90(2005)です。 Enterprise機能は2005年には使用されていませんでした(そのため、エディションはダウングレードされました)。 2005年と比較して、2008年のCPU使用率は約10〜12%増加しました。他の唯一の変更は、SQL 2005がサーバー2003 x64を実行し、2008がサーバー2008 x64を実行していることです。全文索引は使用していません。

データベースの互換性レベルはパフォーマンスに影響しますか?インデックスを再構築したり、統計を更新したりしていませんが、影響はありますか?パフォーマンスに影響を与える可能性のある他に何を探す必要がありますか?

5
duckworth
5
Sam

パフォーマンスの問題はありますか?言い換えれば、CPU使用率の増加だけがトランザクションレートの低下ではないということです。

アプリケーションが1秒あたりにより多くのトランザクション(および処理)を実行できるようになった場合、プロセッサー時間の増加は、より高いスループットが原因である可能性があります。ハードウェアの違いがある場合は、それも原因である可能性があります。移動後にデータベースの統計とインデックスを更新する必要があります。これにより、CPUが増加する可能性があります(ただし、アプリケーションによって異なります)。

互換性レベルはT-SQL言語の互換性レベルのみを参照しているため、はるかに優れた方法で置き換えられたコードを使用しない限り、通常、パフォーマンスに影響はありません。コード。

2
Jim B

さまざまな互換性レベルに関するドキュメント ここ を見つけることができます。

データベースの互換性レベルは、主にSQL構文とクエリの解析に影響します。これはすべきですパフォーマンスに影響はありません。とにかく、アプリケーションの問題によって以前のレベルを使用するように強いられていない場合は、アップグレードすることをお勧めします。

1
Massimo

互換性レベルは問題になりません。

まだ行っていない場合は、そのサーバーでPerfMonを実行して、CPU使用率の増加がSQL Server、Windows、またはその他の原因によるものかどうかを判断できるかどうかを確認します。

0

2つの異なるサーバーの場合は、Disk IO(raid settings?)の可能性があります。systaxの@Massimoに同意します。

0
Saif Khan