2
シークできない永続化計算列のインデックス
という名前のテーブルがありAddress、そのテーブルには、という永続的な計算列がありHashkeyます。列は確定的ですが、正確ではありません。シークできない一意のインデックスがあります。このクエリを実行すると、主キーが返されます。 SELECT @ADDRESSID= ISNULL(AddressId,0) FROM dbo.[Address] WHERE HashKey = @HashKey 私はこの計画を取得します: インデックスを強制すると、さらに悪い計画が得られます。 インデックスとシークの両方を強制しようとすると、エラーが発生します。 このクエリで定義されたヒントのため、クエリプロセッサはクエリプランを作成できませんでした。ヒントを指定せずに、使用せずにクエリを再送信しますSET FORCEPLAN これは、正確ではないという理由だけですか?持続するかどうかは関係ないと思いましたか? これを非計算列にすることなく、このインデックスをシーク可能にする方法はありますか? これに関する情報へのリンクはありますか? 実際のテーブル作成を投稿することはできませんが、同じ問題があるテストテーブルを次に示します。 drop TABLE [dbo].[Test] CREATE TABLE [dbo].[Test] ( [test] [VARCHAR](100) NULL, [TestGeocode] [geography] NULL, [Hashkey] AS CAST( ( hashbytes ('SHA', ( RIGHT(REPLICATE(' ', (100)) + isnull([test], ''), ( 100 )) ) + …