ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧分享
2013-03-26 00:00
1051 查看
UPDATE
1、先备份数据(安全、提高性能)。
2、分批更新,小批量提交,防止锁表。
3、如果被更新的自动有索引,更新的数据量很大,先取消索引,再重新创建。
4、全表数据更新,如果表非常大,建议以创建新表的形式替代更新。
DELETE
1、分批提交、减少锁表时间、减少回滚段压力。
2、大批量数据删除加上rownum<1000。
3、大批量删除,禁止中途ctrl+c,或kill调session。
4、大量数据删除后最好重建索引,分析表。
INSERT
1、关闭redo log(ALTER TABLE <TABLENAME> nologging;)
2、使用/*+ append */ 暗示。
3、绑定变量。
4、批量提交。
5、如果表是静态,独占使用,可以去掉索引和其他相关约束。
6、大量灌入数据后要分析表。
7、使用SQL load快速装载数据。
1、先备份数据(安全、提高性能)。
2、分批更新,小批量提交,防止锁表。
3、如果被更新的自动有索引,更新的数据量很大,先取消索引,再重新创建。
4、全表数据更新,如果表非常大,建议以创建新表的形式替代更新。
DELETE
1、分批提交、减少锁表时间、减少回滚段压力。
2、大批量数据删除加上rownum<1000。
3、大批量删除,禁止中途ctrl+c,或kill调session。
4、大量数据删除后最好重建索引,分析表。
INSERT
1、关闭redo log(ALTER TABLE <TABLENAME> nologging;)
2、使用/*+ append */ 暗示。
3、绑定变量。
4、批量提交。
5、如果表是静态,独占使用,可以去掉索引和其他相关约束。
6、大量灌入数据后要分析表。
7、使用SQL load快速装载数据。
相关文章推荐
- ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧
- ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧分享
- Hibernate SQL优化技巧dynamic-insert="true" dynamic-update="true"
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
- 当要在 Oracle 中之心批量 INSERT、UPDATE 和 DELETE 操作时,可以使用 FORALL 语句。比for loop效率高
- SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete)
- sqlserver update delete 别名的使用 与 oracle 的区别
- 在sql的函数里面不能使用insert语句,估计update、delete也不行,改为存储过程就行了。
- Hibernate SQL优化小技巧使用dynamic-insert="true" dynamic-update="true"
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
- 使用mybatis执行对应的SQL Mapper配置中的insert、update、delete等标签操作,数据库记录不变
- Sql Server Trigger 的使用(Insert ,Update,Delete...)
- Hibernate SQL优化技巧dynamic-insert="true" dynamic-update="true"
- Oracle PL/SQL 对同一table执行多条insert、update、delete遇到的问题
- Sql Server Trigger 的使用(Insert ,Update,Delete...)
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
- oracle中execute immediate的使用(select/insert/update/delete)(转)
- oracle中execute immediate的使用(select/insert/update/delete)(
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)