好的……我被要求找出一家中小型公司(员工人数少于 200 人)的内部网站运行缓慢的原因。在网上搜索了三天后,我决定发布我所看到的内容。以下是我所知道的:
服务器:HP DL380 Gen9(新) 操作系统:MS Server 2012 – 运行 hyper-v RAM:32GB
Server 2012 最多可运行 2 到 3 个虚拟机(目前仅运行一个虚拟机) 16GB RAM 专用于 VHD(非动态内存) 创建卷以容纳 VHD 该卷内有一个固定的 400GB VHD。该 VHD 内是运行 SQL 2008r2 并托管 iis7 内联网的服务器 2008r2。
事情是这样的:内联网中的一个页面被设置为运行几个存储过程,这些过程会对其他表中的数据进行一些检查,并在输入员工数据后插入数据(某种考勤数据库)。代码看起来在处理数据的过程中创建并删除了大约 5 个表。该页面在较新的服务器上运行大约需要 1 分 50 秒。我能够找到旧服务器并运行速度测试:14 秒。
我不知所措……很多网站都说要修改代码。但是之前它运行得很快。我查看了 perfmon……那里一切看起来都很好。
旧服务器是运行 SQL2000 的 32 位 2003 服务器......新服务器显然是 64 位。
有任何想法吗?
答案1
解决了我自己的问题……只是花了一段时间才回复。希望这能帮助其他人。
在工具\选项下打开 SQL 活动监视器 => 在启动时 => 打开对象资源管理器和活动监视器。
打开最近的昂贵查询。右键单击顶部查询并选择显示执行计划。这显示数据库缺少索引。通过单击顶部的计划信息添加索引。添加了索引。
希望这可以帮助!