《oracle面试》由会员分享,可在线阅读,更多相关《oracle面试(10页珍藏版)》请在金锄头文库上搜索。
1、1. 数据库的几种物理文件? 1) 数据文件 2)控制文件 3)日志文件 2. 控制文件都含有哪些信息? 包含维护和验证有选举权据库完整性的必要信息、例如,控制文件用于识别数据文件和重 做日志文件,一个有选举权据库至少需要一个控制文件 3. decode 函数的用法?decode 的语法:decode(value,if1,then1,if2,then2,if3,then3,.,else),表示如果 value 等于 if1 时,decode 函数的结果返回 then1,.,如果不等于任何一个 if 值,则返回 else。初看一下, decode 只能做等于测试,但刚才也看到了,我们通过一些函数
2、或计算替代 value,是可以 使 decode 函数具备大于、小于或等于功能。 4. 如何用 decode 进行大于小于的比较? 利用 sign()函数和 decode 和在一起用 5. case 语句的用法? oracle 用法很简单: select last_name, job_id, salarycase job_id when it_prog then 1.10*salarywhen st_clerk then 1.15*salarywhen sa_rep then 1.20*salaryelse salary end “revised_salary“ from employees
3、6. truncate 和 delete 的区别?1、truncate 在各种表上无论是大的还是小的都非常快。如果有 rollback 命令 delete 将 被撤销,而 truncate 则不会被撤销。2、truncate 是一个 ddl 语言,向其他所有的 ddl 语言一样,他将被隐式提交,不能对 truncate 使用 rollback 命令。3、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时, 经过 truncate 操作后的表比 delete 操作后的表要快得多。4、truncate 不能触发任何 delete 触发器。5、不能授予任何人清空他人的表
4、的权限。6、当表被清空后表和表的索引讲重新设置成初始大小,而 delete 则不能。7、不能清空父表。 7. 表空间如何扩展?并用语句写出? 两种扩展方式: 1) 增加数据文件 2) 扩展数据文件大小 8. 表空间区管理方式?哪种方式现在是推荐使用的? 1) 数据字典管理方式 2) 本地文件管理方式 9. 用什么函数获得日期?和日期中的月,日,年to_char(sysdate,day) 返回星期几trunc(25-may-95 ,month) trunc(25-may-95 ,year)10. 分区表的应用? 1) 一个分区表有一个或多个分区,每个分区通过使用范围分区、散列分区、或组合分区分区
5、的行 2) 分区表中的每一个分区为一个段,可各自位于不同的表空间中 3) 对于同时能够使用几个进程进行查询或操作的大型表分区非常有用 11. 谈谈索引的用法及原理?索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到 要访问的记录所在的数据块,从而大大减少读取数据块的 i/o 次数,因此可以显著提高性 能。 12. 存储过程的应用,如何既有输入又有输出? 利用 in out 参数 13. 常发生的异常有哪些? no data found too many rows14. 如何使用异常? 在 oracle 中有三种类型的异常。预定义的异常 非预定义的异常 用户定义的异常
6、第二种非 预定义的异常是与特定的 oracle 错误关联。并且用 pragm exception_init(exception_name,error_number)关联一起的。但是到底有什么用啊? 例如: declare dup_primary_key exception; pragma exception_init(dup_primary_key,-1); begin insert into itemfile values(i201,washer,spares,100,50,250,12,30); exception when dup_primary_key then dbms_output
7、.put_line(重复项编号-主键冲突);ORACLE 面试问题-技术篇 (2)21.如何判断数据库的时区?解答:SELECT DBTIMEZONE FROM DUAL;22.解释 GLOBAL_NAMES 设为 TRUE 的用途解答:GLOBAL_NAMES 指明联接数据库的方式。如果这个参数设置为 TRUE,在建立数据库链接时就必须用相同的名字连接远程数据库。23.如何加密 PL/SQL 程序?解答:WRAp24.解释 FUNCTION,PROCEDURE 和 PACKAGE 区别解答:function 和 procedure 是 PL/SQL 代码的集合,通常为了完成一个任务。proc
8、edure 不需要返回任何值而 function 将返回一个值在另一方面,Package是为了完成一个商业功能的一组 function 和 procedure 得集合25.解释 TABLE Function 的用途解答:TABLE Function 是通过 PL/SQL 逻辑返回一组记录,用于普通的表/视图。他们也用于 pipeline 和 ETL 过程。26.举出三中可以收集 three advisory statistics解答:Buffer Cache Advice,Segment Level Statistics,Timed Statistics27.Audit trace 存放在哪个
9、 oracle 目录结构中?解答:unix $ORACLE_HOME/rdbms/auditWindows the event viewer28.解释 materialized view 的作用解答:Materialized view 用于减少那些汇总,集合和分组的信息的几何数量。它们统称适合于数据仓库和 DSS 系统。29.当用户进程出错,哪个后台进程负责清理它解答:PMON30.哪个后台进程刷新 materialized view? 解答:The Job Queue Processes31.如何判断哪个 session 正在连接以及他们等待的资源? 解答: V$SESSION /V$SES
10、SION_WAIT32.描述什么是 redo logs 解答:Redo Logs 是用于存放数据库数据改动状况的物理和逻辑结构。可以用来修复数据库。33.如何进行强制 LOG SWITCH? 解答:ALTER SYSTEM SWITCH LOGFILE;34.举出两个判断 DDL 改动的方法?解答:你可以使用 Logminer 或 Streams35.Coalescing 做了什么? 解答:Coalescing 针对于字典管理的 tablespace 进行碎片整理,将临近的小extents 合并成单个的大 extent。36.TEMPORARY tablespace 和 PERMANENT t
11、ablespace 的区别是? 解答:A temporary tablespace 用于临时对象列如排序结构而permanenttablespaces 用来存储那些真实的对象(例如表,回滚段等)37.创建数据库时自动建立的 tablespace 名称? 解答:SYSTEM tablespace.38 创建用户时,需要赋予新用户什么权限才能使它联上数据库。 解答:CONNECT39.如何在 tablespace 里增加数据文件? 解答:ALTER TABLESPACEADDDATAFILESIZE40.如何变动数据文件的大小? 解答:ALTER DATABASE DATAFILERESIZE;4
12、1.哪个 VIEW 用来检查数据文件的大小? 解答:DBA_DATA_FILES42.哪个 VIEW 用来判断 tablespace 的剩余空间? 解答:DBA_FREE_SPACE43.如何判断谁往表里增加了一条记录? 解答:auditing44.如何重构索引? 解答:ALTER INDEXREBULID;45.解释什么是 Partitioning(分区)以及它的优点。 解答:Partition 将大表和索引分割成更小,易于管理的分区。46,你刚刚编译了一个 PL/SQL Package 但是有错误报道,如何显示出错信息? 解答:SHOW ERRORS47.如何搜集表的各种状态数据? 解答:
13、ANALYZEThe ANALYZE command48.如何启动 SESSION 级别的 TRACE 解答:DBMS_SESSION.SET_SQL_TRACEALTER SESSION SET SQL_TRACE=TRUE;50.用于网络连接的 2 个文件? 解答:TNSNAMES.ORA and SQLNET.ORA51.数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义? 解答:(checkpoint queue 是 dirty buffer 按时间顺序排列的列表,用来表识DBWR 写过的 block.)当发生 log switch 时候,CKPT 会写 redo lo
14、g 中 checkpoint position 到datafile header, 这个 checkpoint postion 对应着 checkpoint queue 中的 checkpointposition,对应相应的 RBA. DBWn 会根据 checkpoint queue 中的 checkpoint position 来识别已经写到datafile 的 blocks. 识别以后,DBWn 会从 checkpoint queue 移除这些 checkpoint position.如果在 log switch 发生的时候,没有 checkpoint 发生,那么等这些日志被覆盖,那么这
15、些 checkpoint position 也就相应丢失了,DBWn 又知道从哪写起呢52。表空间的管理方式有哪几种,各有什么优劣? 解答: DBA 面试题之-表空间管理方式有哪几种,各有什么优劣。 收藏 表空间管理方式有以下两种:第一、字典管理表空间将 Oracle 的区管理信息存放在表空间的字典中进行管理,所有区的分配与释放,都会使字典的记录的增减变动。也就是在字典的记录中会执行更新、插入、删除操作,在执行上述操作时,都会生成重做日志,对字典的管理,将影响正常操作的效率,并且在区分配、回收的过程中,产生磁盘碎片,如果磁盘碎片增加到一定的程度,会浪费空间,严重影响效率,同时,Oracle在管理表空间的管理中,会产生递归 SQL。如果要用字典的方式管理表空间,可以在创建表空间时,使用: EXTENTMANAGEMENT DICTIONARY 选项。第二、本地管理表空间本地管理是以位图的方式,将区的分配信息保存在数据文件本身,所有区的分配等操作都只是位图的运算,位图中的每一位对应数据文件中的一个区或几个连续的区,这样在进行区管理时,生成的重做日志将非常少,并且运行的效率很高。并且产生磁盘碎片很少。如果要用本地管理表空间,可以在创建表空间时,使用: EXTENTMANAGEMENT LOCAL 选项。在表空间的管理中,Oracle8I 中可以采用字典管理,也可以采用本地管