情况就是这样......
我们在位置A有一个本地开发服务器,我们构建所有的aspx页面。我们的数据库也位于A位置。
在开发服务器上测试我们的文件时,我们的查询会在大约1秒内快速运行。
我们只是将文件移动到位于位置B的实时服务器(数据库仍位于位置A),现在查询的时间比开发服务器长5到10倍。位置A位于东安格利亚,位置B在伦敦大约相距100英里。
同样在开发和实时服务器上,运行的第一个查询比之后的其他查询要花费更长的时间。
任何可能导致缓慢的想法?
修改
我已经开始追踪几个页面,似乎End Load占用了所有方法中最长的但是我不确定为什么
我也无法访问我们的外部服务器,无法在那里安装SSMS或Oracle开发人员来测试任何查询。
答案 0 :(得分:1)
“运行的第一个查询比其他查询需要更长的时间 之后的询问。“
这就是缓存的效果。第一个查询支付物理IO的费用。后续查询受益于查找已存在于缓存中的相关记录,DB缓存或某些其他OS或架构缓冲区。
至于两种环境之间的性能差异,可能还有以下几点:
“大约相隔100英里”
两个位置之间的网络连接可能会限制数据传输。假设它是私人连接,您需要与您的网络管理员交谈。如果您使用的是公共基础设施,那么您的选择是有限的。
“似乎End Load占用了所有方法中最长的”
好吧,所以我不是ASPX专家(我在这里是为了[oracle]标签)但是一些轻量搜索显示了几个线程,表明它可能是“用户控件”,如these fire just before the End Load event 。例如this other SO question。