首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么EF5的审核注销事件占用EF5 ~3秒时间?

为什么EF5的审核注销事件占用EF5 ~3秒时间?
EN

Stack Overflow用户
提问于 2012-10-31 20:35:22
回答 1查看 1.6K关注 0票数 0

我正试图将我们自己开发的ORM解决方案转换为EntityFramework 5,而我遇到的第一个问题似乎是一个严重的节目停播。

我们的框中的EF5似乎要比ad hock sql长9倍来执行标量sql操作,但是当我查看生成的sql代码时,sql本身似乎编写得相当好,并且运行得很快。

我的两个C#代码:

代码语言:javascript
运行
复制
 int surveyId = (from survey in upsEntities.Surveys where !survey.Deleted select survey.SurveyID).First();
            Debug.WriteLine("Loading surveyId : {0} through Linq took {1}ms using EF5", surveyId,
                            sw.Elapsed.TotalMilliseconds);

            sw.Restart();

            string sql = "Select top 1 surveyId from Survey where deleted = 0";
            object val = SMSDataManager.Instance.DataAccessManager.ExecuteScalar(sql);

            Debug.WriteLine("Loading surveyId : {0} through AdHock SQL took {1}ms using OrmDataManager", val,
                           sw.Elapsed.TotalMilliseconds);

SQL输出: EF5:

代码语言:javascript
运行
复制
SELECT TOP (1) 
[Extent1].[SurveyID] AS [SurveyID]
FROM [dbo].[Survey] AS [Extent1]
WHERE [Extent1].[Deleted] <> cast(1 as bit)

Adhock:Select top 1 surveyId from Survey where deleted = 0

加载surveyId :1通过Linq使用2965.8625ms使用EF5 加载surveyId :1通过AdHock SQL取384.8073ms

根据分析器的说法,两者之间的持续时间是1ms ( EF5 ),0ms ( ad )。问题似乎在于审核注销事件for EF5,花费了~3秒,,其中ad hock sql占用相同注销事件的~6秒。

是什么导致了EF5的巨大开销,我能做些什么来减轻或解释这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-01 13:49:36

每个应用程序域只进行一次初始化。根据模型的复杂程度以及第一次连接到数据库所需的时间,它可能需要一些时间。您可以在我的博客上看一下这个评论,它简要地讨论了初始化实体框架代码第一次查看Visual代码库上的生成模板-注释#249。另外,这个页面:实体框架的性能考虑5是您可能想要查看的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13167048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档