簡體   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