好文档 - 专业文书写作范文服务资料分享网站

数据仓库面试题

天下 分享 时间: 加入收藏 我要投稿 点赞

精品文档

数据仓库及BI工程师面试题集锦

前言

1、介绍一下项目经验、项目中的角色。

一、 数据库

1、 Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用? i.

视图与表的区别

1. 1、视图是已经编译好的sql语句。而表不是 2. 视图没有实际的物理记录。而表有。 3. 表是内容,视图是窗口

4. 表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,

表可以及时四对它进行修改,但视图只能有创建的语句来修改

ii. 物化视图与视图区别

1. 物化视图和视图差别非常大,不是几句能说清 物化视图是自动刷新或者

手动刷新的,视图不用刷新 物化视图也可以直接update,但是不影响base table,对视图的update反映到base table上 物化视图主要用于远程数据访问,物化视图中的数据需要占用磁盘空间,视图中不保存数据。

2、 Oracle数据库,有哪几类索引,分别有什么特点? a) 1.单列索引与复合索引

一个索引可以由一个或多个列组成,用来创建索引的列被称为“索引列”。 单列索引是基于单列所创建的索引,复合索引是基于两列或者多列所创建的索引。

2.唯一索引与非唯一索引

唯一索引是索引列值不能重复的索引,非唯一索引是索引列可以重复的索引。

.

精品文档

无论是唯一索引还是非唯一索引,索引列都允许取NULL值。默认情况下,Oracle创建的索引是不唯一索引。 3.B树索引

B树索引是按B树算法组织并存放索引数据的,所以B树索引主要依赖其组织并存放索引数据的算法来实现快速检索功能。 4.位图索引

位图索引在多列查询时,可以对两个列上的位图进行AND和OR操作,达到更好的查询效果。 5.函数索引

Oracle中不仅能够直接对表中的列创建索引,还可以对包含列的函数或表达式创建索引,这种索引称为“位图索引”。 3、 Union与Union All的区别?

a) Union会对查询结果进行排序去重,效率比union all 低,union all只是两个查

询集的合并操作。建议使用Union all,查询出来后再对数据进行去重操作。 4、 对游标的理解?游标的分类?使用方法?

游标是映射在结果集中一行数据的位置实体,有了游标,用户就可以访问结果集中

的任何一条数据。游标分为静态游标和REF游标,静态游标分为显示游标和隐式游标,显示游标使用步骤是声明游标,打开游标,获取记录,关闭游标。所有的DML语句为隐式游标,可以从游标的属性获得sql语句的信息。REF游标是动态关联结果集的临时对象,使用步骤也是先要进行声明游标,然后打开游标,获取记录,关闭游标。 5、 如何查找和删除表中的重复数据?给出方法或SQL。 查询表中重复数据。

Select * from people where id in (Select id from people group by id having count(id)>1);

Delete from people where id in(select id from people group by id having count(id)>1) and rowid not in (select min(rowid) from people group by id hacing count(id)>1);

.

精品文档

创建索引有哪些需要注意的要点?

a) 一般来说,不需要为比较小的表创建索引(数据占用存储空间小)

b) 即使是大表,如果经常需要查询的数据不超过10%到15%的话,那就没有必要为

其建立索引的必要。

c) 如对于一些重复内容比较少的列,特别是对于那些定义了唯一约束的列。在这些列

上建立索引,往往可以起到非常不错的效果。

d) 数据库管理员,需要隔一段时间,如一年,对数据库的索引进行优化。该去掉的去

掉,该调整的调整,以提高数据库的性能。

e) 通常来说,表的索引越多,其查询的速度也就越快。但是,表的更新速度则会降低。

这主要是因为表的更新(如往表中插入一条记录)速度,反而随着索引的增加而增加。

f) 对于一些数据仓库或者决策型数据库系统,其主要用来进行查询。

g) 位图索引。基数是位图索引中的一个基本的定义,它是指数据库表中某个字段内容

中不重复的数值。

6、 Oracle数据库中,有哪几种分区?各自特点是什么?作用是什么?分区索引的分类和作用?

范围分区,散列分区,复合分区,索引分区

7、 表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql。

select * from (select c.*,rownum as rn from (select * from t order by c) c) where rn berween 21 and 30; 8、 怎样优化数据库?

i. 首先应确定那里出现性能问题,一般一个调度时常都会有时间log记录,若发现某个调度时间过长,那么我们可以使用oracle自带profiler进行诊断出该模块出现性能问题的sql。

ii. iii. iv.

找出问题sql后对表大小进行分析,知道哪些是大表和小表。 查看该sql执行计划(用 autotrace)即可大概找出问题原因。 查询方面:查看是否未走索引,或sql写法中有运算或<> 等影响走索引条件,或并未对关键关联字段创建索引,必要情况重建索引。

.

数据仓库面试题

精品文档数据仓库及BI工程师面试题集锦前言1、介绍一下项目经验、项目中的角色。一、数据库1、Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用?i.视图与表的区别1.1、视图是已经编译好的sql语句。而表不是2.视图没有实际
推荐度:
点击下载文档文档为doc格式
1g9hn6hzbi9ersa9pruq6ksx797jp100wn5
领取福利

微信扫码领取福利

微信扫码分享