日期:2014-05-17  浏览次数:20818 次

Oracle高手请进,在线等
默认创建的索引,是哪种类型 "A. B叉树索引
B. 位图索引
C. 反转索引
D. 函数索引"

下面关于复合索引哪个是错误的 "
A. 创建复合索引时不需要考虑字段顺序
B. 创建复合索引时通常把选择性好的字段放在前面
C. 复合索引字段个数尽量不要多
D. 既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引"

表T_TAB中字段status为varchar2(32),并在此字段上建个索引,下面哪个能正确使用索引 "
A. SELECT NAME1 FROM T_TAB WHERE STATUS = '1'
B. SELECT NAME1 FROM T_TAB WHERE STATUS = 1
C. SELECT NAME1 FROM T_TAB WHERE STATUS||'' = '1'
D. SELECT NAME1 FROM T_TAB WHERE SUBSTR(STATUS,1,1) = '1'"

"下面关于两种写法,说法错误的是
(1)OPEN CURSOR FOR 'SELECT * FROM T_TAB WHERE TELCODE = '''|| v_telcode || '''';
(2)OPEN CURSOR FOR 'SELECT * FROM T_TAB WHERE ACCEPTDATE = :1' USING v_telcode;
A. (1)比(2)有更好的性能
B. (2)比(1)有更好的性能
C. (1)对每个号码都需要做硬解析
D. (2)对所有号码只需要做一次硬解析"

关于UNIQUE和PRIMARY KEY,下面哪个是正确的 "
A. 一个表只能有一个UNIQUE
B. 一个表可以有多个PRIMARY KEY
C. PRIMARY KEY的字段必须是非空的
D. UNIQUE的字段必须是非空的"

下面关于锁说法正确的是 "
A. 对于纯select语句,使用不当,也会引起锁
B. select .. from tab where id = '1' for update 是对所有记录加锁
C. 同一会话中对同一条记录修改会引起死锁
D. 不同会话交叉事务可能会导致死锁"

下面哪个说法错误 "
A. 在不使用DISTINCT、UNION、ORDER BY、GROUP BY情况下,也能实现业务功能的情况,一定不要使用这些功能
B. 如果业务逻辑允许的情况下,尽量用UNION ALL代替UNION
C. 禁止对VARCHAR(2000)之类的大字段值进行ORDER BY、DISTINCT、GROUP BY、UNION之类的操作
D. 执行UNION ALL也会引起排序操作"

按照规范,下面关于分区表中建索引正确是 "
A. 应为本地索引
B. 应为全局索引
C. 既可以本地索引,也可以全局索引
D. 以上都不对"

下面关于hints说法错误的是 "
A. 常用/*+ .. */ 表示
B. 当hints语法错误时,sql语句无法执行
C. 当hints指定的索引被删除后,hints将会失去效果
D. 只有当索引不能正确使用时,才能使用hints"


------解决方案--------------------
关注中。。。。。
------解决方案--------------------
SQL code

默认创建的索引,是哪种类型    "A. B叉树索引
B. 位图索引
C. 反转索引
D. 函数索引"
------------A
下面关于复合索引哪个是错误的    "
A. 创建复合索引时不需要考虑字段顺序
B. 创建复合索引时通常把选择性好的字段放在前面
C. 复合索引字段个数尽量不要多
D. 既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引"
-------------A

表T_TAB中字段status为varchar2(32),并在此字段上建个索引,下面哪个能正确使用索引    "
A. SELECT NAME1 FROM T_TAB WHERE STATUS = '1'
B. SELECT NAME1 FROM T_TAB WHERE STATUS = 1
C. SELECT NAME1 FROM T_TAB WHERE STATUS||'' = '1'
D. SELECT NAME1 FROM T_TAB WHERE SUBSTR(STATUS,1,1) = '1'"
----------A
分析:B oracle使用了隐式类型的转换,索引失效,C,D等效于函数。

"下面关于两种写法,说法错误的是
(1)OPEN CURSOR FOR 'SELECT * FROM T_TAB WHERE TELCODE = '''|| v_telcode || '''';
(2)OPEN CURSOR FOR 'SELECT * FROM T_TAB WHERE ACCEPTDATE = :1' USING v_telcode;
A. (1)比(2)有更好的性能
B. (2)比(1)有更好的性能
C. (1)对每个号码都需要做硬解析
D. (2)对所有号码只需要做一次硬解析"
-------------A
分析:C,D 硬编码如果没有指定cursor_shared,每次都需要解析.如果使用绑定变量只解析一次

------解决方案--------------------
SQL code

关于UNIQUE和PRIMARY KEY,下面哪个是正确的    "
A. 一个表只能有一个UNIQUE
B. 一个表可以有多个PRIMARY KEY
C. PRIMARY KEY的字段必须是非空的
D. UNIQUE的字段必须是非空的"
-------C
分析:unique和primary 的唯一区别是:unique可以为空

下面关于锁说法正确的是    "
A. 对于纯select语句,使用不当,也会引起锁
B. select .. from tab where id = '1' for update 是对所有记录加锁
C. 同一会话中对同一条记录修改会引起死锁
D. 不同会话交叉事务可能会导致死锁"
-------D
分析:B,行锁,C,如果事务时间不交叉肯定没问题.A.是一定会引起锁,不过是共享锁。

下面哪个说法错误    "
A. 在不使用DISTINCT、UNION、ORDER BY、GROUP BY情况下,也能实现业务功能的情况,一定不要使用这些功能
B. 如果业务逻辑允许的情况下,尽量用UNION ALL代替UNION
C. 禁止对VARCHAR(2000)之类的大字段值进行ORDER BY、DISTINCT、GROUP BY、UNION之类的操作
D. 执行UNION ALL也会引起排序操作"
---------D
分析:很明显union 才排序

按照规范,下面关于分区表中建索引正确是    "
A. 应为本地索引
B. 应为全局索引
C. 既可以本地索引,也可以全局索引
D. 以上都不对"
---------C
分析:没什么好说的

下面关于hints说法错误的是    "
A. 常用/*+ .. */ 表示
B. 当hints语法错误时,sql语句无法执行
C. 当hints指定的索引被删除后,hints将会失去效果
D. 只有当索引不能正确使用时,才能使用hints"
--------D
分析:hint索引又叫强制索引

------解决方案--------------------
1 b
2 a
3 a
4 a
5 c
6 c
7 d
8 c
9 d
------解决方案--------------------