ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 面试题(4)Oracle

面试题(4)Oracle

原创 Linux操作系统 作者:lorikyo 时间:2018-12-16 11:57:03 0 删除 编辑

一:SQL tuning 类

1:列举几种表连接方式
答:merge join,hash join,nested loop

2:不借助第三方工具,怎样查看sql的执行计划
答:sqlplus
set autotrace ...
utlxplan.sql创建plan_table表

3:如何使用CBO,CBO与RULE的区别
答:在初始化参数里面设置optimizer_mode=choose/all_rows/first_row等可以使用cbo.
rbo会选择不合适的索引,cbo需要统计信息。

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

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

5:如何跟踪某个session的SQL

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

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

答:逻辑读。IO量

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

答:默认的索引是b-tree.
对insert的影响.(分裂,要保证tree的平衡)
对delete的影响.(删除行的时候要标记改节点为删除).
对update的影响,如果更新表中的索引字段,则要相应的更新索引中的键值。

查询中包含索引字段的键值和行的物理地址。

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

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

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

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

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

答:使用stored outline.

11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么
答:8i:使用sort_area_size,hash_area_size,每个session分配相同的值,不管有无使用。
9i: 使用pga_aggregate来统一管理。

临时表空间的作用:
在sort_area_size中不能完成的部分在临时表空间完成,临时表空间在重建索引,创建临时表等都
要用到。
还有hash join不能完成的也在临时表空间中做。

12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql

select 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,如果分区表,则每个分区是一个segment,table可以看成是一个逻辑上的概念,segment可以看成是这个逻辑概念的物理实现;
segment由一个或多个extents组成,segment不可以跨表空间但可以跨数据文件;
extent由多个连续的blocks组成,不可以跨数据文件;
block由1-多个os块组成,是oracle i/o的最小存储单位。

3:描述tablespace和datafile之间的关系

答:tablespace是逻辑上的概念,datafile是物理上的概念。
一个tablespace可以由多个datafile组成,一个datafile不能跨越多个tablespace。

4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点
答:一个使用freelist管理,一个使用位图管理。

5:回滚段的作用是什么

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

6:日志的作用是什么

答:纪录对数据库的操作,便与恢复。

7:SGA主要有那些部分,主要作用是什么
答:db_cache(缓存数据块),shared_pool(缓存sql,执行计划,数据字典信息等),large_pool(MTS模式、parallel 、rman等
要用到),java pool(java程序如SQLJ存储过程运行时要用到)

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

答: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;

4:rman是什么,有何特点
答:rman叫恢复管理器.
特点很多。可以在线备份,到少目标数据库是mount状态。

1:热备份。
2:可以存储脚本。
3:可以增量备份。
4:自动管理备份集。

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

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

四:系统管理类

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

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

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

答:hp-unix:iostat -x 1 5;
top/vmstat/glance

3:对statspack有何认识

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

4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响
答:
1:增大sort_area_size(8i)/pga_aggregate_target(9i)值。
2:如果表有分区(一般大表都要用到分区的),按分区逐个建索引,如果是本地索引的话;
3:系统空闲的时候建。

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

五:综合随意类

1:你最擅长的是oracle哪部分?
答:性能/sql 调优、备份恢复。

2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?
答:http://www.itpub.net/,Oracle的SQL 优化。

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

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

4:为何要选择做DBA呢?
答:爱好加职业历史积累。

4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响
答:
1:增大sort_area_size(8i)/pga_aggregate_target(9i)值。
2:用并行的方式来建。
3:系统空闲的时候建。

其他:

什么是聚集索引,什么是非聚集索引,什么又是主键?
聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点。

非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。

能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键,通过它可强制表的实体完整性。

1、事务是什么?A:所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

2、oracle中truncate和delete命令有何区别?A:
(1)delete将在回滚段中产生回滚信息,truncate不产生,因此无论表中的记录多少,truncate执行都很快。
(2)truncate 是 DDL,执行隐含的commit,truncate不能回滚。任何没有提交的 DML 改变也将会和truncate一起提交。
(3)truncate 重置表及其索引高水位标志。全表扫描和索引快速全扫描读高水位标志下的所有数据块,因此在delete后全扫描性能没有提高,但truncate后将会变快。
(4)truncate 不触发 delete 触发器。
(5)没有对象权限允许一个用户 truncate 另一个用户的表。这样做需要 DROP ANY TABLE 系统权限。
(6)当一个表被 truncate,表及其索引的存储将被重置回初始大小。而 delete 不收缩表及其索引的大小。
(7)当父表有一个可用的引用完整性约束时不能被 truncate。必须先disable引用父表的外键约束,再truncate。

3、Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别?A:char是定长字符类型,varchar2是变长字符类型。“test”在char(10)中被补齐空格,存储长度是10字节,在varchar2(10)中存储长度是4字节。

 

 1如果信息采集管理系统(ICM)崩溃了怎么办?

  2你如何加速打补丁的过程?

  3打补丁的过程中出错了,你怎么办?

  4请提供克隆过程和克隆之后采取的手工操作的大概步骤。

  5介绍一下AutoConfig。AutoConfig是如何知道XML文件中的哪个树脂需要被放入哪一个文件的?

  6你能告诉我,你对一个发生故障的自服务登录问题做哪些测试吗?你要检查哪个配置文件操作选项和文件?

  7如果你不能看到并发管理日志和输出文件,是哪里出错了?

  8你是如何更改并发管理日志和输出文件的位置的?

  9如果用户正遇到性能方面的问题,你如何找到问题的原因?

  10你如何更改应用程序的密码?

  11请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名?

  答案

  1所有其他的管理器都会继续工作。ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器。

  2

  2.1你可以合并多个补丁。

  2.2你可以为一个非交互的补丁创建一个响应文件。

  2.3你可以通过选项(nocompiledb, nomaintainmrc, nocompilejsp)来应用补丁,并且在应用了所有的补丁之后,一次运行它们。

  3 查看失败工作的日志,找到并且纠正错误,用adctrl 工具重新开启工作。

  IT工作市场是如此的紧张,每个可获得的职位都有一堆人在申请。Naveen Nahata为Oracle E-Business Suite的数据库管理员申请者提供了以下一些面试时的技术问题,它可以帮助申请者们快速脱颖而出。如果你的面试官有类似的问题问你,发个邮件给我,我将会把它添加在列表中。――编者按

  问题

  1如果信息采集管理系统(ICM)崩溃了怎么办?

  2你如何加速打补丁的过程?

  3打补丁的过程中出错了,你怎么办?

  4请提供克隆过程和克隆之后采取的手工操作的大概步骤。

  5介绍一下AutoConfig。AutoConfig是如何知道XML文件中的哪个树脂需要被放入哪一个文件的?

  6你能告诉我,你对一个发生故障的自服务登录问题做哪些测试吗?你要检查哪个配置文件操作选项和文件?

  7如果你不能看到并发管理日志和输出文件,是哪里出错了?

  8你是如何更改并发管理日志和输出文件的位置的?

  9如果用户正遇到性能方面的问题,你如何找到问题的原因?

  10你如何更改应用程序的密码?

  11请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名?

  答案

  1所有其他的管理器都会继续工作。ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器。

  2

  2.1你可以合并多个补丁。

  2.2你可以为一个非交互的补丁创建一个响应文件。

  2.3你可以通过选项(nocompiledb, nomaintainmrc, nocompilejsp)来应用补丁,并且在应用了所有的补丁之后,一次运行它们。

  3 查看失败工作的日志,找到并且纠正错误,用adctrl 工具重新开启工作。

  4在源文件上(所有层)运行pre-clone,使用RMAN复制数据库(或者从热或者冷备份中重新存储数据库),拷贝文件系统,然后在目标文件(所有层)上运行post-clone 。

  手工步骤(可能会更多):

  4.1改变所有的非网站配置选项数值(快速克隆的话,只改变网站级别的配置文件选项)。

  4.2 修改工作流和并发管理器表。

  4.3更改打印机。

  5 AutoConfig 使用了一个上下文文件来维护关键的配置文件。一个上下文文件就是一个XML文件,在$APPL_TOP/admin 目录下,进行集中式的存储。

  当你运行AutoConfig 的时候,它读取XML文件,并且创建所有的AutoConfig 管理配置文件。

  对于AutoConfig维护的每个配置文件,都存在一个临时文件来判断哪个数值是从哪个XML文件中得来的。

  6

  6.1检查DBC文件中的guest的用户名和密码,配置选项guest的用户名和密码、数据库。

  6.2查看apache/jserv是否启动了。

  6.3运行IsItWorking, FND_WEB.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/cgiCMD.dat 文件。

  10.3 更改所有从其他环境指过来的数据库链接。

  11

  11.1位置:$FND_TOP/secure directory

  11.2 重要性:在其他事务中指向数据库服务器。

  11.3 应用程序通过使用“Applications Database Id.”来了解DBC文件的名字。

1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
select Fclass,max(Fscore) from table1 group by Fclass
2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:
101a1001
101a1001
102a1002
102a1003
103a1004
104a1005
104a1006
105a1007
105a1007
105a1007
结果:
102a1002
102a1003
104a1005
104a1006
select * from table1 where FID in (select FID from table1 group by FID having (count(Distinct Fno))>=2)
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
每种员工的数量;
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、表A字段如下
month person income
月份  人员   收入
要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份   当月收入    上月收入  下月收入

select month 月份,sum(income) 当月收入 from table where month=to_char

(sysdate,'mm') union
select sum(income) 上月收入 from table where to_number(month)=to_number(extract

(month from sysdate))-1 union
select sum(income) 上月收入 from table where to_number(month)=to_number(extract

(month from sysdate))+1

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语句完成。

select nvl(c1,'合计'),sum(c2) from B group by rollup(c1)
6,数据库1,2,3 范式的概念与理解。
 关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式
    简单介绍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,简述oracle行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。
变化表mutating table
    被DML语句正在修改的表
    需要作为DELETE CASCADE参考完整性限制的结果进行更新的表也是变化的

    限制:对于Session本身,不能读取正在变化的表
 
    限制表constraining table
    需要对参考完整性限制执行读操作的表   

    限制:如果限制列正在被改变,那么读取或修改会触发错误,但是修改其它列是允许的。

8、oracle临时表有几种。
临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么?
 在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,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
select aa.x from aa
   where not exists (select 'x' from bb where aa.x = bb.x) ;
   以上语句同时使用到了aa中x的索引和的bb中x的索引

11,简述SGA主要组成结构和用途?
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,背景:某数据运行在archivelog,且用rman作过全备份和数据库的冷备份,
且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。
回复的方法:
   一.使用冷备份,直接将冷备份的文件全部COPY到原先的目录下,在从新启动数据库就可以
   二.使用归档日志,
       1.启动数据库NOMOUNT
       2.创建控制文件,控制文件指定数据文件和重做日志文件的位置.
       3.使用RECOVER  DATABASE using backup controlfile until cancel 命令回复数据库,这时可以使用归档日志
       4.ALETER DATABASE OPEN RESETLOGS;
       5.重新备份数据库和控制文件

14,用rman写一个备份语句:备份表空间TSB,level 为2的增量备份。

15,有个表a(x number(20),y number(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。

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

请登录后发表评论 登录
全部评论

注册时间:2004-07-18

  • 博文量
    26
  • 访问量
    9809