【发布时间】:2014-12-12 05:41:09
【问题描述】:
我正在替换用 ASP.NET 1.0 编写的旧版 Web 应用程序。我的计划是在现有数据库模式之上使用 MVC5 重建一个新的 GUI。作为该过程的一部分,我将整个数据库从 SQL-Server 2000 迁移到 SQL-Server 2014,并将同一个 Web 实例指向新的数据库服务器。
虽然新服务器上的查询运行速度更快,但数据库升级导致我们的网站运行缓慢。我将缓慢追溯到“DataAdapter.Fill()”调用。连接到 SQL-Server 2014 时,来自 Web 应用程序的调用大约需要 10 秒,而不是旧数据库服务器的 3 秒(慢约 3 倍)。底层存储过程非常快,所以这不是瓶颈。
新的数据库服务器位于同一网络上,因此延迟应该不是问题。 Web 服务器可以在不到 10 毫秒的时间内 ping 旧服务器和 DB 服务器。
知道为什么数据库升级会导致如此显着的减速吗?
【问题讨论】:
-
您的索引是否可能需要重建?
-
索引不是问题。即使使用“SET ARITHABORT OFF”,底层存储过程也非常快。运行“DBCC DROPCLEANBUFFERS”和“DBCC FREEPROCCACHE”确实稍微加快了存储过程,但存储过程不是瓶颈。我目前的理论是,由于 SQL 版本之间的不匹配,DataAdapter.Fill() 调用速度较慢。由于我是通过 .NET 1.0 框架进行调用的,因此它可能依赖于较慢的旧版支持 API。我没有任何证据或专业知识,但这就是我在这里发帖的原因。
标签: asp.net sql-server vb.net sql-server-2000 sql-server-2014