sql - 数据库版本升级后子查询性能变差

标签 sql sql-server sql-server-2008

自 SQL Server 2000 以来,我们一直在使用多个嵌套查询来实现报告目的。

select * from 
 (select * from t1) t1 
  inner join
 (select * from t2) t2
 on........

我们最近将数据库从 SQL Server 2000 Enterprise 升级到 SQL Server 2008 Standard。我们注意到其中一些旧查询现在运行速度非常慢甚至超时。数据库的大小确实没有太大变化。

我们通过用临时表替换一些嵌套查询来解决上述问题。

但是,我们仍然不确定嵌套是否运行缓慢,现在临时表是否运行得更好。我们没有对 join 或 where 子句进行任何更改。

任何见解或想法都会有所帮助。

最佳答案

一般来说,单个查询比使用临时表和多个查询慢的情况是不常见的。因此,升级后的 SQL Server 似乎可能不了解有关数据的最新信息。

升级 SQL Server 后,您应该确保有关数据库的信息是最新的。您绝对应该做的一件事是更新数据库表的统计信息。

您可能还会发现,使用较新的 SQL Server 版本可能有更好的方法来运行查询。因此,在更新统计信息后,您可以查看当前 SQL Server 版本的新功能。

关于sql - 数据库版本升级后子查询性能变差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765203/

相关文章:

sql - sql server 2008中的触发器

sql - 选择5个最新的SQL Server

sql-server - 如何阅读msdn的t-sql语法解释?

sql - SQL Server 2008日志截断是否会暂停事务

Sql:如何将多行组合成一个字符串作为更新中的表达式

sql-server - 在 SQL 中使用逻辑

SQL选择startdate是今天的日期

visual-studio-2008 - 如何在SSIS中调试脚本组件

c# - LINQ加入和分组

sql - 按一列对重复项进行分组,但显示另一列