阿里巴巴DBA笔试(zt)

一:SQL tuning 

1:列举几种表连接方式

merge joinhash joinnested loop

 

2:不借助第三方工具,怎样查看sql的执行计划?

sqlplus

set autotrace ...

utlxplan.sql 创建 plan_table 

 

3:如何使用CBOCBORULE的区别?

:在初始化参数里面设置 optimizer_mode=choose/all_rows/first_row等可以使用 cbo

rbo会选择不合适的索引,cbo需要统计信息。

 

4:如何定位重要(消耗资源多)的SQL

:根据v$sqlarea 中的逻辑读/disk_read。以及寻找CPU使用过量的session,查出当前session的当前SQL语句,或者:监控WIN平台Oracle的运行

 

5:如何跟踪某个sessionSQL

:先找出对应的'sid,serial',然后调用system_system.set_sql_trace_in_session(sid,serial,true);参考:跟踪某个会话

 

6SQL调整最关注的是什么?

:逻辑读。IO

 

7:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)

:默认的索引是b-tree

insert的影响:分裂,要保证tree的平衡。

delete的影响:删除行的时候要标记改节点为删除。

update的影响:如果更新表中的索引字段,则要相应的更新索引中的键值。查询中包含索引字段的键值和行的物理地址。

 

8:使用索引查询一定能提高查询的性能吗?为什么?

:不能。如果返回的行数目较大,使用全表扫描的性能较好。

 

9:绑定变量是什么?绑定变量有什么优缺点?

:通俗的说,绑定变量就是变量的一个占位符,使用绑定变量可以减少只有变量值不同的语句的解析。

 

10:如何稳定(固定)执行计划?

:使用stored outline

 

11:和排序相关的内存在8i9i分别怎样调整,临时表空间的作用是什么?

8i:使用sort_area_sizehash_area_size,每个session分配相同的值,不管有无使用。

9i:使用pga_aggregate来统一管理。临时表空间的作用:

sort_area_size中不能完成的部分在临时表空间完成,临时表空间在重建索引,创建临时表等都要用到。

还有hash join不能完成的也在临时表空间中做。

 

12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sqlselect a,b,c,d from (select a,b,c,d from T order by c) where rownum<=30

minus

select a,b,c,d from (select a,b,c,d from T order by c) where rownum <=20;

或者:

select * from (select rownum rn,a.* from (select a,b,c,d from T order by c) a )where rn between 21 and 30;

 

 

二:数据库基本概念类

1pctused and pctfree 表示什么含义有什么作用?

:表示数据块什么时候移入和移出freelist

pctused:如果数据块的使用率小于pctused的值,则该数据块重新加入到fresslist中。

pctfree:如果数据块的使用率高于pctfree的值,则该数据块从freelist中移出。

 

2:简单描述table / segment / extent / block之间的关系

:一个table至少是一个segment,如果分区表,则每个分区是一个segmenttable可以看成是一个逻辑上的概念,segment可以看成是这个逻辑概念的物理实现;

segment由一个或多个extents组成,segment不可以跨表空间但可以跨数据文件;

extent由多个连续的blocks组成,不可以跨数据文件;

block1-多个os块组成,是oracle i/o的最小存储单位。

 

3:描述tablespacedatafile之间的关系

tablespace是逻辑上的概念,datafile是物理上的概念。

一个tablespace可以由多个datafile组成,一个datafile不能跨越多个tablespace

 

4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点?

:一个使用freelist管理,一个使用位图管理。

 

5:回滚段的作用是什么?

:保存数据的前像,保证数据读取的时间点一致性。Oracle里数据的多版本特性就是通过回滚段来实现的,正因为此,Oracle数据库实现了读写不竞争的性能优势!

 

6:日志的作用是什么?

:记录对数据库的操作,便于恢复。

 

7SGA主要有那些部分,主要作用是什么?

db_cache(缓存数据块)shared_pool(缓存sql,执行计划,数据字典信息等)large_pool(MTS模式、parallel rman等要用到)java pool(java程序如SQLJ存储过程运行时要用到)

 

8Oracle系统进程主要有哪些,作用是什么?

smon(合并空间,实例恢复),pmon(清理失败的进程),归档进程(负责在日志切换的时候归档日志文件),lgmr(日志书写器进程,负责写日志),ckpt(检查点进程,触发检查点),dbwr(数据库写入器,负责把数据写入导datafile)。

 

 

三:备份恢复类

1:备份如何分类?

:逻辑备份(exp)与物理备份。或者冷备份与热备份。

 

2:归档是什么含义?

:把日志文件放到另一个地方。

 

3:如果一个表在2004-08-04 10:30:00 drop,在有完善的归档和备份的情况下,如何恢复

:拷贝备份,

recover database until time 2004-08-04 10:30:00

alter database open resetlogs;

 

4rman是什么,有何特点?

rman叫恢复管理器。

特点很多。可以在线备份,到少目标数据库是mount状态。1)热备份。

2)可以存储脚本。

3)可以增量备份。

4)自动管理备份集。

 

5standby的特点

:利用传输重做日志来达到同步的目的。可以设定多个保护级别,9i后支持逻辑standbyDB

 

6:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略

:每天一个全备份。

 

 

四:系统管理类

1:对于一个存在系统性能的系统,说出你的诊断处理思路

:做一个statspack,根据top 5system loadtop sql等来做相应的调整。

2:列举几种诊断IOCPU、性能状况的方法

hp-unix:iostat -x 1 5

top/vmstat/glance

3:对statspack有何认识?

:一个性能诊断工具而已,其本质就是在两个时间点采样两个系统数据。(动态性能视图),然后根据两个snapshot,产生一个报告。

4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响

1)增大sort_area_size8i/pga_aggregate_target9i)值。

2)如果表有分区(一般大表都要用到分区的),按分区逐个建索引,如果是本地索引的话。

3)系统空闲的时候建。

5:对raid10 raid5有何认识?

raid10是先镜像后条带,适合对写入速度要求较高的数据库系统,特别是online redolog文件,raid5适合大部分的数据库系统和数据仓库系统,读性能优于写性能。

 

 

五:综合随意类

1:你最擅长的是oracle哪部分?

:性能/sql 调优、备份恢复。

2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?

http://www.itpub.net/OracleSQL 优化。

3:随意说说你觉得oracle最有意思的部分或者最困难的部分

SQL调优,最困难的是Oracle的网络管理,OracleConnect Manager没用过。

4:为何要选择做DBA?

:爱好加职业历史积累。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23490498/viewspace-677205/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23490498/viewspace-677205/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值