SQLServer 2012 Enterpriseの互換モードの古いデータベースは90-SQL Server 2005です。データベース互換モードを90から110-SQL Server 2012に変更した結果はどうなりますか?多くのレガシーアプリケーションはデータベースを利用します。 QA自動化ユニットと統合テストでは何も問題はありませんが、不足している可能性のある潜在的なアイテムを確認しようとしています。
下位互換性に問題があることを理解し、データベースを110から90に変更します。たとえば、新しい構文またはtempdbを適用するクエリは失敗します。
しかし、90から110までの間、どのような問題が発生する可能性がありますか?壊れる可能性のあるアイテムは何ですか?
マイクロソフトの以下の記事を読むのが最善です。
発生する可能性が最も高い問題は次のとおりです。
互換性レベル90から100へ:
互換性レベル100から110へ:
しかし、90から110までの間にどのような問題が発生する可能性がありますか?壊れる可能性のあるアイテムは何ですか?
まあ、これは基本的に非常に主観的ですが、コード側から何が壊れるのかはわかりませんが、すべての重大な変更をリストアップした記事に間違いなくあなたを向けることができます。 SQL Server 2012でのデータベースエンジンの変更の破壊 を参照してください。
私の過去の経験では、データベースの互換性レベルを変更しても、データベースが完全に機能しなくなるわけではありません。互換性レベルは、特定の機能が特定の互換性レベルでどのように機能するかを定義するだけです。再び参考にするために、MSはこのような変更を ALTER DATABASE(Transact-SQL)互換性レベル に記載しています。この記事は詳細で、SQLサーバーのすべてのバージョンの詳細が含まれています
上記の2つのリンクを使用する場合、シナリオで失敗する可能性のあるものを書き留め、事前に修正する必要があります。これが完了したら、コマンドを実行するプロセスは簡単です
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = 110
運用時間外に実行するようにしてください。これで、何かが失敗したかどうかをテストするようユーザーに要求できます。コマンドを再度実行して互換性レベルを90に戻すことが重要です。そのため、プロセス全体にヒットと試行の方法が少し含まれています。
参照しているバージョン間に導入された変更を確認する必要があります。変更のいずれかがワークロードに影響を与える場合は、それを徹底的にテストし、必要な調整を行う必要があります。コードを破壊する可能性のある構文の変更とは別に、SQLオプティマイザーやその他の機能が変更され、以前とは異なるクエリプランが生成される可能性があるため、パフォーマンスもテストする必要があります。
以下は、MSDNページに関連する互換性レベルに関するいくつかの情報へのリンクです。 [〜#〜] link [〜#〜]