【发布时间】:2012-06-24 04:06:00
【问题描述】:
假设我有一个简单的 ASP.NET MVC Web 应用程序和一个(本地)Sql Server。作为 ORM,我使用的是 Entity Framework 4.3.1
为了弄清楚 ORM 端需要多长时间,我准备了一个简单的选择查询并打印出时间戳,例如
...
using (var context = Entities())
{
(1) timestamp1
var list = context.Database.SqlQuery<Entity>("select * from entities").ToList();
(2) timestamp2
}
...
同时,我查看了 Sql Server Profiler 以查看查询开始/结束时间。
结果如下(注意只显示毫秒,因为查询处理时间小于1秒)
- 时间戳1:149毫秒
- 查询开始时间:197 毫秒
- 查询结束时间:198 毫秒
- 时间戳2:199毫秒
问题)为什么在开始查询之前花了这么多时间(48 毫秒,197-149 毫秒)?有什么办法可以减少吗?
谢谢!
【问题讨论】:
-
您不认为建立与数据库的连接、验证权限等可以瞬间完成,是吗?
-
即使在时间戳 1 之前建立连接,也测量了类似的性能
标签: sql-server entity-framework-4