默认创建的索引,是哪种类型 "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"

解决方案 »

  1.   


    默认创建的索引,是哪种类型 "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,每次都需要解析.如果使用绑定变量只解析一次
      

  2.   


    关于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索引又叫强制索引
      

  3.   

    1 b
    2 a
    3 a
    4 a
    5 c
    6 c
    7 d
    8 c
    9 d
      

  4.   

    最后一题明显是 【 B 】 啊!
    hint错误会导致SQL不执行吗?
    hint在注释里面呀
      

  5.   

    1.A 2.A 3.A 4.A 5.C 6.D 7 A 8 A 9 C
      

  6.   

    A A A A C D D C B
      

  7.   

    正常情况下选择 为:A A A A C D D C B
    但如下问题需要讨论
    "下面关于两种写法,说法错误的是
    (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)有更好的性能 -- 能绝对吗,若ACCEPTDATE分布不均时,1上说不定走好的执行计划呢C. (1)对每个号码都需要做硬解析
    D. (2)对所有号码只需要做一次硬解析" --真的只做一次硬解析吗?输入 aa 与 输入aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 的时候一样吗按照规范,下面关于分区表中建索引正确是    "
    A. 应为本地索引
    B. 应为全局索引
    C. 既可以本地索引,也可以全局索引
    D. 以上都不对"
    ---------C
    分析:没什么好说的,?
    其实这个才是我们应该考虑的问题,虽然oracle支持在分区表中建全局索引、本地索引两种情况,但是从数据库维护方便的角度看,真的有必要使用这两种情况吗?借此机会我也想看看大家系统是怎么处理的,我们的系统是要求分区表上只能建本地索引,不然每次删除分区都要重建索引,那样成本太高了
      

  8.   


    1 a
    2 a
    3 a
    4 a
    5 c
    6 c
    7 d
    8 c
    9 d