互联网服务sql优化

如何优化增、删、改SQL的执行效率?

洪烨老师,如何优化增、删、改SQL的执行效率?向您请教。显示全部
洪烨老师,如何优化增、删、改SQL的执行效率?向您请教。收起
参与7

查看其它 4 个回答finix的回答

finixfinix数据库架构师中国银行
插入可以考虑先插入到缓存区,再复合插入.

update比较复杂,在update背后其实隐藏着潜在的约束关系:定义用于更新其他数据集的数据为源数据,被更新的数据称为目标数据,原数据集合与目标数据之间的关联键,在源数据集中一定唯一。不会存在着目标数据一次更新过程中被更新2次。
update可能出现更新丢失这种比较隐蔽的错误
错误:
update test1
set test1.name=(select test2.name from test2 where test1.id=test2.id)
正确:
update test1
set test1.name=(select test2.name from test2 where test1.id=test2.id)
where test1.id in (select id from test2);
还可以可以用mege语句来避免更新丢失:
merge into test1
using test2
on (test1.id=test2.id)
when matched then
   update set test1.name=test2.name;
在oracle里面还可以写成更新可更新视图的方法

delete语句产生的重做日志量比较大,在删除比较多的时候,可以考虑把delete语句转化为insert语句
这样产生的日志量会少些

此外考虑到增删改与索引复杂的关系,这里面也有很多
政府机关 · 2014-05-26
浏览519

回答者

finix
数据库架构师中国银行

finix 最近回答过的问题

回答状态

  • 发布时间:2014-05-26
  • 关注会员:1 人
  • 回答浏览:519
  • X社区推广