2011-01-19 26 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中)。