2011-01-19 43 views
1

我們已在傳統SQL數據庫上構建了EF1模型。實體框架將參數作爲unicode發送導致性能問題

在這個數據庫中有非Unicode字符串的列。這些列也用作鍵。

我們遇到了一個特定查詢的性能問題。我們注意到EF發送參數爲Unicode。

然後,我們重寫了這部分代碼以直接運行SQL語句,並將該參數作爲非unicode字符串發送。

的區別如下:

  • 隨着EF:23000毫秒
  • 沒有EF:90毫秒

這似乎是發生的是,SQL服務器採用字段從50000行中的每一行轉換爲Unicode以將其與正在發送的參數進行比較。

任何人都知道如何讓EF發送參數作爲非Unicode字符串?或者任何其他方式來解決這個問題。

回答

3

[和許多其他影響性能的問題]在EFv4中修復。您最好的選擇是使用EFv4(實體框架在.net 4.0中)而不是EFv1(實體框架在.net 3.5中)。