判斷一個表的數據不在另一個表中最優秀方法
select a.* from tbl1 a
left join tbl2 b
on a.key = b.key
where b.key is null
刪除千萬級表中重複記錄的辦法
可以試試這樣:
1. 選擇候選鍵,60個字段,應該只用其中幾個就可以判斷重複了吧。
在候選鍵的這些字段上建立索引。
2.
CREATE TRIGGER tr_歷史交易表
ON 歷史交易表
FOR DELETE
AS
INSERT INTO 歷史交易表
SELECT DISTINCT * FROM deleted
GO
DELETE 歷史交易表
FROM (
SELECT 候選鍵1, 候選鍵2, 候選鍵3
FROM 歷史交易表
GROUP BY 候選鍵1, 候選鍵2, 候選鍵3
HAVING COUNT(*) > 1
) t
INNER JOIN 歷史交易表 a
ON t.候選鍵1 = a.候選鍵1
AND t.候選鍵2 = a.候選鍵2
AND t.候選鍵3 = a.候選鍵3