Oracle笔试题

一、ORACLE实例与数据库有什么区别?  (容易)

ORACLE实例 = 进程 + 进程所使用的内存(SGA)

实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!

数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件

数据库是永久的,是一个文件的集合。

ORACLE实例和数据库之间的关系

1.临时性和永久性

2.实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义

3.一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库

4.一个数据库可被许多实例同时装载和打开(即RAC),RAC环境中实例的作用能够得到充分的体现!

二、SGA主要有那些部分,主要作用是什么  (容易)

数据库信息存储在SGA中,并由多个数据库进程共享。SGA有多个内存结构,按其作用不同,可分为共享池、数据缓冲区及日志缓冲区。

共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。如果共享池太小,则运行SQL、PL/SQL程序所用的时间就会较长,影响数据库的性能。

数据缓冲区用于存储从磁盘数据文件中读入的数据,所有用户共享。数据缓冲区的大小对数据库的读取速度有直接的影响。

日志数据首先产生于日志缓冲区,当日志缓冲区的日志数据达到一定数量时,由日志写入进程LGWR将日志数据写入日志文件中。

三、Oracle进程主要有哪些,作用是什么    (容易)

Oracle进程主要有用户进程、服务器进程和后台进程。

用户进程是一个需要与Oracle服务器进行交互的程序。

服务器进程是一个用于处理连接到该实例的用户进程的请求。服务器进程和用户进程通信并为所连接的用户请求服务。

后台进程主要作用是使系统性能最好和协调多个用户。其主要包括进程监控进程(PMON,在用户进程出现故障时执行进程恢复)、系统监控进程(SMON,在实例启动时执行实例恢复、整理数据文件的自由空间、释放不再使用的临时段)、数据写入进程(DBWR,主要负责将数据缓冲区内的数据写入数据文件)、日志写入进程(LGWR,主要负责将日志数据区内的数据写入日志文件)及检查点进程(CKPT,其作用是保证所有修改过的数据库缓冲区都被写入数据库文件)。

四、数据描述有通常有哪几种形式?(中等)

数据描述有物理描述和逻辑描述两种形式。

物理数据描述指数据在存储设备上的存储方式,物理数据是实际存放在存储设备上的数据。

逻辑数据描述指程序员或用户用以操作的数据形式,是抽象的概念化数据。

五、和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么(中等)

Oracle 8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存;如果排序操作不能在sort_area_size中完成,就会用到temp表空间。

Oracle 9i中如果workarea_size_policy=auto时,排序在pga内进行,通常pga_aggregate_target的1/20可以用来进行disk sort;如果workarea_size_policy=manual时,排序需要的内存由sort_area_size决定。

在执行order by/group by/distinct/union/create index/index rebuild/minus等操作时,如果在pga或sort_area_size中不能完成,排序将在临时表空间进行(disk sort)。

临时表空间主要作用就是完成系统中的disk sort。

-

六、Oracle有哪些用户?其默认口令和权限是什么?(容易)

当新建一个数据库时,Oracle将创建几个默认数据库用户模式,如SYS、SYSTEM和SCOTT。

SYS用户是Oracle中的超级用户,它的默认口令是change_on_install。数据库中数据字典的所有表和视图都存储在SYS模式中。

SYSTEM用户也有管理员权限,它的默认口令是manager。该用户创建显示管理信息的表和视图,以及Oracle工具所使用的内部表和视图。

SCOTT用户是一个示范帐户,其默认口令为tiger,此帐户包含4个示范表。

 

七、怎样查看哪些用户拥有SYSDBA、SYSOPER权限? (中等)

conn sys/change_on_install

select * from V_$PWFILE_USERS;

 

八、请简述SQL语言的组成、作用及其常用命令。(容易)

SQL语言分为数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)。

DDL用于定义SQL模式、基本表、视图和索引的创建和撤消操作。常用命令有:CREATE、ALTER、DROP。

DML用于数据的插入、修改、删除和查询。常用命令有:INSERT、UPDATE、DELETE、SELECT。

DCL用于对基本表的授权、完整性规则的描述和事务的控制等。常用的命令有:GRANT、REVOKE、COMMIT、SAVEPOINT、ROLLBACK。

 

九、数据库正常启动所经历的状态有哪几种 ? (中等)

STARTUP NOMOUNT 数据库实例启动

STARTUP MOUNT 数据库装载

STARTUP OPEN 数据库打开

 

十、varchar2,char两种数据类型有什么区别,如果数据表某字段输入”ABC”后储存,该字段数据类型分别为varchar2(10),char(10)存储字节长度以及内容有何区别?(中等)

varchar2数据类型与char数据类型的区别:

1、char数据类型的列长度是1-2000个字节,如果未指明大小,则默认其大小为1个字节。varchar2数据类型的列长度是1-4000个字节,定义该数据类型时,应指定其大小。

2、char数据类型如果用户输入的值小于指定的长度,数据库用空格填充至固定长度。而对于varchar2数据类型,如果用户输入的值小于指定的长度,则其长度为用户输入的值长度。

如果数据表某字段输入“ABC”后储存,该字段数据类型为varchar2(10),其存储字节长度为3,内容为“ABC”。

如果数据表某字段输入“ABC”后储存,该字段数据类型为char(10),其存储字节长度为10,内容为“ABC”(七个空格)。

十一、已知客户表a(id   name   address)   登陆流水表b(id   time)   购物流水表c(id   time   productid   productnum)

(1)求每个客户的最新登陆时间time,姓名name,客户id?

(2)查最新登陆并且已经购买商品的客户id,name,登陆的时间time(一条sql语句) (难)

(1)求每个客户的最新登陆时间time,姓名name,客户id

select  a.id,a.name,d.time  as  time

from  left  join  (select  id,max(time)  as  time from  group  by  id)  d

on  a.id =d.id   ;

(2) 查最新登陆并且已经购买商品的客户id,name,登陆的时间time

select  a.id,a.name,d.time  as  time

from  a,(select  id,max(time)  as  time  from  group  by  id)  d

where   a.id   =d.id

and   exists (select    from    where   id = a.id);

十二、已知学生表student中有班级classid,学号id,成绩grade

(1)计算各个班的平均成绩

(2)查找比该班平均成绩高的学生的班级classid,学号id,成绩grade (难)

(1)计算各个班的平均成绩

select  classid,avg(grade)  from  student  group  by  classid;

(2) 查找比该班平均成绩高的学生的班级classid,学号id,成绩grade

select  classid, id, grade

from  (select  classid,id,grade,

avg(grade)  over (partition  by  classid  order  by  classid, id)  as  avg_grade

from  student )

where  grade > avg_grade;

十三、绑定变量是什么?绑定变量有什么优缺点? (中等)

绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bind value在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool ;缺点是不能使用histogram,sql优化比较困难。

十四、请叙述事务的概念及其性质。(难)

事务是一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位,相当于操作系统环境中的“进程”概念。事务以BEGIN TRANSACTION 语句开始,以COMMIT语句或ROLLBACK语句结束。

事务必须有四个性质:

(1) 原子性:一个事务中所有对数据库操作是一个不可分割的操作序列。事务要么完事地被全部执行,要么什么也不做。

(2) 一致性:一个事务独立执行的结果将保证数据库的一致性,即数据不会因事务的执行而遭受破坏。

(3) 隔离性:在并发事务被执行时,系统应保证与这些事务先后单独执行时的结果一样,此时达到了隔离性要求。

(4) 持久性:一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中。

十五、请叙述锁定的概念及其优点。(中等)

锁定是数据库用来控制共享资源并发访问的机制。

锁定的优点:

(1)       一致性:一次只允许一个用户修改数据,从而提供统一的数据。

(2)       完整性:向所有用户提供正确的数据。如果一个用户进行了更改并保存,那么所做的更改反映给所有用户。

(3)      并发性:允许多个用户访问同一数据。

十六、两段锁协议规定所有事务要遵守哪些规则?(中等)

(1) 在对任何数据进行读写操作之前,事务首先要获得对该数据的锁定。

(2) 在释放一个锁之后,事务不再获得任何其它锁定。

所谓两段,就是每个事务分成前后两个阶段:增生阶段和收缩阶段。

增生阶段:也称为扩展阶段或申请锁阶段。在增生阶段中,事务可申请锁,但不能解除任何已取得的锁。

收缩阶段:也称为释放锁阶段。在收缩阶段中,事务可释放锁,但是不能申请新锁。

十七、请叙述表分区的概念及其优点。(容易)

表分区允许用户把一个表中的所有行分为几个部分,并将这些部分存储在不同的位置。被分区的表称为分区表,分成的每一部分称为分区。

对于包含大量数据的表来说,分区很有用。表分区有以下优点:

(1)改善表的查询性能,在对表进行分区后,用户执行SQL查询时可以只访问表中的特定分区而非整个表。

(2)表更容易管理,因为分区表的数据存储在多个部分中,按分区加载和删除数据比在表中加载和删除更容易。

(3)便于备份和恢复,可以独立地备份和恢复每个分区。

(4)提高数据安全性,将不同的分区分布在不同的磁盘,可以减少所有分区的数据同时损坏的可能性。

十八、Oracle提供的表分区有哪几种?请叙述他们的含义。(容易)

Oracle提供的表分区有:

(1)范围分区:范围分区根据表的某个列或一组列的值范围,决定将该数据存储在哪个分区上。

(2)散列分区:散列分区通过在分区键值上执行一个散列函数来决定数据的物理位置。

(3)复合分区:复合分区是范围分区和散列分区的结合。在创建复合分区时,先根据范围对数据进行分区,然后在这些分区内创建散列子分区。

(4)列表分区:列表分区允许用户明确地控制行到分区的映射。列表分区允许按自然方式对无序和不相关的数据集进行分组和组织。

十九、请阐述同议词的作用。你认为什么情况下要使用同义词?(中等)

同义词是数据库对象的一个别名。

同义词的作用有:简化SQL语句,隐藏对象的名称和所有者,为分布式数据库的远程对象提供了位置透明性,提供对对象的公共访问。

当一个用户访问另一个用户的数据库对象时,可以通过使用同义词,而无需指定模式前缀,就可以实现此用户对其它模式的数据库对象的访问。这些对象可以是表、视图、序列、过程、函数和程序包,甚至是其它同义词。

二十、什么是序列?在表中如何使用序列?(容易)

序列是用来生成唯一、连续的整数的数据库对象。

在表中使用序列:

(1)创建序列:

CREATE SEQUENCE sequence_name [START WITH startnum] [INCREMENT BY step];

(2)创建表时使用序列:

CREATE TABLE table_name ( uid smallint not null, …);

(3)插入数据时使用序列:

INSERT INTO table_name VALUES(sequence_name.NEXTVAL, …);

二十一、什么是视图,它与表的区别是什么?(容易)

在SQL中,外模式一级数据结构的基本单位是视图,视图是从若干基本表和(或)其他视图构造出来的表。我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,因此,视图被称为“虚表”,这是它与表的主要区别。

二十二、Oracle支持的索引有哪几种?(容易)

(1)唯一索引

(2)组合索引

(3)位图索引

(4)反向索引

(5)基于函数的索引

二十三、请解释每种索引,并写出其语法。(难)

1、唯一索引可以确保在定义索引的列中,表的任意两行的值都不相同,Oracle自动为表的主键列创建唯一索引。

其语法为:CREATE UNIQUE INDEX index_name ON table_name(column_name);

2、组合索引是在表中的多个列上创建的索引,可以提高检索数据的速度。

其语法为:CREATE INDEX index_name ON table_name(column_name);

3、反向键索引通常建立在一些值连续增长的列上,可以提高读取的性能。

其语法为:CREATE INDEX index_name ON table_name(column_name) REVERSE;

4、位图索引适用于低基数列,也就是不同值的数目比表的行数少的列。

其语法为:CREATE BITMAP INDEX index_name ON table_name(column_name);

5、基于函数的索引是指基于一个或多个列上的函数或表达式创建的索引,便于WHERE子句中包含函数或表达式以计算查询时使用。

其语法为:CREATE INDEX index_name ON table_name(表达式或函数);

二十四、sqlplus和sqlplus worksheet以及isqlplus三者之间的主要区别是什么?(中等)

sqlplus是命令行方式的工具,sqlplus worksheet则带有窗口风格,它们都是客户端;而isqlplus是B/S结构的,9i及以后的版本中有,可以通过标准浏览器方式来使用,无论你身在何处,只要相应的oracle服务启动即可。

二十五、请你简单叙述一下PL/SQL语言。(容易)

PL/SQL是一种块结构的语言,它将一组语句放在一个块中。构成PL/SQL程序的基本单元是逻辑块(如过程、函数或匿名块),每个逻辑块对应要解决的问题或子问题。

PL/SQL块共分为3个部分,分别为声明部分、可执行部分和异常处理部分。

二十六、属性数据类型有哪几种?如何使用?(容易)

属性数据类型包括两种,分别是%TYPE和%ROWTYPE。

1、%TYPE将某种数据类型的变量或列提供给其他变量。

其语法格式为:var1 table_name.column_name%TYPE;

其中声明了变量var1,它的数据类型与table_name表中的column_name字段的数据类型相同。

2、%ROWTYPE提供一种表示表中的某行的记录类型。

其语法格式为:var1 table_name%ROWTYPE;

其中声明了变量var1,可以用来存储从table_name表中提取的一个记录。

二十七、用游标机制协调SQL的集合处理方式所用的SQL语句有哪些?(容易)

与游标有关的SQL语句有下列四个:

(1) 游标定义语句(DECLARE)

(2) 游标打开语句(OPEN)

(3) 游标推进语句(FETCH)

(4) 游标关闭语句(CLOSE)

二十八、隐式游标和显式游标的区别是什么?(容易)

隐式游标在执行SQL语句时由Oracle自动生成,用户不能控制隐式游标。隐式游标用于检索一行。

显式游标由用户显式声明,用户对显式游标有完全控制权。显式游标用于返回多行的查询。

二十九、请描述显式游标的属性及其作用。(容易)

显示游标有以下4种属性,分别为:

(1)%ISOPEN:如果游标已打开,则返回true,否则返回false。

(2)%FOUND:如果成功处理了最后一行,则返回true。

(3)%NOTFOUND:如果提取最后一行失败,则返回true。

(4)%ROWCOUNT:返回处理的行数。

三十、过程和函数的区别是什么?(容易)

过程与函数都是执行某些操作的子程序,它是执行特定任务的模块。两者非常类似,只是函数的主要特性是它必须返回一个值,因此,有个RETURN子句,该子句在函数规范中指示变量值的数据类型。

三十一、怎样区分程序包中的公有项和私有项?(中等)

项是指子程序、类型、变量和常量。声明为公有的项可以在程序包之外使用,声明为私有的项不能在程序包之外使用。公有项通常是在程序包规格说明中声明、在程序包主体中定义的,而私有项只能在程序包主体中声明和定义。公有项可以用于全局目的,而私有项只能用于局部目的,只能在程序包内使用。

三十二、请解释什么是触发器?它与过程的区别是什么?(容易)

触发器是当特定事件出现时自动执行的代码块。

其与过程的区别在于:过程是由用户或应用程序甚至是触发器显式调用的,而触发器是由Oracle根据发生的事件而隐式激活的,它不能被直接调用执行。

三十三、请简述Oracle触发器的类型及其运行时机。(中等)

Oracle触发器分为DML触发器、模式(DDL或用户事件)触发器和数据库级触发器。

(1)       DML触发器:当DML语句在表中发生时执行。DML语句包括以下3种类型:

A、  语句级触发器:无论受触发语句影响的行数是多少,都只激活一次。

B、  行级触发器:每当触发器语句影响表时就会激活行级触发器,行级触发器在被修改的每一行上执行一次。

C、  INSTEAD OF触发器:允许用户修改不能使用DML语句修改的视图。INSTEAD OF触发器只可用于视图,不可用于表。

(2)       模式(DDL或用户事件)触发器:在数据库模式中执行DDL语句时激活。

(3)       数据库(系统事件)触发器:在发生LOGOFF(退出)、LOGON(登录)、STARTUP(打开)、SHUTDOWN(关闭)数据库和SERVERERROR(生成错误消息)等系统事件时执行。

三十四、请举例说明Oracle故障的类型。(难)

Oracle的故障类型分为语句故障、用户进程故障、实例故障和介质故障。

(1)       语句故障:在执行SQL语句过程中发生的逻辑故障可导致语句故障。如用户编写的SQL语句无效,就会发生逻辑故障。

(2)       用户进程故障:当用户程序出错而无法访问Oracle数据库时,就会发生用户进程故障。如异常断开或终止进程都会导致用户进程故障。

(3)       实例故障:当Oracle的数据库实例由于硬件或软件问题而无法运行时,就会发生实例故障。硬件问题包括意外断电,而软件问题可能是服务器操作系统崩溃。

(4)       介质故障:是当一个数据库文件、文件的部分或磁盘不能读或不能写时出现的故障。例如,硬盘磁头损坏会导致数据库文件完全破坏。

三十五、介质故障是如何发生的?(难)

在写入或读取数据库操作所需的文件时,可能会出错。这些错误称为介质故障或磁盘故障。例如,磁头崩溃会导致存储在数据库中的文件完全损坏。

发生介质故障以后,对控制文件和日志文件执行的数据库操作取决于这些文件是否已通过复用保护起来。复用是一个文件存储在其他几个磁盘上的过程,如果其中一个磁盘发生介质故障,则可从其他的磁盘中获取该文件。

十六、归档是什么含义(容易)

关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。

其对数据库备份和恢复有下列用处:

数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。

在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。

数据库可运行在两种不同方式下:

NOARCHIVELOG方式或ARCHIVELOG 方式数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档,如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。

三十七、解释无归档日志方式(中等)

无归档日志方式可以防止数据库出现实例故障,但无法避免磁盘或介质故障。对于从实例故障恢复,只有最近对一组联机日志文件中的数据库所做的修改才有效。

对数据库采用无归档日志方式将禁用联机日志文件的归档。在此模式下,用户需定期进行数据库备份,但无法进行联机备份。只有在数据库关闭时进行的完全备份才可用于恢复在无归档日志方式下操作的数据库。

三十八、解释冷备份和热备份的不同点以及各自的优点(中等)

热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。

热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)

三十九、如果一个表在2004-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,如何恢复?(难)

手工拷贝回所有备份的数据文件

startup mount;

sql alter database recover automatic until time ’2004-08-04:10:30:00′;

alter database open resetlogs;

四十、表A(含a、b、c三个字段)有n(n>10000)条记录,现在想每次从A表中取出10条记录(不足10的全部取出),要求每次查询从上次查询的最后一条开始取10条.记录集按时间排序。(中等)

select A.a,A.b,A.c

from (select row_number() over(order by c) num,a,b,c

from 表A)A

where num > startnum

and num <= endnum

1. 解释冷备份和热备份的不同点以及各自的优点

解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)

2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?

解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。

3. 如何转换init.ora到spfile?

解答:使用create spfile from pfile 命令

.

4.  解释data block , extent 和 segment的区别(这里建议用英文术语)

解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.

5. 给出两个检查表结构的方法

解答:1、DESCRIBE命令

2、DBMS_METADATA.GET_DDL 包

6. 怎样查看数据库引擎的报错

解答:alert log.

7. 比较truncate和delete 命令

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间。

8. 使用索引的理由

解答:快速访问表中的data block

9.    给出在STAR SCHEMA中的两种表及它们分别含有的数据

解答:Fact tables 和dimension tables.  fact table 包含大量的主要的信息而 dimension tables 存放对fact table 某些属性描述的信息

10. FACT Table上需要建立何种索引?

解答:位图索引(bitmap index)

11. 给出两种相关约束?

解答:主键和外键

12. 如何在不影响子表的前提下,重建一个母表

解答:子表的外键强制实效,重建母表,激活外键

13. 解释归档和非归档模式之间的不同和它们各自的优缺点

解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高

.

14. 如何建立一个备份控制文件?

解答:Alter database backup control file to trace.

15. 给出数据库正常启动所经历的几种状态 ?

解答:

STARTUP NOMOUNT – 数据库实例启动

STARTUP MOUNT      – 数据库装载

STARTUP OPEN          – 数据库打开

16. 哪个column可以用来区别V$视图和GV$视图?

解答: INST_ID 指明集群环境中具体的某个instance .

17. 如何生成explain plan?

解答:

运行utlxplan.sql. 建立plan 表针对特定SQL语句,使用 explain plan set statement_id = ‘tst1′ into plan_table 运行utlxplp.sql 或 utlxpls.sql察看explain plan

18. 如何增加buffer cache的命中率?

解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用 alter system set db_cache_size 命令

19. ORA-01555的应对方法?

解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本

20. 解释$ORACLE_HOME和$ORACLE_BASE的区别?

解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录

21. 如何判断数据库的时区?

解答:SELECT DBTIMEZONE FROM DUAL;

22. 解释GLOBAL_NAMES设为TRUE的用途

解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE,在建立数据库链接时就必须用相同的名字连结远程数据库

23.如何加密PL/SQL程序?

解答:WRAP

24. 解释FUNCTION,PROCEDURE和PACKAGE区别

解答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而function将返回一个值在另一方面,Package是为了完成一个商业功能的一组function和proceudre的集合

25. 解释TABLE Function的用途

解答:TABLE Function是通过PL/SQL逻辑返回一组纪录,用于普通的表/视图。他们也用于pipeline和ETL过程。

26.  举出3种可以收集three advisory statistics

解答:Buffer Cache Advice, Segment Level Statistics,  Timed Statistics

27.  Audit trace 存放在哪个oracle目录结构中?

解答:unix $ORACLE_HOME/rdbms/audit   Windows the event viewer

28.  解释materialized views的作用

解答:Materialized views 用于减少那些汇总,集合和分组的信息的集合数量。它们通常适合于数据仓库和DSS系统。

29.  当用户进程出错,哪个后台进程负责清理它

解答: PMON

30.  哪个后台进程刷新materialized views?

解答:The Job Queue Processes.

31.  如何判断哪个session正在连结以及它们等待的资源?

解答:V$SESSION / V$SESSION_WAIT

32.  描述什么是 redo logs

解答:Redo Logs 是用于存放数据库数据改动状况的物理和逻辑结构。可以用来修复数据库。

33.  如何进行强制LOG SWITCH?

解答:ALTER SYSTEM SWITCH LOGFILE;

34. 举出两个判断DDL改动的方法?

解答:你可以使用 Logminer 或 Streams

35.  Coalescing做了什么?

解答:Coalescing针对于字典管理的tablespace进行碎片整理,将临近的小extents合并成单个的大extent.

36.  TEMPORARY tablespace和PERMANENT tablespace 的区别是?

解答:A temporary tablespace 用于临时对象例如排序结构而 permanent tablespaces用来存储那些‘真实’的对象(例如表,回滚段等)

37.  创建数据库时自动建立的tablespace名称?

解答:SYSTEM tablespace.

38.  创建用户时,需要赋予新用户什么权限才能使它联上数据库。

解答:CONNECT

39.  如何在tablespace里增加数据文件?

解答:ALTER TABLESPACE <tablespace_name> ADD DATAFILE <datafile_name> SIZE <size>

40.  如何变动数据文件的大小?

解答:ALTER DATABASE DATAFILE <datafile_name> RESIZE <new_size>;

41.  哪个VIEW用来检查数据文件的大小?

解答: DBA_DATA_FILES

42.  哪个VIEW用来判断tablespace的剩余空间

解答:DBA_FREE_SPACE

43.  如何判断谁往表里增加了一条纪录?

解答:auditing

44. 如何重构索引?

解答: ALTER INDEX <index_name> REBUILD;

45. 解释什么是Partitioning(分区)以及它的优点。

解答:Partition将大表和索引分割成更小,易于管理的分区。

46.  你刚刚编译了一个PL/SQL Package但是有错误报道,如何显示出错信息?

解答:SHOW ERRORS

47.  如何搜集表的各种状态数据?

解答: ANALYZE

The ANALYZE command.

48. 如何启动SESSION级别的TRACE

解答:  DBMS_SESSION.SET_SQL_TRACE

ALTER SESSION SET SQL_TRACE = TRUE;

49.  IMPORT和SQL*LOADER 这2个工具的不同点

解答:这两个ORACLE工具都是用来将数据导入数据库的。

区别是:IMPORT工具只能处理由另一个ORACLE工具EXPORT生成

的数据。而SQL*LOADER可以导入不同的ASCII格式的数据源

50.用于网络连接的2个文件?

解答: TNSNAMES.ORA and SQLNET.ORA

原文地址:https://www.cnblogs.com/liuzhuqing/p/7480726.html