Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL自连接优化_Sql_Sql Server - Fatal编程技术网

SQL自连接优化

SQL自连接优化,sql,sql-server,Sql,Sql Server,我正在编写一个查询,它需要一个大于一百万行的大型表的自联接 我只对今天创建的行感兴趣,我可以使用包含纪元时间的录制时间列进行过滤 但是,我不确定下面的查询是否在执行联接之前实际限制了表 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 '%

我正在编写一个查询,它需要一个大于一百万行的大型表的自联接

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

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

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'

我不明白你的问题。你能解释一下你在问什么吗?当然,基本上我不想做满表的自联接。我知道我感兴趣的行是今天创建的。正在尝试最小化对数据库的影响。添加示例数据和预期结果