[SQL ] sql 子查詢 過久無反應

看板Database作者 (麻淑菸酒生)時間13年前 (2012/03/22 16:05), 編輯推噓3(307)
留言10則, 8人參與, 最新討論串1/3 (看更多)
請問一下 我以sql 語法查詢 count id 的數量 在某個時間點 不包含 在某段時間點出現的 id (not in +子查詢) 如下 select count ( distinct ID) , date FROM table where date BETWEEN '20000101' AND '20031231' and ID not in (select distinct ID from table where func_date BETWEEN '19960101' AND '19991231' ) group by ID 發現資料庫過久沒有反應 但語法方面並沒有錯誤 請問各位大大該怎麼解決 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.71.94.1

03/22 16:14, , 1F
先從三年的範圍縮小成三天, 看看查詢時間多久?
03/22 16:14, 1F

03/22 17:08, , 2F
拆成二個temp table再比對看看
03/22 17:08, 2F

03/22 17:51, , 3F
縮小成三天 還是沒反應耶
03/22 17:51, 3F

03/22 20:19, , 4F
子查詢查出來資料比數大概多少?
03/22 20:19, 4F

03/23 11:17, , 5F
幾百筆
03/23 11:17, 5F

03/23 12:37, , 6F
建索引 不要用NOT IN
03/23 12:37, 6F

03/23 14:06, , 7F
用 not exists 看看??
03/23 14:06, 7F

03/24 10:19, , 8F
不要用sub qeury 改用join
03/24 10:19, 8F

04/03 22:34, , 9F
create index idx_1 on table(date, ID);
04/03 22:34, 9F

04/03 22:35, , 10F
create index idx_2 on table (func_date);
04/03 22:35, 10F
文章代碼(AID): #1FQjqroB (Database)
文章代碼(AID): #1FQjqroB (Database)