由于上周末小写把数据数据重复写入数据库,没办法,得去重!

最新使用的语句:

use data

set nocount on
delete DoRecordProperty from
(

select TID,SN,COUNT(0) as num,Max(id) as maxid from DoRecordProperty with (nolock) group by TID,SN having count(0)>1

) p where p.TID=DoRecordProperty.TID and p.SN=DoRecordProperty.SN and DoRecordProperty.Id<>p.maxid

set nocount off

语句执行了5分钟,还没有出结果,再执行下去,估计也没有结果。

如果单独执行

select TID,SN,COUNT(0) as num,Max(id) as maxid from DoRecordProperty with (nolock) group by TID,SN having count(0)>1

9秒钟就查询出来结果了。

于是想是否把重复的数据放在临时表里,然后再删除,效果会如何呢?

于是有了下面的语句

use data
go

set nocount on

create table #Tmp --创建临时表#Tmp
(
    TID int ,
    SN varchar(50),
    maxid int ,
    num int
);

insert into #Tmp(TID,SN,num,maxid)
select TID,SN,COUNT(0) as num,Max(id) as maxid from DoRecordProperty with (nolock) group by TID,SN having count(0)>1

delete DoRecordProperty from
#Tmp p where p.TID=DoRecordProperty.TID and p.SN=DoRecordProperty.SN and DoRecordProperty.Id<>p.maxid

Select COUNT(0) as num from #Tmp --查询临时表的数据
truncate table #Tmp --清空临时表的所有数据和约束
drop table #Tmp
set nocount off

果然,在40秒的时候,执行成功了。

以上是在服务器:CPU 2u E5-2620  ;内存 96G 硬盘是1T 企业级 7200转;数据是sql server 2008上进行操作的。

msqlserver 千万级别单表数据去掉重复记录使用临时表的更多相关文章

  1. MySQL单表数据查询(DQL)

    数据准备工作: CREATE TABLE student( sid INT PRIMARY KEY AUTO_INCREMENT, sname ), age TINYINT, city ), scor ...

  2. MySQL单表数据不超过500万:是经验数值,还是黄金铁律?

    今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个 ...

  3. Innodb单表数据物理恢复

    本文将介绍使用物理备份恢复Innodb单表数据的方法 前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数 ...

  4. MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?

    本文阅读时间大约3分钟. 梁桂钊 | 作者 今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢 ...

  5. MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG)20180502

    错误提示:ORA-00001: 违反唯一约束条件 (ABPPMGR.C0248833319_6192)ORA-06512: 在 "STG.FP_MO_SPLIT", line 19 ...

  6. SQLServer导出导出单表数据

    1.SQLServer导出单表数据为TXT文件 数据库--任务--导出数据

  7. 单表数据加载到TreeView(.Node.Level>=2) "蝴蝶效应" SelectedNode注意事项 效能优化 综合问题

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Configurat ...

  8. oracle去掉重复记录语句

    oracle去掉重复记录语句   比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 select p1.*   from persons  p1 ...

  9. 伪列:Oracle显示查询结果前几条记录用rownum<=。去掉重复记录,保留最早录入记录:取出最小ROWID

    显示6-10行记录: 去掉重复记录,保留最早录入记录:取出最小ROWID SELECT deptno,dname,loc,min(ROWID) FROM dept GROUP BY deptno,dn ...

随机推荐

  1. (原创)VM中的CentOS6.4中安装CloudStack6.3②

    接着VM中的CentOS6.4中安装CloudStack6.3①中文章接着,往下面安装 4.更新 yum 仓库 默认情况下,CentOS的软件源中没有收录最新版本CloudStack,为了能顺利安装, ...

  2. JavaScript的json和Array及Array数组的使用方法

    1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...

  3. 特别实用而且功能强大的attributedText属性

    UILabel *sendNameLB = [[UILabel alloc]initWithFrame:CGRectMake(, , , )]; NSString * string = @" ...

  4. sql 查看数据库物理文件路径

    方式一:用于查询all数据库,适用于SQL2005及以上版本. USE [Master] GO /****** 对象 :  Table [dbo].[Master]    脚本日期 : 06/29/2 ...

  5. 论SCRM系统对传统行业的冲击

    SCRM(Social Customer Relationship Management)顾名思义是社会型客户关系管理系统,这在当前的电子商务领域是一个创新的概念,由于社交媒体(Social Medi ...

  6. 最小的N个和

    时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有两个长度为 N 的序列 A 和 B,在 A 和 B 中各任取一个数可以得到 ...

  7. Spell-DBC

    Spell.dbc 1  ID2  Attributes               属性3  AttributesEx             属性 4  AttributesExB         ...

  8. 对冲的艺术——delta中性交易

    delta中性交易 delta中性交易——外行话 delta中性交易就是构造一个含有期权头寸的组合,使其不受标的股票或指数价格小幅变动的影响.换句话讲,无论标的价格是涨还是跌,组合的市值始终保持不变. ...

  9. 3、C#入门第3课

    1.c#中一个解决方案 里面两个程序 怎么一个启动另一个? 我一个解决方案下,有两个工程,我想让A工程在适当时候,启动B工程,比如A中有个按钮,一点,B工程就启动了. System.Diagnosti ...

  10. PostgreSQL的权限查询

    查看哪些用户对表sns_log_member_b_aciton有哪些权限: sns_log=> \z sns_log_member_b_aciton Access privileges Sche ...