SQL Server 2012 优化器不正确。
测试用例,总结:
这是一个简化的测试场景。底部的 DDL 语句。
我有两个用于数据记录的表,A以及B. 有一个 1:n 关系 -A有一个日期时间的标题记录a_time和B详细记录,一个字段B.akey是引用A.id,字段name和(data)。
A 有大约。25,000,000 条记录,B大约有。500,000,000 条记录。B大约有 200 条记录引用A. 一个A和大约。B每五分钟一次插入200条记录,由A.a_time.
聚集索引是主键id,类型为 int 标识。
B有一个非聚集索引,命名IX_B_akey上B.akey。
A.a_time 也被(非聚集)索引。
现在这个查询:
SELECT A.a_time, B.*
FROM B
join A on B.akey = A.id
where
A.a_time > '2017-01-13T01:30:00' and …Run Code Online (Sandbox Code Playgroud) performance sql-server optimization sql-server-2012 query-performance