自分の仕事でレガシーデータベースを使用しています。異なるデータ型の列に2つのテーブルを結合する必要があります。テーブルを結合するときにキャストを使用する
一つはint型であり、もう一つは長いので、エンティティフレームワークを変換するときにLINQ
は、私がJOIN
状態でこのような何かを得たSQL
式に参加:CAST([Extent1].[KundeID] AS bigint) = [Extent2].[ClientNumber]
。
このため、KundeID
のインデックスは無視され、結合は非常に遅いです。
キャストされた値にインデックスを作成することはできますか?CAST([KundeID] AS bigint)
のインデックスは[KundeID]
の代わりにありますか?または、他の解決策が働く可能性があります。
変換された列を計算列として保存しようとしましたか?そうすれば、その列にインデックスを追加できます。 MS Docsに関する詳細情報:https://docs.microsoft.com/en-us/sql/relational-databases/indexes/indexes-on-computed-columns。 – SchmitzIT
ありがとう、私はそれを試みます。 – Aleksa