版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库程序员面试分模拟题9简答题1.
等待事件有哪些分类?正确答案:Oracle的等待事件主要可以分为两类:空闲(Idle)等待事件和非空闲(Non-Idle)等待事件。
1)空闲等待事件指(江南博哥)Oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。
2)非空闲等待事件专门针对Oracle的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库的时候需要关注与研究的。
通过如下的SQL语句可以查询等待事件的类型:
SELECTWAIT_CLASS#,WAIT_CLASS_ID,WAIT_CLASS,COUNT(*)AS"COUNT"FROM
V$EVENT_NAME
GROUPBYWAIT_CLASS#,WAIT_CLASS_ID,WAIT_CLASSORDERBYWAIT_CLASS#;[考点]等待事件
2.
如何切换到某个特定的数据库?正确答案:运行命令:usedatabase_name;。[考点]连接数据库
3.
什么是数据库镜像?它有什么用途?正确答案:数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。
数据库镜像的用途有:
1)用于数据库恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。
2)提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。[考点]数据库系统的组成与结构
4.
数据文件OFFLINE之后必须要做的一件事是什么?正确答案:数据文件OFFLINE之后必须要做的一件事就是立刻执行一次RECOVER操作,这样无论过了多久之后,在ONLINE该数据文件的时候就不需要执行RECOVER操作了。[考点]RMAN
5.
什么是OGG?它有哪些优缺点?正确答案:OGG(OracleGoldenGate)属于OracleFusionMiddleware产品线,2009年被Oracle收购,它是OracleStream的替代者。OGG软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库的同步。OGG可以在异构的IT(InformarionTechnology,信息技术)基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒级的实时复制,从而可以在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级和移植、双业务中心等多个场景下应用。同时,OGG可以实现一对一、广播(一对多)、聚合(多对一)、双向复制、层叠、点对点、级联等多种灵活的拓扑结构。
OGG能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。和传统的逻辑复制一样,OGG的实现原理是首先通过抽取源端的Redo日志或者ArchiveLog,然后通过TCP/IP投递到目标端,最后解析还原应用到目标端,使目标端实现同源端的数据同步。[考点]OGG
6.
会话游标的含义是什么?共享游标和会话游标的区别有哪些?正确答案:会话游标(SessionCursor)是当前会话(Session)解析和执行SQL的载体,即会话游标用于在当前会话中解析和执行SQL,会话游标是以哈希表的方式缓存在PGA中(共享游标是缓存在SGA的库缓存里)。在目标SQL的执行过程中,会话游标起承上启下的作用。因为Oracle依靠会话游标来将目标SQL所涉及的数据从BufferCache的对应数据块读到PGA里,然后在PGA里做后续的排序、表连接等处理,最后将最终的处理结果返回给用户,所以,会话游标是当前会话解析和执行SQL的载体。
共享游标和会话游标的对比见下表。
共享游标会话游标缓存位置缓存在SGA中的共享池里的库缓存中缓存在每个会话的PGA中共享共享游标在所有会话之间共享会话游标与会话是一一对应的,不同会话的会话游标之间不能共享,这是与共享游标的本质区别。生命周期共享游标无生命周期,会进行缓存会话游标是有生命周期的,每个会话游标在使用的过程中都至少会经历一次Open、Parse、Bind、Execute、Fetch和Close中的一个或多个阶段。Oracle会根据参数SESSION_CACHED_CURSORS的值来决定是否将已经用过的会话游标缓存在对应会话的PGA中联系1)会话游标足以哈希表的方式缓存在PGA中,意味着Oracle会通过棚关的哈希运算来存储和访问在当前会话的PGA中的对应会话游标。这种访问机制和共享游标是一样的,可以简单地认为Oracle是根据目标SQL的SQL文本的哈希值去PGA中的相应HashBucket中找匹配的会话游标。由于在缓存会话游标的哈希表的对应HashBucket中,Oracle会存储目标SQL对应的父游标的库缓存对象句柄地址,所以,Oracle可以通过会话游标找到对应的父游标,进而就可以找到对应子游标中目标SQL的解析树和执行计划,然后Oracle就可以重用目标SQL的解析树和执行计划来执行SQL语句了2)一个会话游标只能对应一个共享游标,而一个共享游标却可以同时对应多个会话游标[考点]游标
7.
使用哪个数据字典可以查询序列的定义信息?正确答案:可以通过查询数据字典视图DBA_SEQUENCES获取序列的定义信息,NEXTVAL返回序列中下一个有效的值,任何用户都可以引用CURRVAL中存放的序列的当前值。当序列值不符合实际需求时,可以执行ALTERSEQUENCE命令修改序列,需要注意的是,启动序列号不可以修改(STARTWITHN)。修改序列的语法和序列的创建语法一样,只是将CREATE修改为ALTER即可。
8.
分区表有什么优点?正确答案:分区表有如下的优点:
1)增强可用性。如果表的一个分区由于系统故障而不能使用,那么表的其余好的分区仍可以使用。
2)减少关闭时间。如果系统故障只影响表的一部分分区,那么只有这部分分区需要修复,可能比整个大表修复花的时间更少。
3)维护轻松。单独管理每个分区比管理单个大表要轻松得多。
4)均衡I/O。可以把表的不同分区分配到不同的磁盘来平衡I/O,改善性能。
5)改善性能。对大表的查询、增加、修改等操作可以分解到表的不同分区来并行执行,可使运行速度更快。
6)分区对用户透明,最终用户感觉不到分区的存在。[考点]分区表
9.
如何知道当前绑定了什么裸设备?正确答案:“raw-qa”命令可以列出当前绑定的所有裸设备。[考点]裸设备(RAW)
10.
如何查看逻辑DG备库SQLApply的进度?正确答案:[考点]DG
11.
InnoDB存储引擎支持哪些事务类型?正确答案:对于InnoDB存储引擎来说,其支持扁平事务、带有保存点的扁平事务、链事务和分布式事务。对于嵌套事务,其原生不支持。因此对有并发事务需求的用户来说,MySQL数据库或InnoDB存储引擎就显得无能为力,然而用户仍可以通过带保存点的事务来模拟串行的嵌套事务。[考点]存储引擎
12.
如何获取用户的权限?正确答案:若要获取一个用户的角色、系统权限、对象权限以及列权限,则可以通过以上介绍的数据字典视图来获取也可以通过DBMS_METADATA.GET_GRANTED_DDL来获取。
SELECTDBMS_METADATA.GET_DDL('USER','LHR')DDL_SQLFROMDUAL
UNIONALL
SELECTDBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT','LHR')FROMDUAL
UNIONALL
SELECTDBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT','LHR')FROMDUAL
UNIONALL
SELECTDBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','LHR')FROMDUAL;
将结果复制出来简单地用文本编辑工具编辑后即可运行。
另外还可以通过exp或expdp来获取用户的权限,这里不再演示。[考点]权限
13.
如何得到真实的执行计划?正确答案:在Oracle数据库中判断得到的执行计划是否准确,就是看目标SQL是否被真正执行过,真正执行过的SQL所对应的执行计划就是准确的,反之则有可能不准,因此,通过10046事件及如下的几种方式得到的执行计划是最准确的,而从其他方式获取到的执行计划都有可能不准确。
SELECT*FROMTABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ADVANCEDALLSTATS'));
SELECT*FROMTABLE(DBMS_XPLAN.DISPLAY_CURSOR('sql_id/hash_value',CHILD_CURSOR_NUMBER,'ADVANCEDALLSTATS'));
SELECT*FROMTABLE(DBMS_XPLAN.DISPLAY_AWR('sql_id'));
这里需要注意的是,虽然SQL*Plus的AUTOTRACE功能有部分是真实执行了SQL语句的(例如所有DML语句),但是由于该命令所显示的执行计划来源于调用EXPLAINPLAN命令,所以,其得到的执行计划依然可能不准确(特别是在使用了绑定变量的情况下)。[考点]执行计划
14.
数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?正确答案:数据库系统中可能发生各种各样的故障,大致可以分为①事务内部的故障;②系统故障;③介质故障;④计算机病毒。其中,事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。[考点]数据库系统的组成与结构
15.
MySQL数据类型有哪些属性?正确答案:数据类型的属性包括auto_increment、binary、default、index、notnull、null、primarykey、unique和zerofill,具体见下表。属性列auto_increment1)auto_increment能为新插入的行赋予一个唯一的整数标识符,该属性只用于整数类型2)auto_increment一般从1开始,每行增加1。可以通过“ALTERTABLETB_NAMEAUTO_INCREMENT=n;”语句强制设置自动增长列的初始值,但是该强制的默认值是保留在内存中的。如果该值在使用之前数据库重新启动,那么这个强制的默认值就会丢失,需要在数据库启动以后重新设置3)可以使用LAST_INSERT_ID()查洵当前线程最后插入记录使用的值。如果一次插入了多条记录,那么返回的是第一条记录使用的自动增长值4)MySQL要求将auto_increment属性用于作为主键的列5)每个表只允许有一个auto_increment列6)自动增长列可以手工插入,但是插入的值如果是空或者0,那么实际插入的将是自动增长后的值7)对于InnoDB表,自动增长列必须是索引。如果是组合索引,也必须是组合索引的第一列,但是对于MylSAM表,自动增长列可以是组合索引的其他列,这样插入记录后,自动增长列是按照组合索引的前几列进行排序后递增的binarybinary属性只用于CHAR和VARCHAR值。当为列指定了该属性时,将以区分大小写的方式排序和比较defaultdefault属性确保在没有任何值可用的情况下,赋予某个常量值,这个值必须是常量,因为MySQL不允许插入函数或表达式值。此外,此属性无法用于BLOB或TEXT列。如果已经为此列指定了NULL属性,那么当没有指定默认值时默认值将为NULL,否则默认值将依赖于字段的数据类型index如果所有其他因素都相同,要加速数据库查询,那么使用索引通常是最重要的一个步骤。索引一个列会为该列创建一个有序的键数组,每个键指向其相应的表行。以后针对输入条件可以搜索这个有序的键数组,与搜索整个未索引的表相比,这将在性能方面得到极大的提升notnull如果将一个列定义为notnull,那么将不允许向该列插入null值。建议在重要情况下始终使用notnull属性,因为它提供了一个基本验证,确保已经向奁洵传递了所有必要的值null为列指定null属性时,该列可以保持为空,而不论行中其他列是否已经被填充。null精确的说法是“无”,而不是空字符串或0primarykeyprimarykey属性用于确保指定行的唯一性。指定为主键的列中,值不能重复,也不能为空。为指定为主键的列赋予auto_increment属性是很常见的,因为此列不必与行数据有任何关系,而只是作为一个唯一标识符。主键又分为以下两种:1)单字段主键。如果输入数据库中的每行都已经有不可修改的唯一标识符,一般会使用单字段主键。注意,此主键一旦设置就不能再修改2)多字段主键。如果记录中任何一个字段都不可能保证唯一性,那么就可以使用多字段主键。这时,多个字段联合起来确保唯一性。如果出现这种情况,那么指定一个auto_increment整数作为主键是更好的办法unique被赋予unique属性的列将确保所有值都有不同的值,只是null值可以重复。一般会指定一个列为unique,以确保该列的所有值都不同zerofillzerofill属性可用于任何数值类型,用0填充所有剩余字段空间。例如,无符号int的默认宽度是10;因此,当“零填充”的int值为4时,将表示它为0000000004[考点]数据类型
16.
什么是更新丢失?正确答案:更新丢失是指多个用户通过应用程序访问数据库时,由于查询数据并返回到页面和用户修改完毕单击保存按钮将修改后的结果保存到数据库这个时间段(即修改数据在页面上停留的时间)在不同用户之间可能存在偏差,从而最先查询数据并且最后提交数据的用户会把其他用户所做的修改覆盖掉。当两个或多个事务选择同一行数据,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其他事务的存在。最后的更新将重写由其他事务所做的更新,这将导致数据丢失。
简单来说,更新丢失就是两个事务都同时更新一行数据,一个事务对数据的更新把另一个事务对数据的更新覆盖了。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来。Serializable可以防止更新丢失问题的发生。其他的三个隔离级别都有可能发生更新丢失问题。Serializable虽然可以防止更新丢失,但是效率太低,通常数据库不会用这个隔离级别,所以,需要其他的机制来防止更新丢失,例如悲观锁和乐观锁。[考点]基本概念
17.
给出下面语句的可能的优化思路。
CREATETABLET_YH_20170705_LHR(XINT);
BEGIN
FORIIN1..100000LOOP
EXECUTEIMMEDIATE'INSERTI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GMP培训资料消防安全知识
- K3基础资料设置、初始录入培训
- JUKI20502060贴片故障原因及对策
- K线语言低价区买入语言
- 公司客服个人总结
- LED筒灯业务培训资料
- DTG外汇经纪人培训教程
- ntfs磁盘安全与管理
- 高处作业安全管理培训
- 2026年测试分析师《测试分析》强化卷
- GB/T 15934-2024电器附件电线组件和互连电线组件
- 仁爱科普版(2024)七年级上册英语Unit 3单元测试卷(含答案)
- 广东省揭阳市普宁市2023-2024学年八年级下学期7月期末数学试题
- DZ∕T 0334-2020 石油天然气探明储量报告编写规范(正式版)
- 2069-3-3101-002WKB产品判定准则-外发
- YS-T 3042-2021 氰化液化学分析方法 金量的测定
- JTG C10-2007 公路勘测规范
- 《中外管理思想史》课件
- 2023年四川宜宾市珙县选调(聘)机关事业单位人员笔试参考题库(共500题)答案详解版
- 干部职工调动登记表
- 劳务施工施工方案
评论
0/150
提交评论