目前真正影响性能的,不是CPU,不是内存,而是I/O。
物理存储结构:
Data files
Redo Log Files -- 重点,会有历史存档,因此初始化时要分配足够大的空间。
Control Files
Parameter Files
Alter Files
?
逻辑存储结构:
Table Space -- 重点。可以对应多个Data Files。
?
回滚段 -- 重点。功能:当某些数据行被其它操作lock时,可以从回滚段读取原始数据。
建议:任何Oracle参数设置,尽量使用Oracle本身提供的图形化工具,并使之自动智能动态设置。
物理:DataBase
逻辑:Instance:包括Table Space和数据存储
Memory Structure: System Global Area (SGA) 和 Program Global Area
SGA:为整个server服务。
Database Buffer Cache -- 保存最近使用最多的blocks of data和index。分配空间要大。
Redo Log Buffer -- Redo Log File 的入口。
Shared Pool -- 把对sql语句的解析结果(包括分析树、数据存储结构、执行计划等)暂时存放在内存,供下次使用时直接调用(原则:严格匹配。因此编程时要尽量写同样的sql语句。),从而节省解析时间。里面存储:大部分系统表(sysobject等)的内容;编译对象(SP、触发器等)及其解析结果;
Java Pool
Large Pool -- 通过这个设置可以调I/O server processes(是调I/O的吞吐量,不能调次数。次数是CPU决定的。),调整这个空间大小能对性能起到立竿见影的效果。
Streams Pool -- 远程表在本地的只读拷贝。
PGA:为某个私有的后台进程服务。
如果该进程较多用游标,或计算量大,或需要的内存空间大,就要把PGA设置大。
How To Work:
。。。流程
其它:
删除表的两种方法:delete 和 truncate,前者属于sql操作,记录日志;后者不属于数据库操作,而是相当于操作数据文件,不记录日志。
每增加一个log in,sybase只需多耗14K内存,而Oracle需要2M。
能指定数据库恢复到某个时间点。sybase通过load transaction,oracle通过读redo log。
Oracle有很多备份方式,但恢复很麻烦。版本11g添加了flash back,类似一键恢复。有三个级别:行级、表级、数据库级。但这个功能要耗费极大的硬盘空间。Oracle备份尽量不用手工方式,容易导致无法恢复;尽量用Over Manager