小编Mor*_*oth的帖子

如何教优化器在数据记录主/明细表上使用索引而不是 fts 连接?

SQL Server 2012 优化器不正确。

测试用例,总结:

这是一个简化的测试场景。底部的 DDL 语句。

我有两个用于数据记录的表,A以及B. 有一个 1:n 关系 -A有一个日期时间的标题记录a_timeB详细记录,一个字段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_akeyB.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

5
推荐指数
1
解决办法
151
查看次数