SQL 二
1.执行DML语句的步骤:在数据库缓冲区缓存中搜索相关的块;将块从数据文件复制到缓冲区;将变更向量写入日志缓冲区;将变更向量应用于数据库缓冲区缓存。
2.重做可以保护的段类型:索引段、表段、撤销段。
3.如果两个会话彼此死锁,Oracle会回滚一个会话的语句,允许会话继续进行。
4.执行一条DML语句时,数据和撤销块在数据库缓冲区缓存中更新,且更新也会转入日志缓冲区,对数据块和撤销块的更改都受到重做的保护。
5.所有DML都会生成撤销记录,所以减少撤销记录的生成的唯一方法是重新设计应用程序。
6.如果撤销段满了,撤销段的大小会增加;只有并发事务比段更多,才创建另一个撤销段;事务不能跨撤销段。
7.一个撤销段可以保护许多事务,但Oracle会尽量避免这种情况;一个数据库可以有多个撤销表空间,但一个实例只能使用一个撤销表空间;一个撤销段可以横跨许多数据文件;撤销和回滚段可以共存,但数据库只能使用其中一个。
8.撤销段根据需求创建,撤销段的数量没有限制。
9.撤销表空间最优大小:使用为期10分钟的UNDBLKS最大值,除以600得到每秒钟的撤销块生成率,并乘以块大小得到的字节值,在乘以MAXQUERYLEN的最大值,得到需要的空间(如果最高撤销生成率与实践最长的查询一致),除以10亿得到GB结果。
10.解决“快照过老”:调整查询,使他们运行的更快;增加撤销表空间的大小;启用RETENTION GUARANTEE。