oracle 基础笔试题,笔试题7-数据库(ORACLE)

(1)如何判断数据库的时区?

解答:SELECT DBTIMEZONE FROM DUAL;

(2)解释GLOBAL_NAMES 设为TRUE的用途

解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE,

在建立数据库链接时就必须用相同的名字连接远程数据库。

(3)如何加密PL/SQL程序?

解答:WRAp

(4)解释FUNCTION,PROCEDURE和PACKAGE区别?

解答:function和procedure是PL/SQL代码的集合,通常为了完成一个任务。

procedure不需要返回任何值而function将返回一个值。另一方面,Package

是为了完成一个商业功能的一组function和procedure得集合

(5).解释TABLE Function的用途

解答:TABLE Function 是通过PL/SQL逻辑返回一组记录,用于普通的表/视图。

他们也用于pipeline 和ETL过程。

(6)Audit trace存放在哪个oracle目录结构中?

unix $ORACLE_HOME/rdbms/audit

Windows the event viewer

(7)解释materialized view 的作用

解答:Materialized view 用于减少那些汇总,集合和分组的信息的几何数量。

它们统称适合于数据仓库和DSS系统。

(8)当用户进程出错,哪个后台进程负责清理它

解答:PMON

(9)哪个后台进程刷新materialized view?

The Job Queue Processes

(10)描述什么是redo logs?

解答:Redo Logs是用于存放数据库数据改动状况的物理和逻辑结构。可以用来修复数据库。

(11)如何进行强制LOG SWITCH?

解答:ALTER SYSTEM SWITCH LOGFILE;

(12)举出两个判断DDL改动的方法?

解答:你可以使用Logminer或Streams

(13)Coalescing做了什么?

解答:Coalescing针对于字典管理的tablespace进行碎片整理,将临近的小extents合并成单个的大extent。

(14)TEMPORARY tablespace和PERMANENT tablespace的区别是?

解答:A temporary tablespace 用于临时对象列,如排序结构.而permanenttablespaces用来存储那些真实的对象(例如表,回滚段等)(15)创建数据库时自动建立的tablespace名称?解答:SYSTEM tablespace.(16)创建用户时,需要赋予新用户什么权限才能使它联上数据库。解答:CONNECT(17)如何在tablespace里增加数据文件?解答:ALTER TABLESPACEADDDATAFILESIZE(18)如何变动数据文件的大小?解答:ALTER DATABASE DATAFILERESIZE;(19)哪个VIEW用来检查数据文件的大小?解答:DBA_DATA_FILES(20)哪个VIEW用来判断tablespace的剩余空间?解答:DBA_FREE_SPACE(21)如何判断谁往表里增加了一条记录?解答:auditing(22)如何重构索引?解答:ALTER INDEXREBULID;(23)解释什么是Partitioning(分区)以及它的优点。解答:Partition将大表和索引分割成更小,易于管理的分区。(24)你刚刚编译了一个PL/SQL Package 但是有错误报道,如何显示出错信息?解答:SHOW ERRORS

(25)如何搜集表的各种状态数据?

解答:ANALYZE The ANALYZE command(26)如何启动SESSION 级别的TRACE解答:DBMS_SESSION.SET_SQL_TRACE

ALTER SESSION SET SQL_TRACE=TRUE;(27)用于网络连接的2个文件?解答:TNSNAMES.ORA and SQLNET.ORA(28)数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义?解答:(checkpoint queue是dirty buffer按时间顺序排列的列表,用来表识DBWR写过的block.)当发生log switch时候,CKPT 会写redo log中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发生,那么等这些日志被覆盖,那么这些checkpoint position也就相应丢失了,DBWn又知道从哪写起呢(29)表空间的管理方式有哪几种,各有什么优劣?解答: DBA 面试题之---表空间管理方式有哪几种,各有什么优劣。 收藏

表空间管理方式有以下两种:

表空间的管理方式有哪几种,各有什么优劣?

解答: DBA 面试题之---表空间管理方式有哪几种,各有什么优劣。 收藏

表空间管理方式有以下两种:第一、字典管理表空间将Oracle的区管理信息存放在表空间的字典中进行管理,

所有区的分配与释放,都会使字典的记录的增减变动。也就是在字典的记录中会

执行更新、插入、删除操作,在执行上述操作时,都会生成重做日志,对字典的

管理,将影响正常操作的效率,并且在区分配、回收的过程中,产生磁盘碎片,

如果磁盘碎片增加到一定的程度,会浪费空间,严重影响效率,同时,Oracle在管

理表空间的管理中,会产生递归SQL。如果要用字典的方式管理表空间,可以在创

建表空间时,使用: EXTENTMANAGEMENT DICTIONARY 选项。

第二、本地管理表空间本地管理是以位图的方式,将区的分配信息保存在数据文

件本身,所有区的分配等操作都只是位图的运算,位图中的每一位对应数据文件

中的一个区或几个连续的区,这样在进行区管理时,生成的重做日志将非常少,

并且运行的效率很高。并且产生磁盘碎片很少。如果要用本地管理表空间,可以

在创建表空间时,使用: EXTENTMANAGEMENT LOCAL 选项。在表空间的管理中,

Oracle8I中可以采用字典管理,也可以采用本地管理,如果不指定,将采用字

典管理方式。在 Oracle9I中,推荐采用本地管理的方式,如果不指定,将采用本地

管理的方式。从Oracle 10g开如,要求采用本地管理的方式。(30)本地索引与全局索引的差别与适用情况。解答:本地索引适用于sql语句种限定一个范围的查询比如时间之类的, 全局索引适用于在全部记录中查询,比如要查询一个手机号之类的。全局索引

总可能出现unused的情况,需要重建本地索引适合条件中包含partition key的,

当然不是绝对全局索引总可能出现unused的情况,通常我会问那该怎么办?

9i里面有update global index 的子句。(31)一个表a varchar2(1),b number(1),c char(2),有100000条记录,创建B-Tree索引在字段a上,那么表与索引谁大?为什么?解答:这个要考虑到rowid所占的字节数,假设char总是占用2字节的情况,比较rowid和3另外,table 和 index在segment free block的管理也有差别(32)9i的data guard有几种模式,各有什么差别?解答:三种模式maxmize performance 采用异步传送maxmize availablity

许采用异步传送,在两者之间摇摆==> 不叫摇摆,正常情况maxmize availablity

传输方式等同于maxmizeprotection ,只是在从库Crash时允许primary继续工作maxmize protection 采用同步传送==>保证Standby 与 primary 绝对数据一致

个人以为采用maxmize performance好一点,对主数据库影响比较小。(33)执行计划是什么,查看执行计划一般有哪几种方式?解答:执行计划是数据库内部的执行步骤

set autotrace on

select * from table

alter session set event ‘10046 trace name context forever,level 12‘一般采用pl/sql developer,其它的比较少用,记不住

==>差不多,再加个Explain plan , v$sql_plan(34)简单描述一下nest loop与hash join的差别。解答:nest loop适用于返回结果比较小的情况。

for in 1…n loop

对小表进行遍历根据小表的结果遍历大表(大表需要索引)

end loop

这个在数据库高效设计里面有很好的解释,一时还写不出来

==>小表称为驱动的结果集更为贴切

hash join适用在返回大结果集的情况

==>也未必一定大结果集

(35)db file sequential read与db file scattered read等待的差别,如果以上等待比较多,证明了什么问题?解答:db file sequential read指的是需要一个但当前不在sga中的块,等待从磁盘中读取。db file scattered read需要多个连续的数据库引起等待。db file sequential read出现大量的等待,或许不是个问题。如果这两个事件等待比较多,根据p1,p2,p3以及sid检查sql语句,是否有调优的可能==>db file scattered read基本可以定性为FTS/IFS

(36)ibrary cache pin与library cache lock是什么地方的等待事件,一般说

明什么问题?解答:一般出现在对package,procedure进行编译,add contraint的时候。

==>差不多,说明DDL过多(37)在一个24*7的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引(a,b)修改成唯一约束(a,b,c),你一般会选择怎么做,请说出具体的操作步骤与语句?解答:不能确定,是否可以采用先建索引后建立约束

create index idx_w1 on w_1 (a,b,c) online ;

alter table w_1 add constraint uni_w1 unique (a,b,c) novalidate;

==>差不多,另外,一定要考虑非繁忙时间(38)如果一个linux上的oracle数据库系统突然变慢,你一般从哪里去查找原因。解答:先top看看是哪些进程,看看这些进程在做什么看看v$session_wait==>差不多,能加上vmstat , iostat就更好了(39)说明一下对raid5与raid01/10的认识。解答:raid5采用校验信息,硬盘的利用率n-1/n, raid10先采用先镜像在进行条带化,是最高效的硬盘利用方式,硬盘的利用率50%==> 通常会提一下redo log 不能 in raid5. 还有 01/10的区别及优劣(40)EXISTS与IN的执行效率问题?在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,如果另一个表是小表用in 效率高,是大表用exists 效率高。

(41)BETWEEN AND 是否包含边界?解答;Between and 包括边界值(42)列出常用的DML,DDL有哪些语句解答:DDL 数据定义语言:CREATE,DROP,ALTER,GRANT,REVOKE,TRUNCATE,ANALYZEDML 数据操纵语言: SELECT,INSERT,UPDATE,DELETE,SET TRANCTION等(43)存储过程和函数的区别?解答:存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表(44)事务是什么?ACID是什么意思?解答:事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性:称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:

原子性事务必须是原子工作单元;对于其数据修改,

要么全都执行,要么全都不执行。一致性

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所

有的内部数据结构(如B树索引或双向链表)都必须是正确的。

隔离性

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,

因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值