某些数据库兼容性会导致性能下降吗?

mel*_*onk 3 performance sql-server compatibility-level

从 2005 年到 2012 年,我在多台机器上运行各种 SQL Server。我有许多这样的数据库在 SQL Server 2000 兼容模式下运行。

在较新版本的 SQL Server 中使用较旧的兼容性会导致任何性能问题吗?

除了旧版本的 SQL Server 能够访问它们之外,这些数据库之间有什么不同?

mrd*_*nny 5

兼容性级别所做的只是告诉 SQL Server 使用该版本中可用的旧版本 T-SQL 语言。例如,如果在 SQL 2008 R2 服务器中,数据库以 SQL 2000 兼容模式运行,如果您尝试访问某些新语法,它将无法正常工作。

例如

select *
from sys.dm_db_index_physical_stats (db_id(), null, null, null, 'limited')
Run Code Online (Sandbox Code Playgroud)

将在 SQL 2000 兼容模式数据库中引发错误。

至于查询执行,兼容模式不会改变。