数据库技巧

来源:互联网 发布:浙江诸暨行知小学 编辑:程序博客网 时间:2024/05/01 15:59

判断一个表的数据不在另一个表中最优秀方法

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