11.Oracle执行sql查询语句的主要步骤?
parse,execute,fetch。
其中在parse中,服务器进程先检查share pool中是否已经存在相同的sql,如果不存在,则检查sql是否正确,通过查看数据字典来检查sql表和列的定义,对所操作的对象加编译锁,检查引用对象的用户权限,生成执行该sql语句所需的优化执行计划,将sql语句和执行计划装入共享的sql区中。
12.oracle实例的系统全局区?
oracle实例的内存结构
13.共享池的组成?
包括库高速缓冲区(SQL/PLSQL),数据字典高速缓冲区
14.库高速缓冲区的工作原理?
服务器进程将SQL语句的正文和编译后的代码以及执行计划都放在共享池的库高速缓存中。进行编译时,服务器进程首先会在共享池中搜索是否有相同的SQL或PL/SQL语句(正文),如果有就不进行任何后续的编译处理,而是直接使用已存在的编译后的代码或者执行计划。
15.数据库字典高速缓冲区的工作原理?
当Oracle在执行SQL语句时,服务器进程将把数据文件,表、索引、列、用户和其他的数据对象的定义和权限信息放入数据字典高速缓存。
16.怎样设置共享池?
SQL>alter system set share_pool_size=32M
17.数据库高速缓冲区的工作原理
服务器进程首先在数据库高速缓冲区中搜寻所需的数据,如果找到就直接使用而不进磁盘操作;如果没找到就将进行磁盘操作把数据文件中的数据读到数据库高速缓冲区中。可以使用参数文件中的DB_BLOCK_SIZE 和DB_BLOCK_BUFFERS两个参数来设置高速缓冲区的大小。
SQL>ALTER SYSTEM SET DB_BLOCK_SIZE = 48 M
18.重做日志缓冲区的工作原理?
Oracle 在使用任何的DML和DDL操作改变数据之前都将恢复所需的信息,在写数据库高速缓冲区之前,先写入重做日志缓冲区。与查询语句不同的是,其只有编译和执行两个步骤。
19.oracle执行update语句的步骤?
(1)如果数据和回滚数据不在数据库高速缓存其中,则Oracle 服务器进程将把他们从数据文件中读到数据库高速缓冲区中。
(2)Oracle服务器进程在要修改的数据行上加锁。
(3)Oracle服务器进程将数据的变化信息和回滚所需的信息都记录在重做日志缓冲区中。
(4)Oracle服务器进程将回滚所需的原始值和对数据所做的修改都写入数据库高速缓冲区。之后在数据
库高速缓冲区中所有的这些数据块都将被标为脏缓冲区,因为此时内外存的数据是不同的(不一致的)。
20.怎样设置内存缓冲区的大小?
Oracle 是用所谓的区组来管理SGA的内存的。区组就是连续的虚拟内存区,是oracle分配和回收内存区的基本单位。至少包括3个区组:SGA固定区,数据库高速缓冲区,共享池。可以通过ALTER SYSTEM SET来设定,但大小不能超过SGA_MAX_SIZE所设定的值。
21.怎样获取内训缓冲区信息?
使用下面的命令:
SQL> show parameter
SQL> show sga
SQL> col name for a20
SQL> col value for a25
SQL> select name, type, value from v$parameter where name = 'sga_max_size';
22.重做日志写进程的工作原理?
负责将重做日志缓冲区的记录顺序的写到重做日志文件中。
23.快速提交技术?
既能保证Oracle系统的效率又能保证在系统崩溃的情况下所有提交的数据可以得到恢复。
24.数据库写进程的工作原理?
数据库写进程负责将数据库高速缓冲区中的脏缓冲区中的数据写到数据文件上。为了提高效率,数据库写进程并不是数据库高速缓冲区中的数据一有变化就写数据文件,而是积累了足够多的数据一次写一批内存数据块到数据文件上。下列事件发生时写:
当脏缓冲区的数量超过了所设定的限额。
当多设定的时间间隔已到。
当有进程需要数据库高速缓冲区却找不到空闲的缓冲区时。
当校验点发生时。
当某个表被删除或者被截断时。
当某个表空间被设置为只读状态时。
当使用类似于ALTER TABLESPACE users BEGIN BACKUP 的命令对某个表空间进行联机备份时。
当某个临时表空间被设置为只脱机状态或正常状态时等。
25.系统监督进程的工作原理?
由于种种原因Oracle系统崩溃了,当数据库重新启动时,系统监督进程将自动地执行Oracle实例的恢复工作。步骤如下:
(1)执行前滚,即将已经写到重做日志文件中但还没写到数据文件中的提交数据写到数据文件中。
(2)在前滚完成后立即打开数据库,此时用户就可以登录并使用数据库了。
(3)回滚没有提交的事务(数据)。另外,服务器进程也可以进行回滚但是只是回滚他所用到的加锁的数据行。
除此之外,SMON进程还要执行如下的磁盘空间的维护工作:
回收或组合数据文件中相连的空闲区。
释放临时段,将他们还给数据文件以作为空闲区使用。
26.进程监督进程的工作原理?
当某个进程崩溃时,进程监督进程将负责它的清理工作。PMON进程将负责如下的清理工作:
回滚用户当前的事务
释放用户所加的所有表一级和行一级的锁
释放用户所有的其他资源等。
27.引入校验点的工作原理?
该事件是在当DBWR进程把在SGA中所有已经改变的数据库高速缓冲区中的数据写到数据文件上时产生。是为了提高系统的效率。
28.引入归档日志文件和归档日志进程的原因?
在事件发生时,oracle要将校验点号码写入所有有关的数据文件的文件头中,还要将校验点号码、重做日志序列号、归档日志名称和SCN号都写到控制文件中。为了方便起见,一般的生产和商业数据库的校验点间隔是在半小时以上。
29.归档日志进程的工作原理?
ARCn进程将把切换的重做日志文件复制到归档日志文件中。