- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
招行-DW-BI-数据面试题及答案
DW/BI 数据库面试题
一、 基础题
1. 简单描述Table/Extent/Segment/Block之间的关系.
table创建时,默认创建了一个data segment,
每个data segment含有min extents指定的extents数,
每个extent据据表空间的存储参数分配一定数量的blocks
2. 描述Tablespace和Datafile之间的关系.
一个tablespace可以有一个或多个datafile,每个datafile只能在一个tablespace内,
table中的数据,通过hash算法分布在tablespace中的各个datafile中,
tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。
3. 描述日志的作用.
记录数据库事务,最大限度地保证数据的一致性与安全性
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件
归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
4. 请列举几种表连接的内部算法(非Inner、left、Right、Join).
Nest loop, hash join 常用的2种吧。。前者是大小表,小小表关联,后者是大表 join 大表。。
Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)
Or hash join/merge join/nest loop(cluster join)/index join
5. SQL调整最关注的是什么.
查看该SQL的response time(db block gets/consistent gets/physical reads/sorts (disk))
6. 描述对索引的认识(索引的结构、对DML的影响、为什么提高了查询性能).
索引是与表和聚类相关的可选结构。你可以创建,也可以不创建。可以在一个表的一个或多个列上创建索引,以加速 SQL 语句在该表上的执行。索引比没有索引能更快地定位信息,Oracle 数据库对表数据提供更快的访问路径。正确使用索引是减少磁盘 IO 的重要手段。
b-tree index/bitmap index/function index/patitional index(local/global) 索引通常能提高select/update/delete的性能,会降低insert的速度
关于Oracle索引结构,请参考如下: 关于 Oracle 索引以及 Bitmap 索引 和 B-tree 索引(归档)
关于SQLSERVER索引结构,存储数据的方式 请参考 SQLSERVER底层存储和性能优化总结分享 【数据后台存放在页面面,但是他的排列顺序不像我们select 是有顺序的。。数据库存储页比较凌乱,杂乱无章。,这个page用满了,在存放另外一个列的数据。不创建任何索引,就很杂乱,相当于一堆数据。。 】
7. 绑定变量是什么?绑定变量有什么优缺点?
绑定变量就是将变量的数据通过一定的数据访问技术来和相应的实体捆绑在一起,使之成为一个整体。是数据绑定的一种形式,也是变量访问的一种方法。
绑定变量可以减少SQL分析,节约共享池的空间。但是在某些情况下,使用绑定变量也是有缺点的。比如说,如果使用绑定变量,那么优化器就会忽略直方图的信息,在生成执行计划的时候可能不够优化。
8. 比较TRUNCATE和DELETE命令.
两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间. Delte 删除的时候记录日志,而truncate 不记录日志。
9. FACT Table上需要建立何种索引?
位图索引 适合位图索引的字段(重复率高的、常用于AND、IN、OR等)如 时间、非唯一型的键
10. 什么是SCD?请列举SCD的种类与区别.
方式一:直接用最新值,覆盖就有值。等于是忽略了历史的变化。拿上面销售人员的例子来说,销售员甲2013年3月以前的业绩,也会归入到销售二部。
方式二:记录历史,以有效期起和止来标示当前有效。这样的情况下,需要结合代理键,因为一个维度成员,会有若干行记录,这种情况下,表结构可以类似于:
KEY, CODE, NAME, 有效期起, 有效期止, 当前有效?
这种情况下,可以将上例中销售员甲的转部门前的业绩归入到其当时归属的部门。
方式三:记录当前和最近几次的历史,这种处理方式实际上很少使用。
另外,还会有一些非主流的处理方式,譬如不覆盖,或者说1、2、3
文档评论(0)