的例子来说明夯在处理80w数据暂时现象。
1。查询业务表的容量,并查看总共超过200个W条目。
SQL select count(*)>从tb_bj_banker_etl;
二百五十五万二千三百八十一
2。查询表中应该删除的重复数据量,总共超过80个W条
SQL select count(*)>从tb_bj_banker_etl哪里(ID)在(选择身份,选择),第二部分是正确的。
八十三万零九十九
三.因此,在晚上工作之前,执行以下语句和脚本以获得重。
SQL >删除tb_bj_banker_etl哪里(ID)在(选择从tb_bj_banker_etl ID,ID),第二部分是正确的。
提交;
4和第二天,当您到达现场时,会发现昨晚在开发工具中执行的语句仍在执行中。
首先,超过80 W的数据出去了一个晚上,没有完成。这绝对是个问题。
有人怀疑有一张锁着的桌子。
然后查询是否有锁定表的用户。
选择
A.OWNER --对象的用户
a.object_name,对象的名字
B.XIDUSN,
B.XIDSLOT,
B.XIDSQN,
b.session_id、锁表用户的会话
b.oracle_username,-锁表用户ORACLE用户名
b.os_user_name、锁表用户的操作系统登录的用户名
b.process,
b.locked_mode,
C.MACHINE -锁表用户的计算机名
c.status,-锁表的状态
c.server,
C.SID,
c.serial #,
c.program --锁定表用户数据库管理工具
从
all_objects一,
V locked_object美元B,
系统gv_ $ SESSION C
哪里
a.object_id = b.object_id
并结合b.process =
以1,2
在下面的结果中,我们可以看到锁表仅仅是重启语句的启动会话,没有其他用户导致锁表。这表明该句子仍在执行中,并且由于怀疑,它开始试图解决它。
1 bjhyl tb_bj_banker_etl 15189000913 bjhyl管理员4036:972 3工作组 backdb积极致力于9133381 plsqldev.exe
2 bjhyl tb_bj_banker_etl 15189000913 bjhyl管理员4036:972 3工作组 backdb活动专用64941791 plsqldev.exe
3 bjhyl tb_bj_banker_etl 15189000913 bjhyl管理员4036:972 3工作组 backdb活动专用81727777 plsqldev.exe
4 bjhyl tb_bj_banker_etl 15189000913 bjhyl管理员4036:972 3工作组 backdb活动专用8411981 plsqldev.exe
5。利用子批解决捣打问题
由于直接重量不能顺利进行,那么按重量分级法的思想,试一下。
对于第一次uff1a
删除从tb_bj_banker_etl哪里(ID)在(选择ID从tb_bj_banker_etl组,从),上半场的后半段才是正道。
承诺;
第二次uff1a
删除从tb_bj_banker_etl哪里(ID)在(选择ID从tb_bj_banker_etl组,从),上半场的后半段才是正道。
承诺;
对.
对.
对.
第八次:
删除从tb_bj_banker_etl哪里(ID)在(选择ID从tb_bj_banker_etl组,从),上半场的后半段才是正道。
承诺;
结果:通过将大约800000个数据为一个操作10w数据,使用了总共超过140秒,并去除80万数据的目标已经完成。但是,如何处理冲压死亡状况直接,有必要跟进随访分析。
以上是夯死当处理80w数据暂时的全过程,希望能帮助你。