并运行一个SQL服务器2005年数据库的兼容性水平80产生负面影响的性能吗?

StackOverflow https://stackoverflow.com/questions/7237

  •  08-06-2019
  •  | 
  •  

我们的软件必须能够运行SQL Server2000和2005年。为了简化发展,我们正在运行我们的SQL服务器2005年数据库的兼容性水平80.然而,数据库的绩效似乎较慢的上SQL2005年比上SQL2000年在一些情况下(我们还没有证实这种使用基准)。会升级的兼容性水平提高到90性能上的SQL2005年的服务器?

有帮助吗?

解决方案

我想我读的地方,就SQL服务器2005年数据库引擎的数据库应该是大约30%的速度比SQL Server2000年发动机。它可能是,你有运行数据库的兼容性模式的90获得这些好处。

但我无意中发现了两种情况下,其业绩可以大幅降低当使用mssql2005年相比mssql2000年:

  1. 参数嗅闻:当使用存储程序,sql服务器将准确地计算出一个执行计划的时候,你的第一个呼吁程序。执行计划取决于参数值定为这一呼吁。在我们的情况下,程序,通常花费了大约10秒钟都是在运行时间在数据库,2005年。看看 在这里,在这里,.

  2. 在使用分布式查询,mssql2005年的行为不同的有关假设有关的排列顺序上的远程服务器。默认行为,服务器复制整个远程表参与查询的当地临然后执行加入当地。解决方法是使用OPENQUERY,在那里,你可以完全控制,其结果是转移到远程服务器。

其他提示

之后你搬DBs到2005年做了你

更新的统计数据与全面扫描?重建索引吗?

第一次尝试,然后检查的性能再一次

还有仅供参考,如果运行的兼容性水平90然后有些事情是不支持再喜欢老式的外联接 (*= and =*)

你使用 子选择 在你的查询?

从我的经验,选择的发言中使用子运行现在SQL Server2000可以爬上SQL服务器2005年(它可以像10倍的速度较慢!).

做一个实验-重写一个查询来消除电子查询,看看它的表现的变化。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top