2011-01-19 6 views
1

従来のSQLデータベースでEF1モデルを構築しました。エンティティフレームワークがパラメータをユニコードとして送信すると、パフォーマンスの問題が発生する

このデータベースには、非ユニコード文字列の列があります。これらの列はキーとしても使用されます。

特定のクエリでパフォーマンスに問題がありました。 EFがこのパラメータをUnicodeとして送信していたことがわかりました。

次に、コードのこの部分を書き直してSQL文を直接実行し、パラメータを非Unicode文字列として送信しました。

  • EFで:EFなし23000ミリ秒
  • 90ミリ

は何が起こっているように見えることはSQLサーバーがかかることである次のように

違いでした各50000行のフィールドは、Unicodeに変換され、送信されるパラメータと比較されます。

EFに非ユニコード文字列としてパラメータを送る方法を知っていますか?またはこれを修正する他の方法。

答えて

3

[パフォーマンスに影響を与える他の多くの問題]はEFv4で修正されています。最善の策は、EFv1(.net 3.5のEntity Framework)ではなく、EFv4(.net 4.0のEntity Framework)を使用することです。

関連する問題