我们的软件必须能够在sql Server 2000和2005上运行.为了简化开发,我们运行sql Server 2005数据库的兼容性级别80.但是,在某些情况下,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和here.>当使用分布式查询时,mssql 2005的行为与远程服务器上有关排序顺序的假设有所不同.默认行为是服务器将查询中涉及的整个远程表复制到本地tempdb,然后在本地执行连接.解决方法是使用OPENQUERY,您可以在其中精确控制从远程服务器传输的结果集.