在 sql server 2012 中,我有一个包含超过 2500 万行重复的表。该表没有唯一索引。它只有一个非聚集索引。我想消除重复,所以,我在想下面的
select distinct * into #temp_table from primary_table
truncate primary_table
select * into primary_table from #temp_table
我想知道 select distinct * 查询的成本有多高。如果我上面的程序非常昂贵,我想知道是否有另一种替代方法。
最佳答案
我不知道它有多贵,但另一种方法是创建另一个带有主键的表,在那里插入所有数据并默默地拒绝重复项,如此处所述
http://web.archive.org/web/20180404165346/http://sqlblog.com:80/blogs/paul_white/archive/2013/02/01/a-creative-use-of-ignore-dup-key.aspx
基本上,使用 IGNORE_DUP_KEY
关于sql - 选择不同的 * 查询有多昂贵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22163765/