我们的软件必须能够在 SQL Server 2000 和 2005 上运行。为了简化开发,我们以兼容级别 80 运行 SQL Server 2005 数据库。但是,在某些情况下,SQL 2005 上的数据库性能似乎比 SQL 2000 上慢(我们尚未使用基准证实这一点)。将兼容性级别升级到 90 会提高 SQL 2005 服务器的性能吗?
我想我在某处读到,SQL Server 2005 数据库引擎应该比 SQL Server 2000 引擎快大约 30%。您可能必须在兼容模式 90 下运行数据库才能获得这些好处。
但我偶然发现了两种情况,与 mssql 2000 相比,使用 mssql 2005 时性能会急剧下降:
参数嗅探:当使用存储过程时,sql server将在您第一次调用该过程时准确地计算出一个执行计划。执行计划取决于为该调用指定的参数值。在我们的例子中,通常需要大约 10 秒的过程在 mssql 2005 下运行了几个小时。看一下here and here.
使用分布式查询时,mssql 2005 在有关远程服务器上排序顺序的假设方面表现不同。默认行为是,服务器将查询中涉及的整个远程表复制到本地 tempdb,然后在本地执行联接。解决方法是使用 OPENQUERY,您可以在其中准确控制从远程服务器传输哪个结果集。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)