首页 > 技术文章 > 面试相关

oracle-dba 2013-09-20 18:38 原文

  求职路上的笔试题,供大家学习和参考。

  1  求和题目  

SQL> desc tab_a;
    Name    Type         Nullable Default Comments 
    ------- ------------ -------- ------- -------- 
    COLUM_A VARCHAR2(10) Y                         
    COLUM_B VARCHAR2(10) Y
  SQL> select * from tab_a;
    COLUM_A    COLUM_B
    ---------- ----------
    1          8
    3          15
    4          7
    9          34
    23         56
       使用一条sql实现如下的效果:
    COLUM_A         VALUE
    ---------- ----------
    1                   8
    3                  23
    4                  30
    9                  64
    23                120

  参考SQL:
    SELECT colum_a, SUM(colum_b) over(ORDER BY rownum) AS VALUE FROM tab_a;

  2 什么是反向索引,反向索引的优缺点。

   反向索引应用场合
   ①发现索引叶块成为热点块时使用
    通常,使用数据时(常见于批量插入操作)都比较集中在一个连续的数据范围内,那么在使用正常的索引时就很容易发生索引叶子块过热的现象,严重 时将会导致系统性能下降。
   ②在RAC环境中使用
    当RAC环境中几个节点访问数据的特点是集中和密集,索引热点块发生的几率就会很 高。如果系统对范围检索要求不是很高的情况下可以考虑使用反向索引技术来提高系统的性能。因此该技术多见于RAC环境,它可以显著的降低索引块的争用。

  使用反向索引的优点
    最大的优点莫过于降低索引叶子块的争用,减少热点块,提高系统性能。
  使用反向索引的缺点
    由于反向索引结构自身的特点,如果系统中经常使用范围扫描进行读取数据的话(例如在where子句中使用“between and”语句或比较运算符“>”“<”等),那么反向索引将不适用,因为此时会出现大量的全表扫描的现象,反而会降低系统的性能。

  参考:

    http://blog.163.com/series_w/blog/static/1617755152010365247739/

  3 什么是物化视图,物化视图有哪些优点?

  

     物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本或者用来预先计算并保存表连接或聚集等耗时较多的操作的结果。这样,在执行查询时,就可以避免进行这些耗时的操作,从而快速的得到结果。物化视图有很多方面和索引很相似。使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。

    物化视图特点:
      1) 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到佐证;
      2) 物化视图也是一种段(segment),所以其有自己的物理存储属性;
      3) 物化视图会占用数据库磁盘空间,这点从user_segment的查询结果,可以得到佐证;

          参考:

         http://www.cnblogs.com/oracle-dba/p/3330346.html

         http://yangtingkun.itpub.net/post/468/14245    

  4 sql调优应考虑哪些因素,常用的优化方法有哪些?

     1)查看SQL的执行计划,可以使用set autotrace on;方式来查看trace报告或者使用TOAD或者PL/SQL工具查看。

      明确表之间的关联方式:

      ① 全表扫描(full table scan)

      ② 哈希连接(hash_join)

      ③ 嵌套循环(nested_loop_join)

      ④ 合并排序了解(sort_merge_join)

    2)适当的建立索引

    3)适当的使用分区表

    4)适当的使用HINT,采用parallel处理      

  5 Unix查看CPU和I/O的命令有哪些?

          CPU:

    Linux中常用的监控CPU整体性能的命令:
      ① mpstat:mpstat不但能查看所有CPU的平均信息,还能查看指定CPU的信息。
      ② vmstat:只能查看所有CPU的平均信息;查看cpu队列信息;
      ③ iostat: 只能查看所有CPU的平均信息。
      ④ sar:与mpstat 一样,不但能查看CPU的平均信息,还能查看指定CPU的信息。
      ⑤ top:显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示。

     I/O :

    (1) iostat

    iostat命令用来监视系统输入/输出设备负载,这通过观察与它们的平均传送速率相关的物理磁盘的活动时间来实现。iostat 命令生成的报告可以用来更改系统配置来更好地平衡物理磁盘和适配器之间的输入/输出负载。

    语法:

    iostat [ -s ] [ -a ] [ -d | -t ] [ -T ][ -m ][ PhysicalVolume ... ] [ Interval [ Count ] ]

       (2) sar -d  5 10

    参考:

       http://blog.chinaunix.net/uid-23177306-id-2531032.html

   备注:

    top/topas命令可以看查看系统I/O情况,CPU,内存,换页空间等使用情况。

   参考:

         http://baike.baidu.com/view/2762469.htm

  6 如何开启归档日志,写出开启归档日志的sql语句。

    

    1)保存一致性,先关闭数据库 
    shutdown immediate ;
    2)启动到mount阶段
    startup mount;
    3)切换到归档模式
    alter database archivelog;
    4)切换到open阶段
    alter database open; 

  7 RAID是什么?

          磁盘阵列(Redundant Arrays of Inexpensive Disks,RAID),有“价格便宜具有冗余能力的磁盘阵列”之意。原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。

  
   RAID分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60。

  参考:http://zh.wikipedia.org/zh-cn/RAID

       http://www.watchstor.com/RAID/

  8 系统运作越来越慢,如何进行优化,提高系统性能。

     ① 内存: 调整SGA与PGA大小或者增加内存;

     ② I/O : 系统主要的性能瓶颈,可以采用磁盘阵列等措施分散I/O;

     ③ CPU: 通过AWR或者ASH报告,分析TOP10的SQL,进行优化处理;

     ④ system 自身参数调优,

  9 谈谈自己对数据仓库的理解

    根据自身的工作经历,简单分析一下你理解的数据仓库,答案不是唯一的,善于发挥就可以。

  10 大数据的处理方法有哪些?

    目前互联网行业对于大数据的处理方式多数采用hadoop分布式处理模式。

    hadoop技术论坛:

    http://www.hadoopor.com/

    hadoop官方网站:

    http://hadoop.apache.org/

    hadoop中国:

    http://www.hadooper.cn/dct/page/1

  

  -------------------------------------------the end------------------------------------------------

推荐阅读