數據庫技巧

判斷一個表的數據不在另一個表中最優秀方法

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

發佈了24 篇原創文章 · 獲贊 0 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章