SQL Server产品详情页面加载慢解决方法
问题场景:客户反应网站上的产品详情页面打开时,速度很慢。
运行环境:
数据库服务器 32位SQL Server 2005 开发者版SP2 开启了AWE
应用服务器 JDK 1.6,Tomcat 6.0
解决步骤:
1.火狐,Firebug>网络 查看打开该页面后的时间线 确实是数据查询耗时长导致页面加载慢。
2.懒得拉代码配置测试环境了(这个项目不能实行热部署,改了程序不能直接看到效果,不太爽),直接在客户机器上通过SQL Server Profiler创建跟踪来获取耗时长的查询。跟踪时间只是点开产品详情页面前后大约15s,这段时间内有一条查询的CPU、IO占用都高的离谱,所以很容易就确定了就是这条慢查询导致的页面打开慢。通过报表看,这条查询平均占用CPU时间8s多,已经执行2W多次。
3.将查询拷到Management Studio,添加参数值,设置统计io和time开关,开启实际执行计划,执行查询,分析结果。定位到union前后的两段查询条件重复,导致对连接的另一张大表逻辑读达到40W+,于是改写查询条件,时间缩短为0.15s左右。
4.提交开发的同事修改,问题解决。