- 使用绑定变量的SQL效率更高。因为硬编码的语句对于Oracle来说完全是全新的语句,每次都需要编译。绑定变量的语句只需编译一次。
- runstats脚本
- Oracle 只在修改时才对数据加行级锁, 正常情况下不会升级到块级锁或表级锁
- 读(read)不会被写(write)阻塞
- 写入器想写某行数据,但另一个写入器已经锁定了这行数据,此时该写入器才会被阻塞
- 读取器绝对不会阻塞写入器
- 多版本:使用SCN(System Commit Number)记录Oracle内部时钟,每个时间节点均可回溯。
eric@PDBORCL> variable SCN number
eric@PDBORCL> exec :scn := dbms_flashback.get_system_change_number
eric@PDBORCL> delete from emp;
13 rows deleted.
eric@PDBORCL> commit;
Commit complete.
eric@PDBORCL> select * from (select count(*) from emp),
2 (select count(*) from emp as of scn :scn);
COUNT(*) COUNT(*)
---------- ----------
0 13
此项功能保证了读一致性,而不必使用读锁。
- 实例:Oracle的进程和内存;
数据库:保存数据的物理文件。 -
init.ora
是遗留参数文件,不太好,必须安装在管理服务器的机器上才行;spfile$ORACLE_SID.ora
是新的服务器参数文件,仅存放在服务器上,比较好。其设置命令为:
alter system set parameter=value <comment='text'> <deferred> <scope=memory|spfile|both> <sid='sid|*'>