小编Tim*_*Tim的帖子

相同 SQL 语句的执行计划不同

作为此问题的背景,可以在此链接中找到详细信息。

简而言之:除了RIGHT表之外,我有 2 个几乎相同的 SQL 语句。该LEFT JOIN是相同的,并且返回的列不同,因为该表是不同的。数据库从 2008 年移至 SQL Server 2012 实例。在 2012 实例上,1 个查询在 3 秒内执行,而另一个则需要将近 2 小时才能执行。执行计划有所不同,并发布在链接上。

但是,我可以接受这两个查询并在 SQL Server 2008 服务器上执行它们,它们都在 3 秒内完成。2008 服务器上的两个执行计划与 2012 服务器上的“良好”执行计划相同。

我有一个可以工作的新语句,但它所使用的应用程序是一个使用内联 SQL 的 C# windows 应用程序。我不想打破这个 1 语句的模式。任何人都可以阐明这个问题吗?

sql-server t-sql execution-plan sql-server-2008-r2 sql-server-2012

4
推荐指数
1
解决办法
3854
查看次数