在兼容级别80中运行SQL Server 2005数据库是否会对性能产生负面影响?

Tem*_*lar 11 database sql-server

我们的软件必须能够在SQL Server 2000和2005上运行.为了简化开发,我们在兼容级别80中运行我们的SQL Server 2005数据库.但是,在某些情况下,SQL 2005上的数据库性能似乎比SQL 2000慢(我们尚未使用基准确认这一点).将兼容级别升级到90会提高SQL 2005服务器的性能吗?

Jan*_*Jan 5

我想我在某处读过,SQL Server 2005数据库引擎应该比SQL Server 2000引擎快30%。可能是,您必须在兼容模式90下运行数据库才能获得这些好处。

但是我偶然发现了两种情况,与mssql 2000相比,使用mssql 2005时性能可能会大大下降:

  1. 参数嗅探:当使用存储过程时,sql server会在此时精确计算一个执行计划,您首先调用该过程。执行计划取决于为该调用指定的参数值。在我们的例子中,通常花费约10秒的过程在mssql 2005下运行了几个小时。在此处此处查看

  2. 使用分布式查询时,mssql 2005在有关远程服务器上排序顺序的假设方面表现出不同。默认行为是,服务器将查询中涉及的整个远程表复制到本地tempdb,然后在本地执行联接。解决方法是使用OPENQUERY,您可以在其中精确控制从远程服务器传输的结果集。