首页 新闻 会员 周边 捐助

WCF连接数据库变慢

0
悬赏园豆:50 [已解决问题] 解决于 2013-09-21 21:10

问题是这么出现的

1.进入(或刷新)首页(通过WCF对数据库有多次访问)

2.进入(或刷新)数据编辑页面,点击按钮(向数据库更新几条数据,每次更新一条,分多次更新)。

第2步中的更新就会变慢。我在SQL中监视执行的时间,从开始更新到结束用时好几秒,接下来所有其它操作一直慢,除非回收应用程序池。回收后如果不做第1步,进入第2步,就会变快(1秒内全部完成)

如果不通过WCF,直接通过类去做也不会有任何问题。请问这是啥原因?

数据访问用的EF,unitofwork模式,unity 做的IOC

WCF
Fady的主页 Fady | 初学一级 | 园豆:162
提问于:2013-09-16 09:19
< >
分享
最佳答案
0

你的问题很复杂,很显然你的程序有问题,建议你用 CLR Profiler 把 API 的调用时间都统计出来,或者找个人帮你看下你的代码。

收获园豆:25
Launcher | 高人七级 |园豆:45050 | 2013-09-16 09:36
其他回答(2)
0

“从开始更新到结束用时好几秒”时执行的SQL语句是什么?

收获园豆:25
dudu | 园豆:29732 (高人七级) | 2013-09-16 09:33

SQL 很简单,这个没有问题,我只是举个例子,其它地方也会慢,如果不通过WCF,就不会出现变慢的情况,

支持(0) 反对(0) Fady | 园豆:162 (初学一级) | 2013-09-16 09:52

@此刻天涯: 如果SQL语句执行要好几秒,那这个SQL语句本身就有问题,与WCF无关。

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2013-09-16 09:58

SQL执行是很快的,我是分开执行多条,总共的花费时间,两条SQL的间隔较长

如果不通过WCF,直接调用类里面的方法,就不会花费较长时间,

支持(0) 反对(0) Fady | 园豆:162 (初学一级) | 2013-09-16 10:03

@此刻天涯: “直接调用类里面的方法”也是用的EF?

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2013-09-16 10:19

@dudu: 对啊方法是一样的

支持(0) 反对(0) Fady | 园豆:162 (初学一级) | 2013-09-16 10:20

@此刻天涯: 建议一下WCF部分的代码

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2013-09-16 10:23

@dudu: 

public int SaveAssessmentEmp(Guid mainId, string selfEvaluation, string deptSuggest, string transferIdea)
{
var item = repository.GetData(mainId);
if (item != null)
{
item.SelfEvaluation = selfEvaluation;
item.DeptSuggest = deptSuggest;
item.TransferIdea = transferIdea;
return repository.Update(item);
}
else return 0;
}

上面是更新方法,我的问题不是发生在某一个方法上面,而是整个系统

支持(0) 反对(0) Fady | 园豆:162 (初学一级) | 2013-09-16 10:33

@dudu: 有时间的话远程帮我看下?

支持(0) 反对(0) Fady | 园豆:162 (初学一级) | 2013-09-16 10:35

@此刻天涯: 你要去缩小问题的范围

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2013-09-16 10:45
0

请问你得问题解决了吗? 我也遇到类似的问题 程序和数据库在同一台机器的话 速度很快 如果分开放 每次调用都得4秒左右 

用的 wcf  ef5

码仔 | 园豆:105 (初学一级) | 2013-09-24 13:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册