SQL Server 大数据量insert into xx select慢的解决方案
2014-01-07 11:32
441 查看
最近项目有个需求,把一张表中的数据根据一定条件增删改到另外一张表。按理说这是个很简单的SQL。可是在实际过程中却出现了超级长时间的执行过程。
后来经过排查发现是大数据量insert into xx select造成。
原因在于当insert into xx select数据量达到10万级别,同时又有Update和Delete操作表。容易造成锁表。
经过研究重构了SQL语句问题解决。具体解决方案如下:
1.update 和Delete操作当成一个事务处理
2.Insert into前先删除索引
3.将需要insert into的数据,拆分成不大于3000条/次去执行。
后来经过排查发现是大数据量insert into xx select造成。
原因在于当insert into xx select数据量达到10万级别,同时又有Update和Delete操作表。容易造成锁表。
经过研究重构了SQL语句问题解决。具体解决方案如下:
1.update 和Delete操作当成一个事务处理
2.Insert into前先删除索引
3.将需要insert into的数据,拆分成不大于3000条/次去执行。
相关文章推荐
- 优化用SQL语句INSERT INTO … SELECT插入数据时锁全表的问题
- 复制数据select into from 与 insert into select 区别鉴赏
- 利用触发器和INSERT INTO ...SELECT...解决Oracle 数据匹配问题
- SQL Server 2005 导出包含(insert into)数据的SQL脚本 (使用存储过程)
- SQL Server ->> SQL Server 2016重要功能改进之 -- INSERT SELECT时并发插入数据
- 把SQL SERVER里表里的数据导出成为insert into 脚本
- SQL SERVER:把表里的数据导出成为INSERT INTO脚本的存储过程
- SQL Server 2005 导出包含(insert into)数据的SQL脚本 (使用存储过程)
- 把SQL SERVER里表里的数据导出成为insert into 脚本
- mysql表复制数据-insert into select
- 【转】把一个表的数据插入到另一个表:INSERT INTO SELECT / SELECT INTO
- Insert into select SQL跨数据库复制数据
- insert into select 批量加载出错解决方案
- 把SQL SERVER里表里的数据导出成为insert into 脚本
- SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等) C# MD5 加密,解密 C#中DataTable删除多条数据
- SQL SERVER里表里的数据导出成为insert into操作方法
- SQL SERVER – Insert Data From One Table to Another Table – INSERT INTO SELECT – SELECT INTO TABLE
- 把SQL SERVER里表里的数据导出成为insert into 脚本
- sql server中表数据生成insert into插入语句
- 插入数据 insert into / select