OCA/OCP认证考试指南全册(第3版) Oracle Database 12c(1Z0-061,1Z0-062,1Z0-063) (计算机与信息)
上QQ阅读APP看书,第一时间看更新

6.9 自测题

(1) 下面哪些命令可以回滚(选择所有正确答案)?

A.COMMIT

B. DELETE

C.INSERT

D.MERGE

E.TRUNCATE

F.UPDATE

(2) 如果UPDATE或者DELETE命令包含一个WHERE子句,它给出了几行的范围。如果在执行过程中出现错误,会发生什么情况?该命令是多语句事务中的几个命令之一(选择一个最佳答案)。

A.命令会跳过导致错误的行继续执行

B.命令会在出现错误的地方停止,已经更新或者删除的行会保持更新或删除状态

C.会回滚出现错误之前命令已经完成的工作,但事务已经完成的工作会保留

D.会回滚整个事务

(3) 考察下面这条SELECT语句的结果:

        SQL> select * from t1;
                C1          C2         C3          C4
        ---------- ---------- ---------- ----------
                1           2          3           4
                5           6          7           8

如果发出语句:

        insert into t1 (c1, c2) values(select c1, c2 from t1);

它为什么会失败 (选择一个最佳答案)?

A.因为没有为所有表的列提供值:C3和C4应为NULL

B.因为子查询返回多行:它需要WHERE子句将返回的行数限制为1

C.因为子查询不是标量:它应该使用MAX或者MIN来生成标量值

D.因为VALUES关键字和子查询不能同时使用

E.它会成功,插入C3和C4为NULL的两行

(4) 要求插入一行然后更新它。采取的步骤应该是什么顺序(选择一个最佳答案)?

A.INSERT, UPDATE, COMMIT

B. INSERT, COMMIT, UPDATE, COMMIT

C.INSERT, SELECT FOR UPDATE, UPDATE, COMMIT

D.INSERT, COMMIT, SELECT FOR UPDATE, UPDATE, COMMIT

(5) 下面哪些命令会删除表中的所有行(选择所有正确答案)?

A.没有WHERE子句的DELETE命令

B. DROP TABLE命令

C.TRUNCATE命令

D.UPDATE命令,将各列设置为NULL,且不包含WHERE子句。

(6) 用户JOHN更新了一些行,在他提交这些变更之前,他请求用户ROOPESH登录并检查这些变更。下面哪条语句是正确的(选择一个最佳答案)?

A.ROOPESH可以看到这些变更但无法更改它们,因为JOHN已经锁定了这些行

B. ROOPESH无法看到这些变更

C.JOHN必须提交这些变更,这样ROOPESH才能看到它们,如有必要,可以回滚它们

D.JOHN必须提交这些变更,这样ROOPESH才能看到它们,但是只有JOHN才可以回滚它们

(7) 执行DML语句需要多个步骤。请按正确的顺序排列它们。

A.将变更向量应用于数据库缓冲区缓存

B.将块从数据文件复制到缓冲区

C.在数据库缓冲区缓存中搜索相关的块

D.将变更向量写入日志缓冲区

(8) 在发出COMMIT命令时,将发生什么(选择一个最佳答案) ?

A.构成事务的所有变更向量写入磁盘

B. DBWn将变更块写入磁盘

C.LGWR将日志缓冲区写入磁盘

D.将删除撤消数据,从而使更改不能再回滚

(9) 重做可以保护什么类型的段(选择所有正确答案) ?

A.索引段

B.表段

C.临时段

D.撤消段

(10) 下面的哪些命令将终止事务(选择所有正确答案) ?

A.CREATE

B. GRANT

C.SAVEPOINT

D.SET AUTOCOMMIT ON

(11) 我们需要锁定来阻止会话同时处理同一个数据。如果一个用户更新一行时没有指定任何锁定,会对其他会话带来什么影响?

A.其他会话可以读写其他行,但不能读写第一个会话处理的行

B.其他会话可以读取第一个会话处理的行,但不能写入它

C.其他会话可以读写第一个会话处理的行,但在第一个会话提交或回滚之前,会挂起COMMIT

D.其他会话不能写入任何行,因为默认情况下,第一个会话在整个表上施加了一个锁

(12) 下面哪个命令会阻止其他会话读取表中的行(选择一个最佳答案)?

A.LOCK TABLE SCOTT.EMP IN EXCLUSIVE MODE;

B. LOCK TABLE SCOTT.EMP IN ROW EXCLUSIVE MODE;

C.SELECT * FROM SCOTT.EMP FOR UPDATE;

D.DELETE FROM SCOTT.EMP;

E.Oracle没有提供阻止其他会话读表的锁

(13) 如果多个会话请求同一行上的排他锁,会发生什么情况(选择一个最佳答案) ?

A.第一个会话获得锁,在其释放锁后,随机选择的下一个会话将获得锁

B.第一个会话将获得排他锁,其他会话将获得共享锁

C.将按请求顺序,为这些会话授予排他锁

D.Oracle将检测冲突,并回滚在其他情况下将挂起的语句

(14) 如果程序员在更新一个表中的许多行时,没有请求一种锁,会给他们提供什么锁?(选择一个最佳答案)

A.根本没有锁定。默认级别的锁定是NONE,以最大化并行性

B.表上的独占锁。更新许多行时,这是最快的方法

C.表和每个行上的共享锁。这是最安全的方法,但不是最快的

D.每个行上的独占锁,表上的共享锁。这会安全地最大化并行性

(15) 如果两个会话彼此死锁,会发生什么?(选择一个最佳答案)

A.Oracle会回滚一个会话的语句

B. Oracle会回滚两个会话的语句

C.两个会话会无限期地挂起

D.Oracle会终止一个会话

E.Oracle会终止两个会话

(16) 执行一条DML语句时会出现什么情况(选择一个最佳答案)?

A.磁盘上的数据与撤消块都会更新,并且相应的变更会写入重做流

B.原有数据被写至撤消段,更新后的数据被写至数据段和重做日志缓冲区

C.数据和撤消块在数据库缓冲区缓存中更新,且更新也会转入日志缓冲区

D.使用重做事务所需的信息更新重做日志缓冲区,同时使用反转事务所需的信息更新撤消块

(17) 如果怀疑撤消生成有性能问题,该如何减少撤消数据的生成量?(选择一个最佳答案)

A.从使用回滚段转为自动撤消管理

B.把UNDO_MANAGEMENT参数设置为NONE

C.减少撤消段的大小

D.什么都做不了,因为所有DML语句都必须生成撤消数据

(18) 首先,用户JOHN启动了一个查询。其次,用户ROOPESH更新了包含在该查询中的一行。第三,JOHN的查询结束了。第四,ROOPESH提交了他的变更。第五,JOHN再次运行他的查询。下面哪些语句是正确的?(选择所有正确答案)

A.一致性规则表示,JOHN的两个查询会返回相同的结果集

B. ROOPESH提交时,撤消数据会转储到磁盘上

C.ROOPESH提交时,撤消数据会处于不活动的状态

D.JOHN的第一个查询会使用撤消数据

E.JOHN的第二个查询会使用撤消数据

F.两个查询不一致

(19) 如果撤消段填满了,会发生什么?(选择一个最佳答案)

A.自动创建另一个撤消段

B.撤消段的大小会增加

C.如果撤消表空间的数据文件设置为自动扩展,撤消表空间就会扩展

D.事务会在另一个撤消段中继续

(20) 下面关于撤消的语句中,哪些是正确的?(选择所有正确答案)

A.一个撤消段可以保护许多事务

B.一个事务可以使用许多撤消段

C.一个数据库可以有许多撤消表空间

D.一个实例可以有许多撤消表空间

E.一个撤消段可以横跨许多数据文件

F.撤消段和回滚段不能共存

(21) 撤消表空间有10个撤消段,但假定活动突然增多,有20个并发事务,会发生什么?(选择一个最佳答案)

A.Oracle会创建另外10个撤消段

B.事务会自动在10个撤消段中平衡

C.10个事务会被阻塞,直到提交了前10个事务为止

D.会发生什么取决于UNDO_RETENTION设置

(22) 用户报告“ORA-1555: Snapshot too old”错误,其原因可能是什么?(选择一个最佳答案)

A.生成快照的频率不够高

B.撤消数据太旧了

C.没有足够的撤消数据

D.撤消表空间保留数据的时间太长

(23) 查看如下所示的查询与结果集。

        SQL> select BEGIN_TIME, END_TIME, UNDOBLKS, MAXQUERYLEN
        from V$UNDOSTAT;
        BEGIN_TIME        END_TIME            UNDOBLKS MAXQUERYLEN
        ----------------- ----------------- ---------- -----------
        02-01-08:11:35:55 02-01-08:11:41:33       14435          29
        02-01-08:11:25:55 02-01-08:11:35:55     120248          296
        02-01-08:11:15:55 02-01-08:11:25:55     137497           37
        02-01-08:11:05:55 02-01-08:11:15:55     102760        1534
        02-01-08:10:55:55 02-01-08:11:05:55     237014          540
        02-01-08:10:45:55 02-01-08:10:55:55     156223        1740
        02-01-08:10:35:55 02-01-08:10:45:55     145275          420
        02-01-08:10:25:55 02-01-08:10:35:55       99074         120

撤消表空间的数据块大小为4KB。下列哪个值是这个撤消表空间的最优大小(选择一个最佳答案)?

A.1GB

B. 2GB

C.3GB

D.4GB

(24) 何时把变更写入日志缓冲区?(选择所有正确答案)

A.更新表块时

B.更新索引块时

C.更新撤消块时

D.回滚操作过程中

E.提交时

F.运行查询,用未提交的变更访问块时

(25) 即使使用自动撤消段,用户也仍会得到“快照过老”的错误。该怎么办?(选择所有正确答案)

A.增加UNDO_RETENTION参数

B.设置RETENTION_GUARANTEE参数

C.调整查询,使它们运行得更快

D.增加撤消表空间的大小

E.启用RETENTION GUARANTEE

F.增加撤消段的大小