我们有一个网站需要很长时间才能下载4G网络上的某些数据。它能够从数据库中快速加载大量客户及其所有详细信息。但是,从数据库中的另一个表中仅加载客户最后一个活动的一些细节需要很长时间(仅加载6个数据库字段需要5-6秒)。
示例SQL查询:
SELECT TOP(1) EventID, StartOnDate, Description, Fullname, ForeColor, BackColor, WhatHappened
FROM qryCustomerHistory WHERE CustomerID=610376 AND StartOnDate < '2/21/2014'
ORDER BY StartOnDate DESC
我们的网站是一个.net 4.5网站,在boostrap模式弹出窗口中显示数据。该数据库是Microsoft SQL Server 2012.网站和数据库都位于Windows Azure上托管的同一个虚拟机上。
答案 0 :(得分:0)
很难猜出根本原因是什么。
也许你的表包含大量数据,如果是这样,你需要一个包含CustomerID
和StartOnDate
的复合索引来加速表扫描。
Order by
子句中的任何内容通常都需要一个索引。
您必须在客户端和服务器端跟踪请求,以确定问题是什么。
您可以使用几乎任何最新浏览器的开发人员工具来跟踪客户端的请求(结帐firebug network monitoring)。
对于服务器端,用户分析工具或NLog或Log4net等日志框架的调试级别日志记录。