DW/BI 数据库面试题

 

  • 基础题

  • 简单描述Table/Extent/Segment/Block之间的关系.

table创建时,默认创建了一个data  segment,

每个data segment含有min  extents指定的extents,

每个extent据据表空间的存储参数分配一定数量的blocks

 

  1. 描述TablespaceDatafile之间的关系.

一个tablespace可以有一个或多个datafile,每个datafile只能在一个tablespace,  

table中的数据,通过hash算法分布在tablespace中的各个datafile,  

tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。

 

  1. 描述日志的作用.

记录数据库事务,最大限度地保证数据的一致性与安全性

重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件

归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

 

  1. 请列举几种表连接的内部算法(非InnerleftRightJoin.

Nest loop, hash join 常用的2种吧。。前者是大小表,小小表关联,后者是大表 join 大表。。

Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)

Or hash join/merge join/nest  loop(cluster join)/index join

 

  1. SQL调整最关注的是什么.

查看该SQLresponse  time(db block gets/consistent gets/physical reads/sorts (disk))

 

  1. 描述对索引的认识(索引的结构、对DML的影响、为什么提高了查询性能).

索引是与表和聚类相关的可选结构。你可以创建,也可以不创建。可以在一个表的一个或多个列上创建索引,以加速 SQL 语句在该表上的执行。索引比没有索引能更快地定位信息,Oracle 数据库对表数据提供更快的访问路径。正确使用索引是减少磁盘 IO 的重要手段。

b-tree index/bitmap index/function  index/patitional index(local/global) 索引通常能提高select/update/delete的性能,会降低insert的速度

关于Oracle索引结构,请参考如下:关于  Oracle 索引以及 Bitmap 索引  B-tree 索引(归档)http://www.cnblogs.com/liuning8023/archive/2013/03/10/2952511.html

 

关于SQLSERVER索引结构,存储数据的方式请参考   SQLSERVER底层存储和性能优化总结分享http://www.flybi.net/article/123   【数据后台存放在页面面,但是他的排列顺序不像我们select 是有顺序的。。数据库存储页比较凌乱,杂乱无章。,这个page用满了,在存放另外一个列的数据。不创建任何索引,就很杂乱,相当于一堆数据。。

 

 

  1. 绑定变量是什么?绑定变量有什么优缺点?

绑定变量就是将变量的数据通过一定的数据访问技术来和相应的实体捆绑在一起,使之成为一个整体。是数据绑定的一种形式,也是变量访问的一种方法。

绑定变量可以减少SQL分析,节约共享池的空间。但是在某些情况下,使用绑定变量也是有缺点的。比如说,如果使用绑定变量,那么优化器就会忽略直方图的信息,在生成执行计划的时候可能不够优化。

 

  1. 比较TRUNCATEDELETE命令.

两者都可以用来删除表中所有的记录。区别在于:truncateDDL操作,它移动HWK,不需要  rollback segment .DeleteDML操作, 需要rollback segment 且花费较长时间.  Delte 删除的时候记录日志,而truncate 不记录日志。

 

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

位图索引   适合位图索引的字段(重复率高的、常用于ANDINOR等)如时间、非唯一型的键

 

  1. 什么是SCD?请列举SCD的种类与区别.

关于缓慢变化维的使用 ,求举例讲解?  http://www.flybi.net/question/136

缓慢变化维的历史数据大家是如何处理的?  http://www.flybi.net/question/2974

数据仓库系列 - 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型及原型设计  http://www.cnblogs.com/biwork/p/3363749.html

 

  • SQL试题

  • 有一张表TF1F2F3F4),要根据字段F2排序后取第8-16条记录显示,请写出SQL

对应的SQL如下:

with cte as

(

select  ROW_NUMBER()over(order by F2) as RN,* from T

)

select  * from cte where RN between  8 and 16

或者

select  top 8  * from T where F2 not in (select top 8 F2 from T order by F2)

 

 

  1. 指出下面SQL语句的执行顺序:
    select a.column1 , COUNT(*) AS CountValue, SUM(b.column3) AS SumValue fromTableAainner joinTableB b on a.column1 = b.column1 and a.column2 = 1  where b.column3 = 10 group by a.column1 havingCOUNT(*)> 10 order by a.column1
    1.          From                            2.        ON                            
    3.         INNER  JOIN                      4.         WHERE                              
    5.          GROUP BY                        6.        having                              
    7.            SELECT                         8.         ORDERBY                            

  2. 三、DW/BI 试题

  3. 描述ROLAPMOLAPHOLAP的区别与优势。

多维存储方式(MOLAP

MOLAP在服务器上对数据立方体数组及其管理技术的实现,可以所有的信息查询都从MOLAP服务器上获得。

a,       优势

¨      性能好、响应速度快;

¨      支持高性能的决策支持计算;

¨      复杂的跨维计算;

¨      多用户的读写操作。

b,       缺点

¨      占用的存储空间较大

¨      难以达到TB 级数据量;

¨      需要进行预计算,可能导致数据爆炸;

¨      无法支持维的动态变化;

¨      缺乏数据模型和数据访问的标准。

 

.     关系数据库存储方式(ROLAP

ROLAP充分利用关系数据库技术将明细数据和聚合数据存储在一个关系型结构中的存储方式。

a,      优势

¨      没有大小限制;现有的关系数据库的技术可以沿用;

¨      可以通过SQL实现详细数据与概要数据的储存;

¨      现有关系型数据库已经对OLAP做了很多优化,包括并行存储、并行查询、位图索引、SQl OLAP扩展等大大提高了ROALP的速度;

¨      查询性能较不如MOLAP方式。

¨      占用的存储空间较少

b,       缺点

¨      一般比MDD响应速度慢;

¨      SQL无法完成部分计算,主要是无法完成多行的计算,无法完成维之间的计算。

 

.     混合存储方式(HOLAP

将聚合存储到分析服务器计算机上的多维结构中,并将分区的源数据保留在它现有的关系型结构中的存储方式。

     特点

¨      查询性能介于以上两种方式之间

¨      占用的存储空间介于以上两种方式之间

¨      适用于在对基于大量基本数据的汇总进行查询时需要快速响应的多维数据集

 

  1. 描述星型与雪花型的区别与优势。

参考下社区里面的  星型模型还是雪花模型? http://www.flybi.net/question/115

 

  1. 描述一下DW设计架构,及ETL设计方法。

参考下附件里面  数据仓库架构实际例子.mht 案例