繁体   English   中英

SQL自联接优化

[英]SQL self-join optimization

我正在编写一个查询,该查询需要一个大表(>一百万行)的自联接

我只对今天创建的行感兴趣,可以使用包含纪元时间的recording_time列进行过滤。

但是,我不确定下面的查询实际上是在进行联接之前限制了表。

SELECT B.ani
  FROM [app].[dbo].[recordings] B
  INNER JOIN [app].[dbo].[recordings] A
  ON B.callid = A.callid AND B.dnis = A.ani
  where A.filename LIKE '%680627.wav'
  AND B.recording_time > 1485340000

筛选今天创建的行并使用该新表进行联接。

SELECT B.ani 
FROM ( SELECT * FROM [app].[dbo].[recordings] where recording_time > 1485340000 ) B
INNER JOIN ( SELECT * FROM [app].[dbo].[recordings] where recording_time > 1485340000 ) A
ON B.callid = A.callid AND B.dnis = A.ani
where A.filename LIKE '%680627.wav'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM