5

私はMVC WebサイトとAzure SQLバックエンドにEF 6 Code Firstを使用しています。 Azure PortalのSQLページには、クリックで適用できる多数のインデックス推奨事項があります。しかし、私は自分のEFデータモデルにどういう意味があるのか​​分かりません。テーブルやフィールドなどを直接データベースに追加したり削除したりすると、EFはモデルとDBが同期していないと不満を募らせています。インデックスはどうですか? Azureが自動的に推奨インデックスを追加するようにすれば、EFはそれについても知っていますか?それは問題を引き起こすでしょうか?Azure SQL:インデックスアドバイザーを適用するとEFの移行に影響はありますか?

答えて

2

インデックスについてはどうですか? Azureが自動的に推奨インデックスを追加するようにすれば、EFはそれについても知っていますか?それが問題を引き起こすのでしょうか?...

EFはそれについて知っている必要はなく、それがどんな問題を引き起こす文句を言わない、彼らはのピンチで撮影しなければならないusefull.Allインデックス推奨事項がある場合は、これらのインデックスを使用してクエリオプティマイザ注意深い評価の後にのみ適用されるべきである。

1

私の経験では、インデックス推奨事項は、Entity Frameworkの移行に問題を引き起こす可能性があります。 Entity Framework自体には影響しません。インデックスについては何も知らなくても、データベースにうまく接続しますが、新しい移行を適用するときに問題が発生する可能性があります。

例として、Azureポータルを使用して、新しい推奨インデックスをいずれかのテーブルに適用します。後でこのテーブルをリファクタリングし、列を削除する移行を作成します。この移行は、インデックス(EFが認識していない)が列に依存するため、適用しようとすると失敗する可能性があります。

このシナリオはおそらくありませんが、推奨を適用することを忘れてしまった場合には、この問題が発生する可能性があります。 Azureがこれらの推奨事項を自動的に適用するようにすると、さらに問題になります。最悪の場合、実稼働環境に試してデプロイするまで、これらの問題は発生しません。ステージング/テスト環境では使用パターンが異なるため、インデックスの推奨事項自体が異なる可能性があります。

関連する問題