【发布时间】:2010-09-05 15:41:57
【问题描述】:
我们的软件必须能够在 SQL Server 2000 和 2005 上运行。为了简化开发,我们运行兼容级别为 80 的 SQL Server 2005 数据库。但是,在某些情况下,SQL 2005 上的数据库性能似乎比 SQL 2000 慢案例(我们尚未使用基准确认这一点)。将兼容性级别升级到 90 会提高 SQL 2005 服务器的性能吗?
【问题讨论】:
标签: sql-server database
我们的软件必须能够在 SQL Server 2000 和 2005 上运行。为了简化开发,我们运行兼容级别为 80 的 SQL Server 2005 数据库。但是,在某些情况下,SQL 2005 上的数据库性能似乎比 SQL 2000 慢案例(我们尚未使用基准确认这一点)。将兼容性级别升级到 90 会提高 SQL 2005 服务器的性能吗?
【问题讨论】:
标签: sql-server database
您是否在查询中使用子选择?
根据我的经验,在 SQL Server 2000 上运行良好的带有子选择的 SELECT 语句可以在 SQL Server 2005 上爬行(它可能会慢 10 倍!)。
做一个实验 - 重新编写一个查询以消除子选择,看看它的性能如何变化。
【讨论】:
我想我在某处读到,SQL Server 2005 数据库引擎应该比 SQL Server 2000 引擎快 30%。可能是,您必须在兼容模式 90 下运行数据库才能获得这些好处。
但我偶然发现了两种情况,与 mssql 2000 相比,使用 mssql 2005 时性能会急剧下降:
【讨论】:
也仅供参考,如果您运行兼容级别 90,则不再支持某些内容,例如旧式外连接 (*= and =*)
【讨论】:
在您将数据库移至 2005 年之后,您是否
使用全面扫描更新统计信息? 重建索引?
先尝试一下,然后再次检查性能
【讨论】: