在测量查询的性能时,我发现了隔离级别和运行时间之间的依赖关系,这让我感到惊讶
READUNCOMMITTED - 409024
READCOMMITTED - 368021
REPEATABLEREAD - 358019
SERIALIZABLE - 348019
左列是表提示,右列是以微秒为单位的经过时间(sys.dm_exec_query_stats.total_elapsed_time)。为什么更好的隔离级别可以提供更好的性能?这是一台开发机器,不会发生任何并发。由于锁定开销较少,我希望 READUNCOMMITTED 是禁食的。
更新:我确实用
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
发出并且 Profiler 确认没有发生缓存命中。