标签:
杂谈 |
分类: ★、Certifications |
来源:http://topic.csdn.net/u/20080731/21/4b8eb01e-0523-4898-be3f-9cddc3b3a5b3.html
题库网1:http://www.geekinterview.com/Interview-Questions/Oracle
题库网2:http://download.csdn.net/detail/kokobox/503930
阿里巴巴公司DBA笔试题
http://searchdatabase.techtarget.com.cn/tips/2/2535002.shtml
注:以下题目,可根据自己情况挑选题目作答,不必全部作答.您也可以就相关问题直接找负责面试人员面述而不笔答
一:SQL tuning 类
1:列举几种表连接方式
2:不借助第三方工具,怎样查看sql的执行计划
________________________________________________________________
_________________________________________________________________-
一:SQL tuning 类
1:列举几种表连接方式
|
hash |
2:不借助第三方工具,怎样查看sql的执行计划
|
set |
|
|
详细答案:查看SQL执行计划常用方法 不论是做为开发DBA还是维护DBA,总是或多或少地遇到SQL执行效率或者说SQL调优问题,查看执行计划是必须的。本文介绍了3种常用查看方法。
不论是做为开发DBA还是维护DBA,总是或多或少地遇到SQL执行效率或者说SQL调优问题,查看执行计划是必须的。一般我们可以用3种方法查看:
一、explain plan for
举例就足以说明其用法
|
|
二、利用TKPROF工具
TKPROF是一个用于分析oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是跟踪用户的会话并且使用TKPROF工具的排序功能格式化输出,从而找出有问题的SQL语句。
TKPROF命令后面的选项及输出文件各个列的含义在这里不做详细的介绍。 google一下就会有很多资料。
下面简单描述一下TKPROF工具的使用步骤:
1、在session级别设置sql_trace=true
|
|
如果要在pl/sql中对session级别设置true,可以使用dbms_system这个包:
sys@ORCL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true);
2、指定一下生成的trace文件的名字,便于查找:
|
|
3、执行SQL语句。
4、利用TKPROF工具格式化输出的trace
文件:
|
|
5、查看生成的文件再设置sql_trace=false:
|
|
三、set autotrace on
此种方法最常用,关于如何设置sql*plus的autotrace这里也不做详细介绍,因为google上面资料确实太多了。有心的朋友可以去找找,保证有一大堆适合你的资料。
举个例子,这种方法简单易懂:
|
|
3:如何使用CBO,CBO与RULE的区别
在optimizer_mode=choose时,如果表有统计信息(分区表外),优化器将选择CBO,否则选RBO。RBO遵循简单的分级方法学,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目, 然后选择最佳级别(最少的数量)的执行路径来运行查询。
CBO尝试找到最低成本的访问数据的方法,为了最大的吞吐量或最快的初始响应时间,计算使用不同 的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。
4:如何定位重要(消耗资源多)的SQL
|
select
sql_text |
5:如何跟踪某个session的SQL
|
exec
dbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace); |
6:SQL调整最关注的是什么
查看该SQL的response time(db block gets/consistent gets/physical reads/sorts (disk))
7:说说你对索引的认识(索引的结构、对dml影响、为什么提高查询性能)
b-tree index/bitmap index/function index/patitional index(local/global) 索引通常能提高select/update/delete的性能,会降低insert的速度,
8:使用索引查询一定能提高查询的性能吗?为什么
索引就是为了提高查询性能而存在的, 如果在查询中索引没有提高性能, 只能说是用错了索引,或者讲是场合不同
9:绑定变量是什么?绑定变量有什么优缺点?
绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bind value在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool ;缺点是不能使用histogram,sql优化比较困难
10:如何稳定(固定)执行计划
|
query_rewrite_enabled |
创建并使用stored outline
|
http://download-west.oracle.com/ |
11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么
8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存
如果排序操作不能在sort_area_size中完成,就会用到temp表空间
9i中如果workarea_size_policy=auto时,
排序在pga内进行,通常pga_aggregate_target的1/20可以用来进行disk sort;
如果workarea_size_policy=manual时,排序需要的内存由sort_area_size决定
在执行order by/group by/distinct/union/create index/index rebuild/minus等操作时,
如果在pga或sort_area_size中不能完成,排序将在临时表空间进行(disk sort),
临时表空间主要作用就是完成系统中的disk sort.
12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql
|
create |
相比之 minus性能较差
数据库基本概念类
1:pctused and pctfree 表示什么含义有什么作用
pctused与pctfree控制数据块是否出现在freelist中,
pctfree控制数据块中保留用于update的空间,当数据块中的free space小于pctfree设置的空间时,
该数据块从freelist中去掉,当块由于dml操作free space大于pct_used设置的空间时,该数据库块将
被添加在freelist链表中。
2:简单描述table / segment / extent / block之间的关系
table创建时,默认创建了一个data segment,
每个data segment含有min extents指定的extents数,
每个extent据据表空间的存储参数分配一定数量的blocks
3:描述tablespace和datafile之间的关系
一个tablespace可以有一个或多个datafile,每个datafile只能在一个tablespace内,
table中的数据,通过hash算法分布在tablespace中的各个datafile中,
tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。
4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点
本地管理表空间(Locally Managed Tablespace简称LMT)
8i以后出现的一种新的表空间的管理模式,通过位图来管理表空间的空间使用。
字典管理表空间(Dictionary-Managed Tablespace简称DMT)
8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。
动段空间管理(ASSM),
它首次出现在Oracle920里有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,
能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,
ASSM表空间上创建的段还有另外一个称呼叫Bitmap
Managed Segments(BMB 段)。
5:回滚段的作用是什么
事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,
当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。
事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在undo表空间中,
ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。
读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。
当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)
当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN)
来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时,
若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。
6:日志的作用是什么
记录数据库事务,最大限度地保证数据的一致性与安全性
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件
归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
7:SGA主要有那些部分,主要作用是什么
|
SGA:db_cache/shared_pool/large_pool/java_pool |
数据库缓存(Block Buffer)对于Oracle数据库的运转和性能起着非常关键的作用,
它占据Oracle数据库SGA(系统共享内存区)的主要部分。Oracle数据库通过使用LRU
算法,将最近访问的数据块存放到缓存中,从而优化对磁盘数据的访问.
shared_pool:
共享池的大小对于Oracle 性能来说都是很重要的。
共享池中保存数据字典高速缓冲和完全解析或编译的的PL/SQL 块和SQL 语句及控制结构
large_pool:
使用MTS配置时,因为要在SGA中分配UGA来保持用户的会话,就是用Large_pool来保持这个会话内存
使用RMAN做备份的时候,要使用Large_pool这个内存结构来做磁盘I/O缓存器
java_pool:
为java procedure预备的内存区域,如果没有使用java proc,java_pool不是必须的
8 Oracle系统进程主要有哪些,作用是什么
数据写进程(dbwr):负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程(lgwr):将重做日志缓冲区中的更改写入在线重做日志文件
系统监控(smon) :检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控(pmon) :负责在一个Oracle 进程失败时清理资源
检查点进程(chpt):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
归档进程(arcn) :在每次日志切换时把已满的日志组进行备份或归档
作业调度器(cjq) :负责将调度与执行系统中已定义好的job,完成一些预定义的工作.
恢复进程(reco) :保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;
备份恢复类
1:备份如何分类
逻辑备份:exp/imp
物理备份:
RMAN备份
full backup/incremental backup(累积/差异)
热备份:alter tablespace begin/end backup;
冷备份:脱机备份(database shutdown)
2:归档是什么含义
关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。
其对数据库备份和恢复有下列用处:
数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。
在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。
数据库可运行在两种不同方式下:
NOARCHIVELOG方式或ARCHIVELOG 方式数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档,如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。3:如果一个表在2004-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,如何恢复?
手工拷贝回所有备份的数据文件
|
startup |
4:rman是什么,有何特点?
RMAN(Recovery Manager)是DBA的一个重要工具,用于备份、还原和恢复oracle数据库, RMAN 可以用来备份和恢复数据库文件、归档日志、控制文件、系统参数文件,也可以用来执行完全或不完全的数据库恢复。RMAN有三种不同的用户接口:
COMMAND LINE方式、GUI 方式(集成在OEM 中的备份管理器)、API 方式(用于集成到第三方的备份软件中)。
具有如下特点:
1)功能类似物理备份,但比物理备份强大N倍;
2)可以压缩空块;
3)可以在块水平上实现增量;
4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;
5)备份与恢复的过程可以自动管理;
6)可以使用脚本(存在Recovery catalog 中)
7)可以做坏块监测
5:standby的特点
备用数据库(standby database):ORACLE推出的一种高可用性(HIGH AVAILABLE)数据库方案,
在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份
可以实现快速切换与灾难性恢复,从920开始,还开始支持物理与逻辑备用服务器。
9i中的三种数据保护模式分别是:
1)、MAXIMIZE PROTECTION :最大数据保护与无数据分歧,LGWR将同时传送到备用节点,
在主节点事务确认之前,备用节点也必须完全收到日志数据。如果网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机。
2)、MAXIMIZE AVAILABILITY :无数据丢失模式,允许数据分歧,允许异步传送。
正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,
主节点的操作还是可以继续的。在网络不好的情况下有较大的性能影响。
3)、MAXIMIZE PERFORMANCE:这种模式应当可以说是从8i继承过来的备用服务器模式,异步传送,
无数据同步检查,可能丢失数据,但是能获得主节点的最大性能。9i在配置DATA GUARD的时候默认就是MAXIMIZE PERFORMANCE
6:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略
rman/每月一号 level 0
每周末/周三 level 1 其它每天level 2
四:系统管理类
对于一个存在系统性能的系统,说出你的诊断处理思路
1 做statspack收集系统相关信息
了解系统大致情况/确定是否存在参数设置不合适的地方/查看top 5 event/查看top sql等
2 查v$system_event/v$session_event/v$session_wait
从v$system_event开始,确定需要什么资源(db file sequential read)等
深入研究v$session_event,确定等待事件涉及的会话
从v$session_wait确定详细的资源争用情况(p1-p3的值:file_id/block_id/blocks等)
3 通过v$sql/v$sqltext/v$sqlarea表确定disk_reads、(buffer_gets/executions)值较大的SQL
2:列举几种诊断IO、CPU、性能状况的方法
top/vmstat
statspack
sql_trace/tkprof
查v$system_event/v$session_event/v$session_wait
查v$sqlarea(disk_reads或buffer_gets/executions较大的SQL)
3:对statspack有何认识
StapSpack是Oracle公司提供的一个收集数据库运行性能指标的软件包,该软件包从8i起,在9i、10g都有显著的增强 。该软件包的辅助表(存储相关参数与收集的性能指标的表)由最初的25个增长到43个。收集级别参数由原来的3个(0、5、10)增加到5个(0、5、6、7、10)通过分析收集的性能指标,数据库管理员可以详细地了解数据库目前的运行情况,对数据库实例、等待事件、SQL等进行优化调整。利用statspack收集的snapshot,可以统计制作数据库的各种性能指标的统计趋势图表。
4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响
在系统比较空闲时;nologging选项(如果有dataguard则不可以使用nologging)大的sort_ared_size或pga_aggregate_target较大
5:对raid1+0 和raid5有何认识
RAID 10(或称RAID 1+0)与RAID 0+1不同,它是用硬盘驱动器先组成RAID 1阵列,然后在RAID 1阵列之间再组成RAID 0阵列。RAID 10模式同RAID 0+1模式一样具有良好的数据传输性能,但却比RAID 0+1具有更高的可靠性。RAID 10阵列的实际容量为M×n/2,磁盘利用率为50%。RAID 10也需要至少4个硬盘驱动器构成,因而价格昂贵。 RAID 10的可靠性同RAID 1一样,但由于RAID 10硬盘驱动器之间有数据分割,因而数据传输性能优良。RAID 5与RAID 3很相似,不同之处在于RAID 5的奇偶校验信息也同数据一样被分割保存到所有的硬盘驱动器,而不是写入一个指定的硬盘驱动器,从而消除了单个奇偶校验硬盘驱动器的瓶颈问题。RAID 5磁盘阵列的性能比RAID 3有所提高,但仍然需要至少3块硬盘驱动器。其实际容量为M×(n-1),磁盘利用率为(n-1)/n 。
五:综合随意类
1:你最擅长的是oracle哪部分?
2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?
3:随意说说你觉得oracle最有意思的部分或者最困难的部分
4:为何要选择做DBA呢?
______________________________________________________________
最近听说OCP贬值了,据说大家都能随便考上了,偶特意为想考OCP和考过OCP的同学们制作了几道题目,题目看上去很简单,似乎答案可以脱口而出,如果10分钟内能够全部回答正确,偶相信你应该能够具备一个OCP所具有的思考能力了 :)
(1) A 表中有100条记录.
SELECT * FROM A WHERE A.COLUMN1 = A.COLUMN1
这个语句返回几条记录? (简单吧,似乎1秒钟就有答案了:)
(2) CREATE SEQUENCE PEAK_NO
SELECT PEAK_NO.NEXTVAL FROM DUAL --> 假设返回1
10秒中后,再次做
SELECT PEAK_NO.NEXTVAL FROM DUAL --> 返回多少?
(3) SQL> connect sys as sysdba
Connected.
SQL> insert into dual values ( 'Y');
1 row created.
SQL> commit;
Commit complete.
SQL> select count(*) from dual;
COUNT(*)
----------
2
SQL> delete from dual;
commit;
-->DUAL里还剩几条记录?
______________________________________________________________________________
ORACLE 面试问题-技术篇
1. 解释冷备份和热备份的不同点以及各自的优点
解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)
2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?
解答:重建控制文件,用带backup control file 子句的recover 命令恢复
数据库。
3. 如何转换init.ora到spfile?
解答:使用create spfile from pfile 命令
.
4. 解释data block , extent 和 segment的区别(这里建议用英文术语)
解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象
拥有的所有extents被称为该对象的segment.
5. 给出两个检查表结构的方法
解答:1。DESCRIBE命令
2. DBMS_METADATA.GET_DDL 包
6. 怎样查看数据库引擎的报错
解答:alert log.
7. 比较truncate和delete 命令
解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.
8. 使用索引的理由
解答:快速访问表中的data block
9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据
解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放对fact table 某些属性描述的信息
10. FACT Table上需要建立何种索引?
解答:位图索引 (bitmap index)
11. 给出两种相关约束?
解答:主键和外键
12. 如何在不影响子表的前提下,重建一个母表
解答:子表的外键强制实效,重建母表,激活外键
13. 解释归档和非归档模式之间的不同和它们各自的优缺点
解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高
.
14. 如何建立一个备份控制文件?
解答:Alter database backup control file to trace.
15. 给出数据库正常启动所经历的几种状态 ?
解答:
STARTUP NOMOUNT – 数据库实例启动
STARTUP MOUNT - 数据库装载
STARTUP OPEN – 数据库打开
16. 哪个column可以用来区别V$视图和GV$视图?
解答: INST_ID 指明集群环境中具体的 某个instance 。
17. 如何生成explain plan?
解答:
运行utlxplan.sql. 建立plan 表
针对特定SQL语句,使用 explain plan set statement_id = 'tst1' into plan_table
运行utlxplp.sql 或 utlxpls.sql察看explain plan
18. 如何增加buffer cache的命中率?
解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用 alter system set db_cache_size 命令
19. ORA-01555的应对方法?
解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过
增大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本
20. 解释$ORACLE_HOME和$ORACLE_BASE的区别?
解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品
的目录。
21. 如何判断数据库的时区?
解答:SELECT DBTIMEZONE FROM DUAL;
22. 解释GLOBAL_NAMES设为TRUE的用途
解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE,
在建立数据库链接时就必须用相同的名字连结远程数据库
23。如何加密PL/SQL程序?
解答:WRAP
24. 解释FUNCTION,PROCEDURE和PACKAGE区别
解答:function 和procedure是PL/SQL代码的集合,通常为了完成
一个任务。procedure 不需要返回任何值而function将返回一个值
在另一方面,Package是为了完成一个商业功能的一组function和proceudre
的集合
25. 解释TABLE Function的用途
解答:TABLE Function是通过PL/SQL逻辑返回一组纪录,用于
普通的表/视图。他们也用于pipeline和ETL过程。
26. 举出3种可以收集three advisory statistics
解答:Buffer Cache Advice, Segment Level Statistics, Timed Statistics
27. Audit trace 存放在哪个oracle目录结构中?
解答:unix $ORACLE_HOME/rdbms/audit
Windows the event viewer
28. 解释materialized views的作用
解答:Materialized views 用于减少那些汇总,集合和分组的
信息的集合数量。它们通常适合于数据仓库和DSS系统。
29. 当用户进程出错,哪个后台进程负责清理它
解答: PMON
30. 哪个后台进程刷新materialized views?
解答:The Job Queue Processes.
31. 如何判断哪个session正在连结以及它们等待的资源?
解答:V$SESSION / V$SESSION_WAIT
32. 描述什么是 redo logs
解答:Redo Logs 是用于存放数据库数据改动状况的物理和逻辑结构。
可以用来修复数据库.
33. 如何进行强制LOG SWITCH?
解答:ALTER SYSTEM SWITCH LOGFILE;
34. 举出两个判断DDL改动的方法?
解答:你可以使用 Logminer 或 Streams
35. Coalescing做了什么?
解答:Coalescing针对于字典管理的tablespace进行碎片整理,将
临近的小extents合并成单个的大extent.
36. TEMPORARY tablespace和PERMANENT tablespace 的区别是?
解答:A temporary tablespace 用于临时对象例如排序结构而 permanent tablespaces
用来存储那些'真实'的对象(例如表,回滚段等)
37. 创建数据库时自动建立的tablespace名称?
解答:SYSTEM tablespace.
38. 创建用户时,需要赋予新用户什么权限才能使它联上数据库。
解答:CONNECT
39. 如何在tablespace里增加数据文件?
解答:ALTER TABLESPACE <tablespace_name> ADD DATAFILE <datafile_name> SIZE <size>
40. 如何变动数据文件的大小?
解答:ALTER DATABASE DATAFILE <datafile_name> RESIZE <new_size>;
41. 哪个VIEW用来检查数据文件的大小?
解答: DBA_DATA_FILES
42. 哪个VIEW用来判断tablespace的剩余空间
解答:DBA_FREE_SPACE
43. 如何判断谁往表里增加了一条纪录?
解答:auditing
44. 如何重构索引?
解答: ALTER INDEX <index_name> REBUILD;
45. 解释什么是Partitioning(分区) 以及它的优点。
解答:Partition将大表和索引分割成更小,易于管理的分区。
46. 你刚刚编译了一个PL/SQL Package但是有错误报道,如何显示出错信息?
解答:SHOW ERRORS
47. 如何搜集表的各种状态数据?
解答: ANALYZE
The ANALYZE command.
48. 如何启动SESSION级别的TRACE
解答: DBMS_SESSION.SET_SQL_TRACE
ALTER SESSION SET SQL_TRACE = TRUE;
49. IMPORT和SQL*LOADER 这2个工具的不同点
解答:这两个ORACLE工具都是用来将数据导入数据库的。
区别是:IMPORT工具只能处理由另一个ORACLE工具EXPORT生成
的数据。而SQL*LOADER可以导入不同的ASCII格式的数据源
50。 用于网络连接的2个文件?
解答: TNSNAMES.ORA and SQLNET.ORA
______________________________________________________________________
淘宝网的问题
数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义?
表空间管理方式有哪几种,各有什么优劣。
本地索引与全局索引的差别与适用情况。
一个表a varchar2(1),b number(1),c char(2),有100000条记录,创建B-Tree索引在字段a上,那么表与索引谁大?为什么?
9i的data guard有几种模式,各有什么差别。
执行计划是什么,查看执行计划一般有哪几种方式。
简单描述一下nest loop与hash join的差别。
db file sequential read与db file scattered read等待的差别,如果以上等待比较多,证明了什么问题?
library cache pin与library cache lock是什么地方的等待事件,一般说明什么问题?
在一个24*7的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引(a,b)修改成唯一约束(a,b,c),你一般会选择怎么做,请说出具体的操作步骤与语句。
如果一个linux上的oracle数据库系统突然变慢,你一般从哪里去查找原因。
说明一下对raid5与raid01/10的认识。
列举5个10g的新特性
______________________________________________________________________
引用:http://topic.csdn.net/u/20080729/00/1a49ea4d-7a5c-49bb-8a58-86aa8f0ac5d6.html
1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:
101a1001
101a1001
102a1002
102a1003
103a1004
104a1005
104a1006
105a1007
105a1007
105a1007
结果:
102a1002
102a1003
104a1005
104a1006
3、有员工表empinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人:
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary <9999 and fage > 35
fsalary <9999 and fage < 35
每种员工的数量;
4、表A字段如下
month person income
月份 人员 收入
要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份 当月收入 上月收入 下月收入
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5
要求的处数据
2005-01-01 4
2005-01-02 5
合计 9
试用一个Sql语句完成。
6,数据库1,2,3 范式的概念与理解。
7,简述oracle行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。
8、oracle临时表有几种。
临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么?
9,怎么实现:使一个会话里面执行的多个过程函数或触发器里面都可以访问的全局变量的效果,并且要实现会话间隔离?
10,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
11,简述SGA主要组成结构和用途?
12什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些?
13,背景:某数据运行在archivelog,且用rman作过全备份和数据库的冷备份,
且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。
14,用rman写一个备份语句:备份表空间TSB,level 为2的增量备份。
15,有个表a(x number(20),y number(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。
_________________________________________________________________________
1如果信息采集管理系统(ICM)崩溃了怎么办?
2你如何加速打补丁的过程?
3打补丁的过程中出错了,你怎么办?
4请提供克隆过程和克隆之后采取的手工操作的大概步骤。
5介绍一下AutoConfig。AutoConfig是如何知道文件中的哪个树脂需要被放入哪一个文件的?
6你能告诉我,你对一个发生故障的自服务登录问题做哪些测试吗?你要检查哪个配置文件操作选项和文件?
7如果你不能看到并发管理日志和输出文件,是哪里出错了?
8你是如何更改并发管理日志和输出文件的位置的?
9如果用户正遇到性能方面的问题,你如何找到问题的原因?
10你如何更改应用程序的密码?
11请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名?
答案
1所有其他的管理器都会继续工作。ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器。
实际的技术对话
少数能够通过电话面试的候选人能够到工作地点去进行面试,Burleson称之为候选人的技术化。他建议面试人员提出一些专业的,例如"中的SYS用户默认密码是多少?"
这些问题没有捏造的答案,面试人员可以轻松地判断候选人的技术能力。"只有那些实践过的员知道答案是'change_on_install,'" Burleson说。"经验丰富的管理员可以立即发现谎话。"
然后就是最后一个阶段,与公司的IT人员在线会见。这些会见通常会持续半天,这是真正在测试你是否会被雇佣。有时候是一些开放的问题,例如"如果一个终 端用户抱怨性能差劲,你要做的第一件事情是什么?"这些问题的答案非常具有启发性,Burleson说,因为他们也没有正确答案,他们只是看看候选人是如 何独立思考的,或者是数据库管理员有多少创新思维。
也许更重要的是,这个最后的交流就是判断一些无形的,例如人际关系技巧的过程。拥有一个能够成为团队中一员的数据库管理员对于大多数公司(即使不是所有的公司)来说都是优先考虑的。在很多情况下 ,这些无形的东西形成了差别。
"我见过公司拒绝了技术能力最强的候选人。这样的事情总是发生," Burleson指出。"数据库管理员需要与其他人打好关系。"
最后,Burleson说,忘掉星期五可以穿便装的习惯。
"面试中穿得太随便是对自己的极度不负责,"他说。
"外表确实重要。"
————————————————————————————————————
整理了几个Oracle面试中的技术问题,各位可以借鉴一下:
1.解释冷备份和热备份的不同点以及各自的优点
解 答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于 当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在 非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)
2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?
解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。
3.如何转换init.ora到spfile?
解答:使用create spfile from pfile 命令.
4.解释data block , extent 和 segment的区别(这里建议用英文术语)
解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.
5.给出两个检查表结构的方法
解答:1.DESCRIBE命令
2.DBMS_METADATA.GET_DDL 包
6.怎样查看数据库引擎的报错
解答:alert log.
评价:这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE概念的熟悉程度。
2
2.1你可以合并多个补丁。
2.2你可以为一个非交互的补丁创建一个响应文件。
2.3你可以通过选项(nocompiledb, nomaintainmrc, nocompile)来应用补丁,并且在应用了所有的补丁之后,一次运行它们。
3 查看失败工作的日志,找到并且纠正错误,用adctrl 工具重新开启工作。
4在源文件上(所有层)运行pre-clone,使用RMAN复制(或者从热或者冷备份中重新存储数据库),拷贝文件系统,然后在目标文件(所有层)上运行post-clone 。
手工步骤(可能会更多):
4.1改变所有的非网站配置选项数值(快速克隆的话,只改变网站级别的配置文件选项)。
4.2 修改工作流和并发管理器表。
4.3更改打印机。
5 AutoConfig 使用了一个上下文文件来维护关键的配置文件。一个上下文文件就是一个文件,在$APPL_TOP/admin 目录下,进行集中式的存储。
当你运行AutoConfig 的时候,它读取XML文件,并且创建所有的AutoConfig 管理配置文件。
对于AutoConfig维护的每个配置文件,都存在一个临时文件来判断哪个数值是从哪个XML文件中得来的。
6
6.1检查DBC文件中的guest的用户名和密码,配置选项guest的用户名和密码、数据库。
6.2查看apache/jserv是否启动了。
6.3运行IsItWorking, FND_.PING, aoljtest等。
7很有可能是FNDFS监听器停止了。看看 FND_CONCURRENT_REQUESTS 表中的OUTFILE_NODE_NAME 和 LOGFILE_NODE_NAME 的数值。看看FND_NODES 表。看看tnsnames.ora 中的FNDFS_ entry 。
8日志问卷爱女的位置是由$APPLCSF/$APPLLOG 参数来决定的,输出文件的位置是由$APPLCSF/$APPLOUT 决定的。
9
9.1追踪这个会话(用等待)并且使用tkprof 来分析追踪文件。
9.2生成statspack 报告并进行分析。
9.3使用top/iostat/sar/vmstat 监控O/s 。
9.4通过ping这类基本的测试结果来判断网络的瓶颈。
10
10.1 使用FNDCPASS 来更改APPS密码。
10.2 手工修改wdbsvr.app/CMD.dat 文件。
10.3 更改所有从其他环境指过来的数据库链接。
11
11.1位置:$FND_TOP/secure directory
11.2 重要性:在其他事务中指向数据库。
11.3 应用程序通过使用"Applications Database Id."来了解DBC文件的名字。
怎样查看数据库引擎的报错
解答:alert log.
7. 比较truncate和delete 命令
解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.
___________________
有一句SQL语句打印一个乘法表。这是亚信的一道笔试题
____________________
(1) A 表中有100条记录.
SELECT * FROM A WHERE A.COLUMN1 = A.COLUMN1
这个语句返回几条记录?
(2) CREATE SEQUENCE PEAK_NO
SELECT PEAK_NO.NEXTVAL FROM DUAL --> 假设返回1
10秒中后,再次做
SELECT PEAK_NO.NEXTVAL FROM DUAL --> 返回多少?
(3) SQL> connect sys as sysdba
Connected.
SQL> insert into dual values ( 'Y');
1 row created.
SQL> commit;
Commit complete.
SQL> select count(*) from dual;
COUNT(*)
----------
2
SQL> delete from dual;
commit;
-->DUAL里还剩几条记录?
自己解答:
(1) 100
(2) 2
(3) 1
请大家鉴定
________________________________________
. 解释冷备份和热备份的不同点以及各自的优点
解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)
2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?
解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。
3. 如何转换init.ora到spfile?
解答:使用create spfile from pfile 命令。
4. 解释data block , extent 和 segment的区别(这里建议用英文术语)
解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.
5. 给出两个检查表结构的方法
解答:1.describe命令
2.dbms_metadata.get_ddl 包
6. 怎样查看数据库引擎的报错
解答:alert log.
7. 比较truncate和delete 命令
解答:两者都可以用来删除表中所有的记录。区别在于:truncate是ddl操作,它移动hwk,不需要 rollback segment .而delete是dml操作, 需要rollback segment 且花费较长时间。
8. 使用索引的理由
解答:快速访问表中的data block
9. 给出在star schema中的两种表及它们分别含有的数据
解答:fact tables 和dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放对fact table 某些属性描述的信息
10. fact table上需要建立何种索引?
解答:位图索引(bitmap index)
11. 给出两种相关约束?
解答:主键和外键
12. 如何在不影响子表的前提下,重建一个母表
解答:子表的外键强制实效,重建母表,激活外键
13. 解释归档和非归档模式之间的不同和它们各自的优缺点
解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高。
14. 如何建立一个备份控制文件?
解答:alter database backup control file to trace.
15. 给出数据库正常启动所经历的几种状态 ?
解答:startup nomount 数据库实例启动 startup mount 数据库装载 startup open 数据库打开
16. 哪个column可以用来区别v$视图和gv$视图?
解答: inst_id 指明集群环境中具体的某个instance .
17. 如何生成explain plan?
解答:运行utlxplan.sql. 建立plan 表针对特定sql语句,使用 explain plan set statement_id = 'tst1' into plan_table 运行utlxplp.sql 或 utlxpls.sql察看explain plan
18. 如何增加buffer cache的命中率?
解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用 alter system set db_cache_size 命令
19. ora-01555的应对方法?
解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增大rollback seg来解决问题。当然也需要察看一下具体造成错误的sql文本
20. 解释$oracle_home和$oracle_base的区别?
解答:oracle_base是oracle的根目录,oracle_home是oracle产品的目录。
_______________________________________________
1.解释冷备份和热备份的不同点以及各自的优点
2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?
3.如何转换init.ora到spfile?
4.解释data block , extent 和 segment的区别(这里建议用英文术语)
5.给出两个检查表结构的方法
6.怎样查看数据库引擎的报错
.
7事务是什么?
8 oracle中truncate和delete命令有何区别?
9 Oracle中char和varchar2数据类型有什么区别?有数据"test"分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别?
10 什么是聚集索引,什么是非聚集索引,什么又是主键?
________________________________________________
1、EXISTS与IN的执行效率问题
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,如果另一个表是小表用in 效率高,是大表用exists 效率高。
2、PL/SQL包含哪些部分
Pl/sql 的块结构包括:定义部分,执行部分,异常处理部分。
3、BETWEEN AND 边界问题
Between and 包括边界值
4、带条件的查询语句
Select * from xx where …;
6、索引的创建问题
参考:
要在自己的模式中创建索引,满足的条件:
A、被索引的表或者簇在自己的模式中;
B、在要被索引的表上具有index 权限或者有create any index 系统权限。
要在其它模式中创建索引,满足的条件:
A、具有create any index 系统权限;
B、其它模式的拥有者在保存索引或索引分区的表空间中有限额,或者他具有unlimited tablespace
7、DML,DDL有哪些语句
DDL 数据定义语言: CREATE,DROP,ALTER,GRANT,REVOKE,TRUNCATE,ANALYZE
DML 数据操纵语言: SELECT,INSERT,UPDATE,DELETE,SET TRANCTION等
9、数据库的COMMIT与ROLLBACK
COMMIT:提交事务
ROLLBACK:回滚事务
11、DELETE与TRUNCATE的区别
truncate可以快速清空表,释放空间,但不能回滚;
delete可
删除指定条件记录并可回滚
_______________________________________________
1.存储过程和函数的区别
存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。
2.事务是什么?
事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。
隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
持久性
事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
3.游标的作用?如何知道游标已经到了最后?
游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。
4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。
语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。
______________________________________________
解释冷备份和热备份的不同点以及各自的优点
解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)
2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?
解答:重建控制文件,用带backup control file 子句的recover 命令恢复
数据库。
3. 如何转换init.ora到spfile?
解答:使用create spfile from pfile 命令.
4. 解释data block , extent 和 segment的区别(这里建议用英文术语)
解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象
拥有的所有extents被称为该对象的segment.
5. 给出两个检查表结构的方法
解答:1。DESCRIBE命令
2. DBMS_METADATA.GET_DDL 包
6. 怎样查看数据库引擎的报错
解答:alert log.
7. 比较truncate和delete 命令
解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.
8. 使用索引的理由
解答:快速访问表中的data block
9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据
解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放对fact table 某些属性描述的信息
10. FACT Table上需要建立何种索引?
解答:位图索引 (bitmap index)
11. 给出两种相关约束?
解答:主键和外键
12. 如何在不影响子表的前提下,重建一个母表
解答:子表的外键强制实效,重建母表,激活外键
13. 解释归档和非归档模式之间的不同和它们各自的优缺点
解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高
.
14. 如何建立一个备份控制文件?
解答:Alter database backup control file to trace.
15. 给出数据库正常启动所经历的几种状态 ?
解答:
STARTUP NOMOUNT – 数据库实例启动
STARTUP MOUNT - 数据库装载
STARTUP OPEN – 数据库打开
16. 哪个column可以用来区别V$视图和GV$视图?
解答: INST_ID 指明集群环境中具体的 某个instance 。
17. 如何生成explain plan?
解答:运行utlxplan.sql. 建立plan 表
针对特定SQL语句,使用 explain plan set statement_id = 'tst1' into plan_table
运行utlxplp.sql 或 utlxpls.sql察看explain plan
18. 如何增加buffer cache的命中率?
解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用 alter system set db_cache_size 命令
19. ORA-01555的应对方法?
解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过
增大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本
20. 解释$ORACLE_HOME和$ORACLE_BASE的区别?
解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品
的目录。
21. 如何判断数据库的时区?
解答:SELECT DBTIMEZONE FROM DUAL;
22. 解释GLOBAL_NAMES设为TRUE的用途
解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE,在建立数据库链接时就必须用相同的名字连结远程数据库
23。如何加密PL/SQL程序?
解答:WRAP
24. 解释FUNCTION,PROCEDURE和PACKAGE区别
解答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而function将返回一个值在另一
方面,Package是为了完成一个商业功能的一组function和proceudre的集合
25. 解释TABLE Function的用途
解答:TABLE Function是通过PL/SQL逻辑返回一组纪录,用于普通的表/视图。他们也用于pipeline和ETL过程。
26. 举出3种可以收集three advisory statistics
解答:Buffer Cache Advice, Segment Level Statistics, Timed Statistics
27. Audit trace 存放在哪个oracle目录结构中?
解答:unix $ORACLE_HOME/rdbms/audit Windows the event viewer
28. 解释materialized views的作用
解答:Materialized views 用于减少那些汇总,集合和分组的信息的集合数量。它们通常适合于数据仓库和DSS系统。
29. 当用户进程出错,哪个后台进程负责清理它
解答: PMON
30. 哪个后台进程刷新materialized views?
解答:The Job Queue Processes.
31. 如何判断哪个session正在连结以及它们等待的资源?
解答:V$SESSION / V$SESSION_WAIT
32. 描述什么是 redo logs
解答:Redo Logs 是用于存放数据库数据改动状况的物理和逻辑结构。可以用来修复数据库.
33. 如何进行强制LOG SWITCH?
解答:ALTER SYSTEM SWITCH LOGFILE;
34. 举出两个判断DDL改动的方法?
解答:你可以使用 Logminer 或 Streams
35. Coalescing做了什么?
解答:Coalescing针对于字典管理的tablespace进行碎片整理,将临近的小extents合并成单个的大extent.
36. TEMPORARY tablespace和PERMANENT tablespace 的区别是?
解答:A temporary tablespace 用于临时对象例如排序结构而 permanent tablespaces用来存储那些'真实'的对象(例如表,回滚段等)
37. 创建数据库时自动建立的tablespace名称?
解答:SYSTEM tablespace.
38. 创建用户时,需要赋予新用户什么权限才能使它联上数据库。
解答:CONNECT
39. 如何在tablespace里增加数据文件?
解答:ALTER TABLESPACE ADD DATAFILE SIZE
40. 如何变动数据文件的大小?
解答:ALTER DATABASE DATAFILE RESIZE ;
41. 哪个VIEW用来检查数据文件的大小?
解答: DBA_DATA_FILES
42. 哪个VIEW用来判断tablespace的剩余空间
解答:DBA_FREE_SPACE
43. 如何判断谁往表里增加了一条纪录?
解答:auditing
44. 如何重构索引?
解答: ALTER INDEX REBUILD;
45. 解释什么是Partitioning(分区)以及它的优点。
解答:Partition将大表和索引分割成更小,易于管理的分区。
46. 你刚刚编译了一个PL/SQL Package但是有错误报道,如何显示出错信息?
解答:SHOW ERRORS
47. 如何搜集表的各种状态数据?
解答: ANALYZE
The ANALYZE command.
48. 如何启动SESSION级别的TRACE
解答: DBMS_SESSION.SET_SQL_TRACE
ALTER SESSION SET SQL_TRACE = TRUE;
49. IMPORT和SQL*LOADER 这2个工具的不同点
解答:这两个ORACLE工具都是用来将数据导入数据库的。
区别是:IMPORT工具只能处理由另一个ORACLE工具EXPORT生成
的数据。而SQL*LOADER可以导入不同的ASCII格式的数据源
50。用于网络连接的2个文件?
解答: TNSNAMES.ORA and SQLNET.ORA
________________________________________________
1.在数据库中条件查询速度很慢的时候,如何优化?
1.建索引
2.减少表之间的关联
3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据量大的表排在前面
4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
________________________________________________
1 使用函数时,下列哪一个描述是不正确的
A 不要忘记获取返回值
B 不能用过程来调用函数
C 可以定义不能返回值的函数
D 可以定义没有返回类型的函数
2 下列关于包的说法,不正确的是
A 不能够在还没有编写包主体的情况下调用包
B 主体包含了规范的实现、以及私有例程/数据/变量
C 不能直接调用Oracle提供的包
D DBMS_OUTPUT程序包可以让用户输出文本信息
3 PL/SQL匿名块中
A 注释可以嵌套 B 执行体可以嵌套
C 所有组成成分都不能嵌套 D 以上答案均不正确
第一题选B,过程完全可以调用函数,只要接收回值就和调用其他过程一样。
第二题选C,oracle 提供的包就是一些pl/sql形式的API,当然可以调用了。
第三题选B,一个使用 begin/end 的块中可以包含其他 begin/end 块。
______________________________________________
1 如何增加buffer cache的命中率?
解答:在数据库较繁忙时,适用buffer cache advisory 工具,查询v$db_cache_advice . 如果有必要更改,可以使用 alter system set db_cache_size 命令
2 ora-01555的应对方法?
解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增大rollback seg来解决问题。当然也需要察看一下具体造成错误的sql文本
3. 解释$oracle_home和$oracle_base的区别?
解答:oracle_base是oracle的根目录,oracle_home是oracle产品的目录。
____________________________________________________
(1)用rowid方法据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:
查数据:
select * from table1 a where rowid !=(select max(rowid)
from table1 b where a.name1=b.name1 and a.name2=b.name2......)
删数据:
delete from table1 a where rowid !=(select max(rowid)
from table1 b where a.name1=b.name1 and a.name2=b.name2......)
(2)group by方法
查数据:
select count(num), max(name) from student --列出重复的记录数,并列出他的name属性
group by num
having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次
删数据:
delete from student
group by num
having count(num) >1
这样的话就把所有重复的都删除了。
(3)用distinct方法 -对于小的表比较有用
create table table_new as select distinct * from table1 minux
truncate table table1;
insert into table1 select * from table_new;
本文介绍了一个删除 MySQL 表中有重复数据的办法
CREATE TEMPORARY TABLE
bad_temp2(id VARCHAR(10), name VARCHAR(20))
TYPE=HEAP;
INSERT INTO bad_temp2(name) SELECT DISTINCT name FROM bad_table2;
DELETE FROM bad_table2;
INSERT INTO bad_table2(id,name) SELECT id,name FROM bad_temp2;
以上方法采用建立临时表的办法删除了 bad_table2 中 name 字段有重复的记录。
_______________________________________________________
我给你留两个吧
问题:为管理岗位业务培训信息,建立3个表:
S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄
C(C#,CN)C#,CN分别代表课程编号,课程名称
SC(S#,C#,G)S#,C#,G分别代表学号,所选修的课程编号,学习成绩
问题1.1使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位;
问题1.2使用标准SQL嵌套语句查询不选修课程编号民为'C5'的学员姓名和所属单位;
问题1.3使用标准SQL嵌套语句查询选修课程编号民为'C2'的学员姓名和所属单位;
问题1.4使用标准SQL嵌套语句查询选修课程名称为'税收基础'的学员学号和姓名;
问题1.5查询选修了课程的学员人数
问题1.6查询选修课程超过5门的学员学号和所属单位
问题:数据库
产品表(PRODUCT)
PRODUCTID - 产品 - 定价 - 生产地
1 NAME1 110 北京
2 NAME2 115 北京
3 NAME3 120 天津
4 NAME4 125 天津
销售计划(PLAN)
PRODUCTID - 客户名 - 订货数量 - 销售单价
2 m 2 250
1 n 3 115
3 n 1 300
4 m 2 400
问题3。1获取各生产地的产品和销售总金额(销售总金额=销售单价*订货数量)
问题3。2求客户中销售总金额最大值的SQL语句
问题3。3删除产品表中,销售单价<300的产品
问题3。4求销售计划表中记录有两笔以上的客户名。
________________________________________________
1 PL/SQL代表
A PROCEDURAL LANGUAGE/SQL
B PROGRAM LANGUAGE SQL
C POWER LANGUAGE SQL
D 都不对
2 _____引擎执行PL/SQL块
A SQL
B PL/SQL
C ORACLE
D 都不对
3 一个对象可以呈现多种形式的能力称为
A 多态
B 继承
C 封装
D 以上都不对
4 PLSQL块是由哪几个部分组成
A DECLARE BEGIN END
B BEGIN END
C EXCEPTION BEGIN END
D DECLARE BEGIN EXCEPTION END
5 看下面代码,正确的是
A DECLARE
DBMS_OUTPUT.PUT_LINE('定义部分');
BEGIN
DBMS_OUTPUT.PUT_LINE('语句部分');
END;
B BEGIN
NUM NUMBER:=100;
DBMS_OUTPUT.PUT_LINE('NUM 的值为:'||NUM);
END;
C DECLARE
NUM NUMBER:=100;
BEGIN
NUM:=NUM+NUM/2;
DBMS_OUTPUT.PUT_LINE('NUM 的值为:'||NUM);
END;
D BEGIN
NUM NUMBER:=100;
DECLARE
NUM:=NUM+NUM/2;
DBMS_OUTPUT.PUT_LINE('NUM 的值为:'||NUM);
END;
6 看下面语句正确的是
A IF(N%M=0) THEN
DBMS_OUTPUT.PUT_LINE('这是一个偶数');
ELSEIF(N%M=1) THEN
DBMS_OUTPUT.PUT_LINE('这是一个奇数');
END IF;
B DECLARE
VAR NUMBER:=0;
BEGIN
VAR:=&V;
CASE
WHEN VAR=1 THEN
DBMS_OUTPUT.PUT_LINE('A');
WHEN VAR=2 THEN
DBMS_OUTPUT.PUT_LINE('B');
ELSE
DBMS_OUTPUT.PUT_LINE('O');
END CASE;
END;
C DECLARE
I NUMBER:=0;
BEGIN
FOR I IN 10..20 LOOP
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
END;
D LOOP
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
7. 当在一个PLSQL块中通过查询得到一个值,但是没有任何值返回时,会产生异常吗?如果产生,是什么异常?
A 不会有异常,只不过没有结果而已
B 有异常,异常为No_data_found
C 有异常,异常为Value_erro
D 编译都不通过
8. 在PLSQL块中处理异常的语句是
A EXCEPTION
IF EXCEPTION_NAME THEN
DBMS_OUTPUT.PUT_LINE();
END;
B EXCEPTION
WHEN EXCEPTION_NAME THEN
DBMS_OUTPUT.PUT_LINE();
END EXCEPTION ;
C WHEN EXCEPTION_NAME THEN
DBMS_OUTPUT.PUT_LINE();
D BEGIN
NULL;
EXCEPTION
WHEN EXCEPTION_NAME THEN
DBMS_OUTPUT.PUT_LINE();
END ;
9. 当用户在PLSQL块中,像抛出自定义异常或者是系统异常时,所使用的关键字是
A THROW
B RAISE
C RAISE_APPLICATION_ERROR
D EXCEPTION
10. 在自定义异常中,用户可用的错误号范围在
A 20000 ~ 29999
B -20000 ~ -20999
C 1~65535
D 没有限制
11. 阅读代码
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('外不快');
DECLARE
MYEXCE EXCEPTION;
BEGIN
RAISE MYEXCE;
END;
EXCEPTION
WHEN MYEXCE THEN
DBMS_OUTPUT.PUT_LINE('异常捕获');
END;
出现的结果是
A 编译时报错 PLS-00201: 必须说明标识符 'MYEXCE'
B 运行时报错,在外部无法捕获到内部异常
C 可以正常执行
D 编译时报错,PLSQL块不能嵌套
12. 使用游标的步骤,有哪几步
A 打开游标、使用游标、关闭游标
B 定义游标、打开游标、使用游标、关闭游标
C 定义游标、使用游标、关闭游标
D 定义游标、打开游标、使用游标、
13 游标有哪几种类型
A 静态游标、动态游标
B 隐式游标、显示游标
C 变量游标、常量游标
D 参数游标、ref 游标
14 阅读下列代码
DECLARE
TOTALEMP NUMBER;
BEGIN
SELECT COUNT(*) INTO TOTALEMP FROM EMP;
IF(SQL%FOUND) THEN
DBMS_OUTPUT.PUT_LINE('有数据');
END IF;
END;
这段代码中是否使用了游标,如果使用了,使用的是什么类型的游标
A 使用了游标,游标类型为参数游标
B 使用了游标,游标类型为式游标
C 使用了游标,游标类型为ref 游标
D 这段代码中根本没有使用到游标
15. 下列哪个游标的定义是正确的
A TYPE CURSOR EMPCUR IS SELECT * FROM EMP;
B TYPE EMPCUR IS CURSOR OF SELECT * FROM EMP;;
C CURSOR EMPCUR IS SELECT * FROM EMP;
D TYPE EMPCUR IS REF CURSOR AS SELECT * FROM EMP;
16 在存储过程中,参数模式有哪几种
A IN、OUT
B IN、OUT、IN OUT
C INPUT、OUTPUT
D OUT INOUT
17 关于存储过程返回值的类型,说法对的是
A 只能是基本类型
B 可以是任何类型
C 只能是 NUMBER VARCHAR2 DATE BOOLEAN
D 可以使基本类型和用户类型
18 存储过程和函数的区别是
A 过程可以返回多个值,而函数只能返回一个值
B 函数可以作为PLSQL表达式的一部分,而过程不能
C 函数可以返回多个值,过程只能返回一个
D 函数和过程都必须包含RETURN语句
19 过程和函数的重载,正确的是
A Oracle中过程和函数不能重载
B Oracle中的过程和函数只有在包中存在时,才能被重载
C Oracle中的过程和函数随时随地都可以被重载
D 函数可以重载,过程不能被重载
20 Oracle中程序包的特点是
A 可以写函数和过程
B 任何能够定义在声明部分的内容,都可以出现在包中,包就是用来对代码进行封装的
C 包是一个可选结构,其中只能定义函数和过程
D 定义在包中的过程和函数不能被外部代码所访问
21 下面关于保的说法错误的是
A 有包头,就必须有包体
B 包可分为包头和包体两部分,但包体不是必须的
C 如果只用函数和过程,则可以只有包体,没有包头
D 包可以继承
22 阅读代码,函数被正确重载是
A CREATE OR REPLACE PACKAGE TESTPACKAGE AS
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2)
RETURN BOOLEAN;
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 IN OUT VARCHAR2)
RETURN BOOLEAN;
END TESTPACKAGE;
B CREATE OR REPLACE PACKAGE TESTPACKAGE AS
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2);
RETURN BOOLEAN;
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM3 OUT VARCHAR2);
RETURN VARCHAR2;
END TESTPACKAGE;
C CREATE OR REPLACE PACKAGE TESTPACKAGE AS
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2);
RETURN BOOLEAN
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT NUMBER);
RETURN OBJECT
END TESTPACKAGE;
D CREATE OR REPLACE PACKAGE TESTPACKAGE AS
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2);
RETURN BOOLEAN
FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT CHAR);
RETURN OBJECT
END TESTPACKAGE;
23 触发器有哪些级别
A 行级触发器和字段级触发器
B 行级触发器
C 语句及触发器
D行级触发器和语句及触发器
26 触发器有哪些种类
A BEFORE和AFTER
B BEFORE 和BEFORE ROW
C AFTER 和AFTER STATEMENT
D FOR EACH ROW和FOR EACH STATEMENT
27 触发器的执行过程是
A 行前(多次)、语句前(多次)、行后(多次)、语句后(一次)
B 语句前(一次)、行前(多次)、字段有效验证、行后(多次)、语句后(一次)
C语句前(一次)、语句后(一次)、行前(多次)、行后(多次)
D行前(多次)、行后(多次)、语句前(一次)、语句后(一次)
28 触发器的动作有哪几个
A INSERT、UPDATE、DELETE
B INSERT、ALTER、DROP
C UPDATE、CREATE
D REMOVE、INSERT、DELETE
29 看代码
CREATE OR REPLACE TRIGGER STUDENTUPDATEINFO
AFTER INSERT OR UPDATE OR DELETE ON STUDENT
FOR EACH ROW
WHEN (NEW.STUID IS NOT NULL OR OLD.STUID IS NOT NULL)
BEGIN
CASE
WHEN INSERTING THEN
DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE('STUDENT表增加一条信息!!!');
WHEN UPDATING THEN
DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE('STUDENT表更新一条信息!!!');
ELSE
DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME);
DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME);
DBMS_OUTPUT.NEW_LINE();
DBMS_OUTPUT.PUT_LINE('STUDENT表删除一条信息!!!');
END CASE;
END;
当执行了以下命令后
INSERT INTO STUDENT VALUES('STU0010′,'TOM','TB007′,'JAVA');
UPDATE SET CALSSNAME='ORACLE' WHERE STUID='STU0010′;
DELETE STUDENT WHERE STUID='STU0010′
输出结果为:
A INSERT后输出: TOM TOM STUDENT表增加一条信息!!!
UPDATE后输出: TOM TOM STUDENT表更新一条信息!!
DELETE后输出: TOM TOM STUDENT表删除一条信息!!!
B INSERT后输出: TOM STUDENT表增加一条信息!!!
UPDATE后输出: TOM TOM STUDENT表更新一条信息!!
DELETE后输出: TOM STUDENT表删除一条信息!!!
C INSERT后输出: TOM TOM STUDENT表增加一条信息!!!
UPDATE后输出: TOM STUDENT表更新一条信息!!!
DELETE后输出: TOM STUDENT表删除一条信息!!!
D INSERT后输出: TOM STUDENT表增加一条信息!!!
UPDATE后输出: TOM TOM STUDENT表更新一条信息!!
DELETE后输出: STUDENT表删除一条信息!!!
____________________________________
1. ORACLE用来判断列值是否为空的操作符是____
A ==NULL
B IS NULL
C AS NULL
D NULLIS
2 分析以下的 SQL命令
SELECT i.id_number, m.id_number
FROM inventory i, manufacturer m
WHERE i.manufacturer_id = m.id_number
ORDER BY inventory.description;
如何修改上述命令使其成功执行()
A ORDER BY description
B ORDER BY i.description
C WHERE inventory.manufacturer_id = m.id_number
ORDER BY inventory.description
D ORDER BY inventory.description;
3. 在客户定单表(CUSTOMER)中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句。
A SELECT * FROM CUSTOMER WHERE PRICE>500;
B SELECT * FROM CUSTOMER WHERE PRICE BETWEEN 500 AND *;
C SELECT * FROM CUSTOMER WHERE PRICE LIKE 'P0%';
D SELECT * FROM CUSTOMER WHERE PRICE>=500;
4. 分析以下SQL 命令:
SELECT price
FROM inventory
WHERE price BETWEEN 1 AND 50
AND (price IN(55, 30, 95);
命令执行后的输出结果是:( )
A 55
B 30
C 95
D NULL
5. 分析以下的SQL 命令:
SELECT manufacturer_id
FROM inventory
WHERE manufacturer_id LIKE '%N\%P\%O%' ESCAPE '\';
命令执行的返回结果是()
A 所有包含'NPO'的纪录
B 所有包含'N\P\O'的纪录
C 所有包含'N%P%O'的纪录
D 所有包含'%N\P\O%'的纪录
6. 分析以下的SQL命令:
SELECT i.id_number, m.manufacturer_name
FROM inventory i, manufacturer m
WHERE i.manufacturer_id(+) = m.id_number;
WHERE 子句中的(+)是什么含义?
A 将inventory表中不满足条件的记录也查出来
B 将i.manufacturer_id+ m.id_number
C将manufacturer表中不满足条件的记录也查出来
D 不能这样写,语法错误
7. 写一SQL语句实现以下功能,把inventory表中的ORDER_DATE 值 '23-MAY-00′ 显示成 '01-JAN-00′
A SELECT ROUND(order_date, 'YEAR') FROM inventory;
B SELECT TO_DATE(order_date, 'DD-MM-YY') FROM inventory;
C SELECT TO_CHAR(order_date, 'DD-MM-YY') FROM inventory;
D 都不对
8.下面的SQL命令显示的结果是什么类型:
TO_DATE('01-JAN-1998′) – TO_DATE('01-DEC-1996′)
A 数值
B 字符串
C 日期
D 出现错误
9. 简述ROUND 和TRUNC 操作的区别?
A ROUND在截掉数据时有四舍五入的判断,TRUNC直接按要求截掉没有进位。
B 都是将数据按指定的长度截断
C TRUNC是四舍五入,ROUND是截断
D 都会四舍五入
10. 简述SUBSTR和LENGTH的主要功能。
答案:SUBSTR:用来在一个字符串中求子串
LENGTH:用于求字符串的长度。
11. 分析以下的SQL命令:
SELECT CONCAT(UPPER(SUBSTR(location, 1, 3)), dept_number) "Department Location"
FROM department;
哪个function 最后执行?
a.UPPER
答案:concat
12. 分析以下的SQL命令:
SELECT *
FROM product
WHERE LOWER(description) = 'CABLE';
命令能否执行?是否有结果返回?为什么?
答案:命令可以执行,没有结果返回,因为查询条件中的LOWER把查询列值改为小写,而等号右侧为大写,所以不会有结果返回。
13. 在PLAN表中有一列为SPECIES_ID ,该列与SPECIES 表的ID列对应,但后者包含空值,要想在显示结果中包含SPECIES 表的ID列为空值的行的信息,用那种连接条件可以实现?
答案:外连接
14. 分析以下的 SQL 命令:
SELECT i.id_number, m.manufacturer_id
FROM inventory i, inventory m
WHERE i.manufacturer_id = m.region_id_number;
该命令中使用的连接条件是()连接
答案:自连接
15 .外连接的符号可以放在连接条件的哪边,可以两边同时使用吗?
答案:放在包含空值的一边,不可以两边同时使用
16. 如果用等值连接来查询5张表内的信息,至少需要几个连接条件?
答案:至少需要4个连接条件。
17. 分析以下的 SQL 命令:
SELECT i.id_number, m.id_number
FROM inventory i, manufacturer m
WHERE i.manufacturer_id = m.id_number
ORDER BY 1;
该命令执行结果的排序是按那一列的值排序的?
答案:按inventory 表的id_number列排序
18. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接
A.OR
B.NOT
C.AND
D.NONE
答案 c
19. 外连接的条件可以放在以下的那一个子句中
A.FROM
B.WEHRE
C.SELECT
D.HAVING
E.GROUP BY
F.ORDER BY
答案 B
20. 在从两个表中查询数据时,连接条件要放在哪个子句中
A.FROM
B.WHERE
C.SELECT
D.HAVING
E.GROUP BY
答案 B
21 用以下哪个子句来限制分组统计结果信息的显示
A.FROM
B.WEHRE
C.SELECT
D.HAVING
E.GROUP BY
F.ORDER BY
答案 D
22. 数据库中的 TEACHER 表的结果如下:
ID NUMBER(7) PK
SALARY NUMBER(7,2)
SUBJECT_ID NUMBER(7)
至少有两行以上的SUBJECT_ID值是不同的
分析以下的 SQL命令:
1. SELECT ROUND(SUM(salary),-4)
FROM teacher;
2. SELECT subject_id, ROUND(SUM(salary),-2)
FROM teacher
GROUP BY subject_id;
两个命令的显示结果相同吗?哪个命令显示的结果会多些?
答案:不同,命令2会返回更多的结果
23. 如果想对分组统计的结果信息进行筛选,用where 条件子句能实现吗?如果不行该用什么子句实现?
答案:用where子句不能实现,应该用having 子句
24. 以下需求中哪个需要用分组函数来实现?
A.把ORDER表中的定单时间显示成 'DD MON YYYY' 格式
B.把字符串 'JANUARY 28, 2000′ 转换成日期格式
C.显示PRODUCT 表中的COST 列值总量
D.把PRODUCT表中的DESCRIPTION列用小写形式显示
答案 C
25. 用以下的SQL语句查询数据库:
SELECT id_number "Part Number", SUM(price * quantity) TOTAL, description
FROM inventory
WHERE price > 5.00
ORDER BY "Part Number", 3;
哪一句会产生错误?
A.FROM INVENTORY
B.WHERE PRICE > 5.00
C.ORDER BY "PART NUMBER", 3;
D.SELECT id_number "Part Number", SUM(price * quantity) TOTAL, description
答案 D
26. EMPLOYEE 表包含以下的列:
EMP_ID NUMBER(9)
NAME VARCHAR2(25)
BONUS NUMBER(5,2)
DEPT_ID NUMBER(9)
如果想计算所有具有bonus的职员的bonus平均值,不考虑该列包含空值的那些雇员,用什么功能函数可以实现?
答案:使用AVG函数可以实现。
27. 写出包含 SELECT,FROM ,HAVING ,WHERE,GROUP BY ,ORDER BY子句的书写顺序
答案:SELECT FROM WHERE GROUP HAVING ORDER BY
28. 分析以下的SQL命令
SELECT id_number "Part Number", SUM(price) "Price"
FROM inventory
WHERE price > 5.00
GROUP BY "Part Number"
ORDER BY 2;
哪一个子句会产生错误?如何修改
答案:第四句GROUP BY "Part Number"会产生错误,应改为GROUP BY id_number
29. 在单行子查询中,子查询的返回结果为多少,返回2行可以吗?
答案:只能返回一行,否则会出错。
30. 以下操作符中哪个可以用做单行简单查询的操作符
A.=
B.IN
C.LIKE
D.BETWEEN
答案 A
31. 分析以下的 SQL 命令:
SELECT id_number
FROM inventory
WHERE manufacturer_id IN
(SELECT manufacturer_id
FROM inventory
WHERE price < 1.00
OR price > 6.00);
该子查询的能否执行,是否有语法错误?
答案:没有语法错误,可以执行为
32. 分析以下SQL命令:
SELECT employee_id, name
FROM employee
WHERE employee_id NOT IN (SELECT employee_id
FROM employee
WHERE department_id = 30
AND job = 'CLERK');
如果子查询返回空值,结果会是什么样?
答案 没有结果返回。
33. 如果用户用UPDATE 命令修改了表中的数据值,是否可以恢复回来?
答案:如果事务没有提交可以用ROLLBACK 恢复回来。
34.用户对某表中的数据做修改操作,还没有提交,此时机器断电,修改结果是否能保存在数据库中?
答案:不能,因为非正常结束的事务会被ORACLE 回滚掉
35. 以下那些命令可以暗含提交操作?
A.GRANT
B.UPDATE
C.SELECT
D.ROLLBACK
答案 A
36. 那种类型的约束可以自动创建索引?
答案:UNIQUE ,PRIMART KEY
37 哪中类型的约束只能定义在列级
A. CHECK
B.UNIQUE
C.NOT NULL
D.PRIMART KEY
E.FOREIGN KEY
答案 C
38. 可以在以下哪个对象上创建视图? (选择两个)
A.VIEW
B.QUERY
C.TABLE
D.COMMAND
E.TRANSAction
答案 A,C
39. 分析以下SQL 命令:
CREATE FORCE VIEW parts_vu (company, contact)
AS SELECT manufacturer_name, contact_name
FROM inventory
WITH READ ONLY;
在 PARTS_VU 视图上可以执行UPDATE操作吗?为什么?可以进行什么操作?
答案: 不能执行UPDATE操作,因为该视图是只读的,只能进行select (检索)操作
40. 表PERSONNEL 的结构如下:
ID NUMBER(9)
LAST_NAME VARCHAR2(25)
FIRST_NAME VARCHAR2(25)
MANAGER_ID NUMBER(9)
这里, 部门的管理者也看作是雇员..
分析以下两个命令:
SELECT p.last_name, p.first_name, m.last_name, m.first_name
FROM personnel p, personnel m
WHERE m.id = p.manager_id;
SELECT p.last_name, p.first_name, m.last_name, m.first_name
FROM personnel p, personnel m
WHERE m.manager_id = p.id;
两个的执行结果一样吗?
答案 一样,但格式不同
41. 如果一个表中的数据包含许多空值,是否适合建索引?
答案 适合
42. 分析以下命令
CREATE PUBLIC SYNONYM parts
FOR marilyn.inventory;
它的作用是什么?
为用户marilyn的inventory 对象(不一定是表)建一个同义词或叫别名
43.分析以下的SQL命令
CREATE SEQUENCE line_item_id
START WITH 10001
MAXVALUE 999999999
NOCYCLE;
请问这个序列NOCYCLE关键字的含义是什么?
答案:当序列的值增长到最大值的时候,会从1001开始从新使用
44. DEPARTMENT 表的结构如下:
DEPT_ID NUMBER(9)
DEPT_NAME VARCHAR2(20)
REGION_ID NUMBER(9)
REGION_ID 列有一个外键约束,参照REGION 表,用下面的SQL语句修改DEPARTMENT table 表
UPDATE department
SET dept_id = 6546,
region_id = 9705
WHERE dept_id = 8940;
产生以下的错误信息:
ORA-02291: integrity constraint (SYS_C23) violated – parent key not found
错误可能会在那一行?
答案:可能在region_id = 9705这一行。
45.表 TEACHER 的结构如下:
Name Null? Type
————————————— ————————- —————————-
TEACHER_ID NOT NULL NUMBER(9)
NAME VARCHAR2(25)
SALARY NUMBER(7,2)
SUBJECT_ID NOT NULL NUMBER(3)
SUBJECT_DESCRIPTION VARCHAR2(2)
编写一个SQL命令,实现以下要求,给所有的science teachers 增加 8%的工资 The SUBJECT_ID for science teachers 的SUBJECT_ID 值是011.
答案:UPDATE teacher
SET salary = salary * 1.08
WHERE subject_id = 011;
46.ORACLE数据库有哪几种约束类型
答案:五种。是PRIMARY KEY,FOREIGN KEY,UNIQUE,CHECK,NOT NULL。
47.在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?
答案:CHECK 约束。
48. RDBMS是下列哪一项的缩写:___
A Relational DataBase Management System(关系数据库管理系统)
B Relational DataBase Migration System(关系数据库移植系统)
C Relational Data Migration System(关系数据移植系统)
D Relational DataBase Manage System(关系数据库管理系统)
49. INSERT 是
A DML语句
B DDL语句
C DCL语句
D DTL语句
50. COUNT(*)函数返回____
A 包括空值和重复值得所有记录
B 不包含空值的纪录
C 带有重复值但无空值得记录
D 都不是
51.____什么操作符将两个查询的结果合并为单个结果
A 算术
B 比较
C 集合
D 以上都不是
52. .____什么操作符之返回两个查询的共有行
A INTERSECT
B UNION
C MINUS
D 没有
53.日期函数是
A 分组函数
B 单行函数
C 聚合函数
D 都不是
54.SELECT CHR(66) FROM DUAL的结果是_____
A Z
B S
C B
D 都不是
55.____函数返回一个值除以另一个值后的余数
A MOD
B ABS
C CEIL
D 以上都不是
56.____函数返回列表中第一个非空的表达式
A NVL
B NVL2
C COALESCE
D 以上都不是
57.____子句处理分组的结果
A WHERE
B HAVING
C SELECT
D 以上都不是
58.什么锁用于锁定表,仅允许其他用户查询表中的行,行不允许插入,更新,或删除行
A 共享
B 排他
C 共享更新
D 以上都不是
59.使用带有____子句的SELECT命令可以在表的一行或多行上放置排他锁
A FOR INSERT OF
B FOR UPDATE OF
C FOR REFRESH
D EXCLUSIVE
60. 对象关系模型支持:
A 面向对象的概念和关系的概念
B 仅支持关系的概念
C 仅面向对象对象的概念
D 以上都不是
61. TRUNCATE TABLE 是用于____:
A 删除表结构
B 仅删除记录
C删除结构和记录
D都不是
62.同义词用于下列情况
1 隐藏对象的名称和所有者
2 提供对对象的公共访问
A 两者都对
B 1错 2对
C 两者都错
D 1对 2错
63._____是oracle提供的一个对象,可以生成唯一的连续的整数
A 同义词
B 序列
C 视图
D 没有
64.可以使用____和____伪列来访问序列
A nextval和currentval
B nextval和previousval
C cache和nocache
D 以上都不对
65.下列有关视图的描述那一个是正确的
A 视图时已存储的查询
B 视图隐藏了数据的复杂性
C 视图就是表
D 视图不提供安全性
66._____是与表关联的可选结构
A 视图
B 索引
C 同义词
D 以上都不是
67.在下列哪种情况下,索引最有用
A 索引列被声明为not null
B 在where子句中使用了索引列
C 索引列包含许多不同的值
D 定义尽可能多的索引
68.检查下列创建的orders表的SQL语句
CREATE TABLE ORDERS(
SER_NO NUMBERUNIQUE,
ORDER_ID NUMBER,
ORDER_DATE DATE NOT NULL,
STATUS VARCHAR2(10) CHECK (STATUS IN ('CREDIT','CASH')),
PROD_ID NUMBER REFERENCES PRODUCTS(PRODUCT_ID),
ORD_TOTAL NUMBER,
PRIMARY KEY (ORDER_ID,ORDER_DATE)
当执行上述语句时,将自动为那些列创建索引
A SER_ID
B ORDER_ID
C STATUS
D PRID_ID
69 当在表加入一条数据时,如果其中一个字段未指定任何数据,此时该字段会存放什么值
A 0
B NULL
C "(空字符)
D 不确定
_________________________________
面试题及答案
1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:
101 a1001
101 a1001
102 a1002
102 a1003
103 a1004
104 a1005
104 a1006
105 a1007
105 a1007
105 a1007
结果:
102 a1002
102 a1003
104 a1005
104 a1006
3、有员工表empinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人:
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary<9999 and fage > 35
fsalary<9999 and fage < 35
每种员工的数量;
4、表A字段如下
month person income
月份 人员 收入
要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份 当月收入 上月收入 下月收入
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5
要求的处数据
2005-01-01 4
2005-01-02 5
合计 9
试用一个Sql语句完成。
6,数据库1,2,3 范式的概念与理解。
7,简述oracle行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。
8、oracle临时表有几种。
临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么?
9,怎么实现:使一个会话里面执行的多个过程函数或触发器里面都可以访问的全局变量的效果,并且要实现会话间隔离?
10,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
11,简述SGA主要组成结构和用途?
12什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些?
13,背景:某数据运行在archivelog,且用rman作过全备份和数据库的冷备份,
且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。
14,用rman写一个备份语句:备份表空间TSB,level 为2的增量备份。
15,有个表a(x number(20),y number(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。
答案:
1、select Fclass,max(Fscore) from table1 group by Fclass
2、select * from table1 where FID in (select FID from table1 group by FID having (count(Distinct Fno))>=2)
3、select sum(case when fsalary>9999 and fage>35 then 1 else 0 end),
sum(case when fsalary>9999 and fage<35 then 1 else 0 end),
sum(case when fsalary<9999 and fage>35 then 1 else 0 end),
sum(case when fsalary<9999 and fage<35 then 1 else 0 end) from empinfo
4、
Select (Select Month From Table Where Month = To_Char(Sysdate, 'mm')) 月份,
(Select Sum(Income) From Table Where Month = To_Char(Sysdate, 'mm')) 当月收入,
(Select Sum(Income) From Table Where To_Number(Month) = To_Number(Extract(Month From Sysdate)) - 1) 上月收入,
(Select Sum(Income) From Table Where To_Number(Month) = To_Number(Extract(Month From Sysdate)) + 1) 下月收入
From Dual
5、select nvl(c1,'合计'),sum(c2) from B group by rollup(c1)
6.
关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式
简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式),
第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。
例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话 和一个家里电话号码) 规范成为1NF有三种方法:
一是重复存储职工号和姓名。这样,关键字只能是电话号码。
二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性
三是职工号为关键字,但强制每条记录只能有一个电话号码。
以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。
第二范式(2NF):如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R 是属于第二范式的。
例:选课关系 SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号, CNO为课程号,GRADEGE 为成绩,CREDIT 为学分。 由以上
条件,关键字为组合关键字(SNO,CNO)
在应用中使用以上关系模式有以下问题:
a.数据冗余,假设同一门课由40个学生选修,学分就 重复40次。
b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。
c.插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。
d.删除异常,若学生已经结业,从当前数据库删除选修记录。某些门课程新生尚未选修,则此门课程及学分记录无法保存。
原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。
解决方法:分成两个关系模式 SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新关系包括两个关系模式,它们之间通过SCN中
的外关键字CNO相联系,需要时再进行自然联接,恢复了原来的关系
第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。
例:如S1(SNO,SNAME,DNO,DNAME,LOCATION) 各属性分别代表学号,
姓名,所在系,系名称,系地址。
关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在的几个
属性DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产生类似以上例的情况。
原因:关系中存在传递依赖造成的。即SNO -> DNO。 而DNO -> SNO却不存在,DNO -> LOCATION, 因此关键辽 SNO 对 LOCATIO
N 函数决定是通过传递依赖 SNO -> LOCATION 实现的。也就是说,SNO不直接决定非主属性LOCATION。
解决目地:每个关系模式中不能留有传递依赖。
解决方法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)
注意:关系S中不能没有外关键字DNO。否则两个关系之间失去联系。
7.
变化表mutating table
被DML语句正在修改的表
需要作为DELETE CASCADE参考完整性限制的结果进行更新的表也是变化的
限制:对于Session本身,不能读取正在变化的表
限制表constraining table
需要对参考完整性限制执行读操作的表
限制:如果限制列正在被改变,那么读取或修改会触发错误,但是修改其它列是允许的。
8.
在Oracle中,可以创建以下两种临时表:
a。会话特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
b。事务特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。
下面两句话再贴一下:
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
9.--个人理解就是建立一个包,将常量或所谓的全局变量用包中的函数返回出来就可以了,摘抄一短网上的解决方法
Oracle数据库程序包中的变量,在本程序包中可以直接引用,但是在程序包之外,则不可以直接引用。对程序包变量的存取,可以为每个变量配套相应的存储过程<用于存储数据>和函数<用于读取数据>来实现。
3.2 实例
--定义程序包
create or replace package PKG_System_Constant is
C_SystemTitle nVarChar2(100):='测试全局程序变量'; --定义常数
--获取常数<系统标题>
Function FN_GetSystemTitle
Return nVarChar2;
G_CurrentDate Date:=SysDate; --定义全局变量
--获取全局变量<当前日期>
Function FN_GetCurrentDate
Return Date;
--设置全局变量<当前日期>
Procedure SP_SetCurrentDate
(P_CurrentDate In Date);
End PKG_System_Constant;
/
create or replace package body PKG_System_Constant is
--获取常数<系统标题>
Function FN_GetSystemTitle
Return nVarChar2
Is
Begin
Return C_SystemTitle;
End FN_GetSystemTitle;
--获取全局变量<当前日期>
Function FN_GetCurrentDate
Return Date
Is
Begin
Return G_CurrentDate;
End FN_GetCurrentDate;
--设置全局变量<当前日期>
Procedure SP_SetCurrentDate
(P_CurrentDate In Date)
Is
Begin
G_CurrentDate:=P_CurrentDate;
End SP_SetCurrentDate;
End PKG_System_Constant;
/
3.3 测试
--测试读取常数
Select PKG_System_Constant.FN_GetSystemTitle From Dual;
--测试设置全局变量
Declare
Begin
PKG_System_Constant.SP_SetCurrentDate(To_Date('2001.01.01','yyyy.mm.dd'));
End;
/
--测试读取全局变量
Select PKG_System_Constant.FN_GetCurrentDate From Dual;
10.
select aa.x from aa
where not exists (select 'x' from bb where aa.x = bb.x) ;
以上语句同时使用到了aa中x的索引和的bb中x的索引
11
SGA是Oracle为一个实例分配的一组共享内存缓冲区,它包含该实例的数据和控制信息。SGA在实例启动时被自动分配,当实例关闭时被收回。数据库的所有数据操作都要通过SGA来进行。
SGA中内存根据存放信息的不同,可以分为如下几个区域:
a.Buffer Cache:存放数据库中数据库块的拷贝。它是由一组缓冲块所组成,这些缓冲块为所有与该实例相链接的用户进程所共享。缓冲块的数目由初始化参数DB_BLOCK_BUFFERS确定,缓冲块的大小由初始化参数DB_BLOCK_SIZE确定。大的数据块可提高查询速度。它由DBWR操作。
b. 日志缓冲区Redo Log Buffer:存放数据操作的更改信息。它们以日志项(redo entry)的形式存放在日志缓冲区中。当需要进行数据库恢复时,日志项用于重构或回滚对数据库所做的变更。日志缓冲区的大小由初始化参数LOG_BUFFER确定。大的日志缓冲区可减少日志文件I/O的次数。后台进程LGWR将日志缓冲区中的信息写入磁盘的日志文件中,可启动ARCH后台进程进行日志信息归档。
c. 共享池Shared Pool:包含用来处理的SQL语句信息。它包含共享SQL区和数据字典存储区。共享SQL区包含执行特定的SQL语句所用的信息。数据字典区用于存放数据字典,它为所有用户进程所共享。
12.
使用分区方式建立的表叫分区表
范围分区
每个分区都由一个分区键值范围指定(对于一个以日期列作为分区键的表,"2005 年 1 月"分区包含分区键值为从"2005 年 1 月 1 日"
到"2005 年 1 月 31 日"的行)。
列表分区
每个分区都由一个分区键值列表指定(对于一个地区列作为分区键的表,"北美"分区可能包含值"加拿大""美国"和"墨西哥")。
分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务。通过分区,数据库设计人员和管理员能够解决前沿应用程序带来的一些难题。分区是构建千兆字节数据系统或超高可用性系统的关键工具。
13
回复的方法:
一.使用冷备份,直接将冷备份的文件全部COPY到原先的目录下,在从新启动数据库就可以
二.使用归档日志,
1.启动数据库NOMOUNT
2.创建控制文件,控制文件指定数据文件和重做日志文件的位置.
3.使用RECOVER DATABASE using backup controlfile until cancel 命令回复数据库,这时可以使用归档日志
4.ALETER DATABASE OPEN RESETLOGS;
5.重新备份数据库和控制文件
14的话参考RMAN的使用手册
15略
____________________________________
database. For which database
operation do you need to start the database in the MOUNT state?
A: renaming the control files
B: dropping a user in your database
C: enabling or disabling redo log archiving
D: dropping a tablespace in your database
E: re-creating the control files, after you lost all the control files in your database
Correct Answers: C
3.You want to create a new optimized database for your transactional production
environment to be used by a financial application. While creating the database, you want
the Oracle software to take care of all basic settings to optimize the database
performance. Which method would you use to achieve this objective?
A: Use the CREATE DATABASE .. command to create the database with Oracle-managed files.
B: Use the Database Configuration Assistant (DBCA) to create the database with
Oracle-managed files.
C: Use Enterprise Manager to create a new database with the Online Transaction Processing
(OLTP) option.
D: Use Database Configuration Assistant (DBCA) to create the database with Transaction
Processing template.
E: Use the CREATE DATABASE .. command to create the database with Automatic Storage
Management (ASM) file system.
Correct Answers: D
4.Which three statements are true about the stages of database startup? (Choose three.)
A:Data files and redo log files can be renamed at the MOUNT stage.
B:Control files are read at the OPEN stage for the location of data files.
C:Control files are required to bring the database to the NOMOUNT stage.
D:Data files and redo log files are made available to users at the OPEN stage.
E:Data files and online redo log files are checked for consistency while opening the
database.
Correct Answers: A, D, E
5.A constraint in a table is defined with the INITIALLY IMMEDIATE clause. You executed
the ALTER TABLE command with the ENABLE VALIDATE option to enable the constraint that
was disabled. What are the two effects of this command? (Choose two.)
A:It fails if any existing row violates the constraint.
B:It does not validate the existing data in the table.
C:It enables the constraint to be enforced at the end of each transaction.
D:It prevents insert, update, and delete operations on the table while the constraint
is in the process of being enabled.
Correct Answers: A, D
6.You received complaints about the degradation of SQL query performance. You identified
top SQL queries that consume time. What would be your next step to find out
recommendations about statistics collection and restructuring of the SQL statement to
improve query performance?
A: run Segment Advisor
B: run SQL Tuning Advisor on top SQL statements
C: run the Automatic Workload Repository (AWR) report
D: run the Automatic Database Diagnostic Monitor (ADDM) on top SQL statements
Correct Answers: B
7.The UNDO_RETENTION parameter in your database is set to 1000 and undo retention is
not guaranteed. Which statement regarding retention of undo data is correct?
A: Undo data becomes obsolete after 1,000 seconds.
B: Undo data gets refreshed after every 1,000 seconds.
C: Undo data will be stored permanently after 1,000 seconds.
D: Committed undo data would be retained for 1,000 seconds if free undo space is
available.
E: Undo data will be retained in the UNDO tablespace for 1,000 seconds, then it gets
moved to the TEMPORARY tablespace to provide read consistency.
Correct Answers: D
8.View the Exhibit.
Which statement regarding the dept and emp tables is true?
A: When you delete a row from the emp table, you would receive a constraint violation
error.
B: When you delete a row from the dept table, you would receive a constraint violation
error.
C: When you delete a row from the emp table, automatically the corresponding rows are
deleted from the dept table.
D: When you delete a row from the dept table, automatically the corresponding rows are
deleted from the emp table.
E: When you delete a row from the dept table, automatically the corresponding rows are
updated with null values in the emp table.
F: When you delete a row from the emp table, automatically the corresponding rows are
updated with null values in the dept table.
Correct Answers: D
9.Which three statements are correct about temporary tables? (Choose three.)
A:Indexes and views can be created on temporary tables.
B:Both the data and the structure of temporary tables can be exported.
C:Temporary tables are always created in a user's temporary tablespace.
D:The data inserted into a temporary table in a session is available to other sessions.
E:Data manipulation language (DML) locks are never acquired on the data of temporary
tables.
Correct Answers: A, C, E
10.Which statement regarding the contents of the V$PARAMETER view is true?
A: displays only the list of default values
B: displays only the list of all basic parameters
C: displays the currently in effect parameter values
D: displays only the list of all advanced parameters
E: displays the list of all the parameter files of a database
F: displays the current contents of the server parameter file
Correct Answers: C
11.According to your backup strategy, you performed an incremental level 0 backup of
your database. Which statement regarding this backup is true?
A: The backup is similar to image copy.
B: The backup contains all used data blocks.
C: The backup contains only unused data blocks.
D: The backup contains all data blocks changed since the last incremental level 1 backup.
Correct Answers: B
12.Which step do you need to perform to enable a user with the SYSDBA privilege to log
in as SYSDBA in iSQL*Plus?
A: The user must be granted the database administrator (DBA) privilege.
B: The user must be listed in the password file for the authentication.
C: No special setup is needed for the user to connect as SYSDBA in iSQL*Plus.
D: Set up a user in the Oracle Application Server Containers for J2EE (OC4J) user manager,
and grant the webDba role to the user.
Correct Answers: D
13.Because of a power outage, instance failure has occurred. From what point in the redo
log does recovery begin and where does it end?
A: current redo log and inactive redo log
B: checkpoint position to end of redo log
C: beginning of redo log to end of redo log
D: all redo logs before the point of last commit
E: beginning of redo log to checkpoint position
Correct Answers: B
14.Which two statements are true regarding the database in ARCHIVELOG mode? (Choose two.)
A:You have to shut down the database to perform the backups.
B:Archiving information is written to the data files and redo log files.
C:You can perform complete database backups without closing the database.
D:Online redo log files have to be multiplexed before putting the database in ARCHIVELOG
mode.
E:All the previous database backups become invalid after you configure the database to
ARCHIVELOG mode.
Correct Answers: C, E
15.User Scott has updated the salary of one of the employees in the EMPLOYEES table and
has not committed the transaction. What are the two types of locks that this scenario
would lead to? (Choose two.)
A:null lock on the row being updated
B:null lock on the table containing the row
C:ROW SHARE lock for the row being updated
D:ROW EXCLUSIVE lock for the row being updated
E:shared row-exclusive lock for the row being updated
F:a shareable table lock for the table containing the row
G:exclusive table-level lock for the table containing the row
Correct Answers: D, F
16.You notice this warning in the alert log file:
ORA-19815: WARNING: db_recovery_file_dest_size of 3221225472 bytes is 100.00% used, and
has 0 remaining bytes available.
What would you do to reclaim the used space in the Flash Recovery Area?
A:Back up the Flash Recovery Area.
B:Increase the retention time for the files.
C:Decrease the retention time for the files.
D:Manually delete all the archived log files from the Flash Recovery Area by using
operating system (OS) commands.
Correct Answers: A, C
17.View the Exhibit and examine the output.
Which statement describes the conclusion?
A: The users should use bind variables instead of literals in the query.
B: The dictionary cache is consuming more space than the library cache.
C: The shared pool size should be increased to accommodate the SQL statements.
D: Preparing indexes on the tables used in the SQL statements would improve the library
cache performance.
Correct Answers: A
18.Which two operations require undo data? (Choose two.)
A:committing a transaction
B:rolling back a transaction
C:recovering from failed transactions
D:recording a transaction to redo log files
E:rolling forward during instance recovery
Correct Answers: B, C
19.Your database is configured in NOARCHIVELOG mode. All the control files have been
lost due to a hard disk failure but the data files are not lost. You have the closed
whole database backup available to you. Which two statements are true in this scenario?
(Choose two.)
A:The instance aborts.
B:The database cannot be recovered.
C:The database can be recovered by restoring the control files from the backup.
D:The database remains opened and you have to shut it down with the ABORT option.
E:The database can be restored till the point of the last closed whole database backup.
Correct Answers: A, E
20.Which is the correct description of the significance of the ORACLE_HOME environmental
variable?
A: It specifies the directory containing the Oracle software.
B: It specifies the directory containing the Oracle-Managed Files.
C: It specifies the directory for database files, if not specified explicitly.
D: It specifies the base directory of Optimal Flexible Architecture (OFA).
Correct Answers: A
24.The junior DBA in your organization has accidentally deleted the alert log file. What
will you do to create new alert log file?
A: Create the new text file file as ALERT.LOG.
B: You have to recover the alert log file from the valid backup.
C: Change the value for the BACKGROUND_DUMP_DEST parameter.
D: No action required.The file would be created automatically by the instance.
Correct Answers: D
25.A user complains that he gets the following error message repeatedly after executing
some SQL statements. The error message forces the user to log off from and log on to
the database to continue his work.
ORA-02392: exceeded session limit on CPU usage, you are being logged off
Which action would you take to increase the session limit on CPU usage?
A: Modify the profile assigned to the user.
B: Modify the roles assigned to the users.
C: Modify the object privileges assigned to the user.
D: Modify the system privileges assigned to the users.
E: Modify the value for the RESOURCE_LIMIT parameter in the parameter file.
Correct Answers: A
26.While setting up an Oracle database for one of your critical applications, you want
to ensure that the database is backed up at regular intervals without your intervention.
What should you do to achieve the objective?
A: configure the database to run in ARCHIVELOG mode
B: configure the Flash Recovery Area to enable automatic database backup
C: schedule the database backup using DBMS_JOB package after creating the database
D: schedule the database backup using Recovery Manager (RMAN) commands after creating
the database
E: schedule the database backup using Database Configuration Assistant (DBCA) while
creating the database
Correct Answers: E
27.Which two statements about Flashback Query are true? (Choose two.)
A:It is generated by using the redo log files.
B:It helps in row-level recovery from user errors.
C:It can be performed to recover ALTER TABLE statements
D:It fails when undo data pertaining to the transaction is overwritten.
E:The database has to be opened with the resetlogs option after performing Flashback
Query.
Correct Answers: B, D
28.As a result of performance analysis, you created an index on the prod_name column
of the prod_det table, which contains about ten thousand rows. Later, you updated a
product name in the table. How does this change affect the index?
A: A leaf will be marked as invalid.
B: An update in a leaf row takes place.
C: The index will be updated automatically at commit.
D: A leaf row in the index will be deleted and inserted.
E: The index becomes invalid when you make any updates.
Correct Answers: D
29.View the Exhibit.
Your Oracle 10g database has 6 tablespaces in which:
-TEMP is the default temporary tablespace
-UNDOTBS1 is the default undo tablespace
-USERS is the default permanent tablespace
In this database, which two tablespaces can be made read only? (Choose two.)
A:TEMP
B:PROD
C:USERS
D:SYSAUX
E:SYSTEM
F:UNDOTBS1
Correct Answers: B, C
30.You suspect unauthorized data manipulation language (DML) operations on a particular
table. You want to track users who are performing the transactions and the values used
in the transactions. Also, you plan to transfer these values to another table for analysis.
How would you achieve this?
A: by using triggers
B: by using external tables
C: by using anonymous PL/SQL blocks
D: by auditing all DML operations on the table
Correct Answers: A
31.You are using the backup scheduler in Enterprise Manager (EM) to schedule a backup
of your database. Which type of script does the backup scheduler generate?
A: SQL script
B: PL/SQL script
C: Operating System (OS) script
D: Enterprise Manager (EM) script
E: Recovery Manager (RMAN) script
Correct Answers: E
32.View the Exhibit to observe the message received while trying to drop the SL_REP user
in Oracle Enterprise Manager.
The SL_REP user owns objects and is currently connected to the database instance. What
would happen if you click YES in the Exhibit?
A: An error is returned, and the user is not dropped.
B: The drop operation waits until the session started by the user ends.
C: The user is dropped successfully, and the session started by the user is killed.
D: The user is dropped, and the objects owned by the user are transferred to the recycle
bin.
Correct Answers: A
33.User SCOTT executes the following command on the EMP table but has not issued COMMIT,
ROLLBACK, or any data definition language (DDL) command:
SQL> SELECT job FROM emp
2 WHERE job='CLERK' FOR UPDATE OF empno;
SCOTT has opened another session to work with the database. Which three operations would
wait when issued in SCOTT's second session? (Choose three.)
A:LOCK TABLE emp IN SHARE MODE;
B:LOCK TABLE emp IN EXCLUSIVE MODE;
C:DELETE FROM emp WHERE job='MANAGER';
D:INSERT INTO emp(empno,ename) VALUES (1289,'Dick');
E:SELECT job FROM emp WHERE job='CLERK' FOR UPDATE OF empno;
Correct Answers: A, B, E
34.You have a text file that maintains information on thousands of items. The end-user
application requires the transfer of that information into a table in the database. What
would you use to achieve this task? (Choose two.)
A:Oracle Text
B:Data Pump
C:SQL*Loader
D:Oracle Import
E:External table
Correct Answers: C, E
35.The SAVE_AMT column in the ACCOUNTS table contains the balance details of customers
in a bank. As part of the year-end tax and interest calculation process, all the rows
in the table need to be accessed. The bank authorities want to track access to the rows
containing balance amounts exceeding $200,000, and then send an alert message to the
administrator. Which method would you suggest to the bank for achieving this task?
A: implementing value-based auditing by using triggers
B: implementing fine-grained auditing with audit condition and event handler
C: performing standard database auditing to audit object privileges by setting the
AUDIT_TRAIL parameter to EXTENDED
D: performing standard database auditing to audit SQL statements with granularity level
set to ACCESS
Correct Answers: B
36.You are creating a locally managed tablespace to meet the following requirements:
All the extents should be of the same size.
The data should be spread across two data files.
A bitmap should be used to record the free space within the allocated extents.
Which three options would you choose? (Choose three.)
A:set PCTFREE and PCTUSED to 50
B:specify extent allocation as Uniform
C:specify extent allocation as Automatic
D:create the tablespace as bigfile tablespace
E:create the tablespace as smallfile tablespace
F:set segment space management to Automatic
G:use the RESIZE clause while creating the tablespace
Correct Answers: B, E, F
37.Your test database is running in NOARCHIVELOG mode. What are the implications of this?
A: You can perform open database backups.
B: You can perform closed database backups.
C: You cannot perform schema-level logical backups.
D: You can perform the backup of only the SYSTEM tablespace when the database is open.
Correct Answers: B
38.You are in the middle of a transaction and very crucial data has been modified. Because
of a hardware failure, the instance has shut down before synchronizing all the database
files. Which two statements are true? (Choose two.)
A:On startup, SMON coordinates instance recovery.
B:On startup, CKPT coordinates instance recovery.
C:On startup, use RMAN to perform instance recovery.
D:Uncommitted changes will be rolled back after the database is opened.
E:On startup, perform media recovery and then instance recovery.
F:On startup, all the files will be synchronized and you get both committed and
uncommitted data.
Correct Answers: A, D
39.After being hired as a database administrator, you find that there is only one database
that is functional and that is being accessed by the applications. You want to create
a replica of the database, to be used for testing purposes. What is the best method to
create the replica?
A: create a database by using CREATE DATABASE .. command and manually copy the data
B: use Database Configuration Assistant (DBCA) to create a template from the existing
database to contain the database structure
C: use DBCA to create a template from the existing database to contain the database
structure and then manually copy the data using Oracle Data Pump
D: use DBCA to create a template from the existing database to contain the database
structure with data files and then use the same template to create the database in the
new location
Correct Answers: D
40.You are working on an online transaction processing (OLTP) system. You notice that
a PL/SQL procedure got executed twice at 2:00 p.m. This has incorrectly updated the
EMP_SAL table. How would you revert the table to its state at 2:00 p.m.?
A: Perform point-in-time recovery to 2:00 p.m.
B: Use Flashback Table feature to revert the changes.
C: Restore the entire database from the recent backup and open it.
D: Issue the rollback statement with system change number (SCN).
Correct Answers: B

加载中…