我在IIS下运行一项服务。我正在测试2种不同的数据收集方法,以确定哪种方法最适合我们。服务类有2个方法,它们使用相同的对象,但使用2种不同的方法来查询数据。一个是linq到sql,另一个是使用第三方Web服务。在我的服务中,2种方法各自在大约7秒内获得数据。它们正在加载相同的对象,它们位于服务的同一个类中。 在客户端,我使用服务填充网格,在.18秒内从服务获取数据,另一个需要31.6秒。由于这两种方法在服务中的工作时间相同,为什么客户端会出现巨大的差异? 以下是客户端对服务的调用:
这一次需要31.6秒:
var watch = Stopwatch.StartNew();
courseOfferingsSyn = clientsyn.GetCoursesOffered_SynergyService(SchoolDD.SelectedItem.ToString(), schoolYear, TermCodeDD.SelectedValue).ToList();
var test = watch.Elapsed.TotalSeconds;
Console.Write(test);
这个需要.188秒:
var watch = Stopwatch.StartNew();
courseOfferings = client.GetCoursesOffered(SchoolDD.SelectedValue, schoolYear, TermCodeDD.SelectedValue).ToList();
var test = watch.Elapsed.TotalSeconds;
Console.Write(test);
两者之间的唯一区别是一个查询需要学校代码,另一个需要学校名称。
哦,和绑定(都使用相同的):
<binding name="BasicHttpBinding_CourseService" allowCookies="true" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
</binding>
任何人对我甚至可以寻找什么都有任何想法?我很难过。
答案 0 :(得分:0)
对我来说,后端数据库缺少索引,并强制数据库搜索表中的所有记录。这是我能想到为什么一个电话会很快而另一个电话很慢的唯一原因......