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