一份DBA面试题及解答(zt)

2023-11-04

今天在浏览网页时,无意发现了这篇文章,觉得很好。
一份DBA面试题及解答(zt)
===========================================================
作者: xsb(http://xsb.itpub.net)
发表于:2006.03.17 13:29
分类: Oracle
出处:http://xsb.itpub.net/post/419/60442
---------------------------------------------------------------

仅供参考,并不全面也不代表权威:


一: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.<br />
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字节。

 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一份DBA面试题及解答(zt) 的相关文章

  • 在 Oracle 临时表上放置索引安全吗?

    我读过 不应分析临时表 因为它会破坏其他表的统计信息 指数怎么样 如果我在程序运行期间在表上放置索引 使用该表的其他程序会受到该索引的影响吗 索引是否会影响我的进程以及使用该表的所有其他进程 或者它会单独影响我的过程吗 所有的回复都不是权威
  • oracle 数据透视表中的列

    示例选择 select from select 1 cnt 2 sm 55 name 12 month 2011 year 12 2011 mnth txt from dual union all select 1 cnt 2 sm 54
  • 从 oracle 中为每个组选择最新行

    我在留言簿中有一张包含用户评论的表格 列有 id user id 标题 评论 时间戳 我需要为每个用户选择最新行 我尝试使用 group by 执行此操作 但没有管理它 因为我无法在按 user id 分组的同一查询中选择任何其他内容 SE
  • SQL*Loader - 如何忽略具有特定字符的某些行

    如果我有一个以下格式的 CSV 文件 fd sdf dsfds dsfd fd asdf dsfds dsfd fd sdf rdsfds dsfd fdd sdf dsfds fdsfd fd sdf dsfds dsfd fd sdf
  • 在 Oracle 中创建数据库链接时出错

    我有两个数据库 需要编写跨数据库查询 所以我试图创建一个数据库链接 CREATE PUBLIC DATABASE LINK DBLink CONNECT TO SchemaName IDENTIFIED BY 123 using DBNam
  • 在 Oracle SQL 中执行 MERGE 时,如何更新 SOURCE 中不匹配的行?

    我有一个main数据库和一个report数据库 我需要同步一个表main into report 但是 当项目在main数据库 我只想设置一个IsDeleted标志在report数据库 执行此操作的优雅方法是什么 我目前正在使用 MERGE
  • 在 C# 中多次使用单个参数的更好方法

    我刚开始使用准备好的语句从数据库查询数据 并且在实现 C 参数 特别是 OracleParameters 时遇到问题 假设我有以下 SQL string sql select from table1 t1 table2 t2 where t
  • 数据库的创建日期

    这是一个问题 起源于this https stackoverflow com questions 2522626 check how old an oracle database is 2523227 2523227杰米提出的问题 我想我会
  • sqlldr.exe 不适用于 Windows 10

    我最近通过自定义安装安装了 Oracle 数据库客户端 12 1 0 2 0 winx64 并仅选择包括 SQL Loader 等在内的数据库实用程序 但是当我尝试执行 sqlldr exe 时 出现以下错误 在网上搜索后 我从所有站点 即
  • 如何在 Oracle 上生成版本 4(随机)UUID?

    该博客解释说 输出sys guid 对于每个系统来说不是随机的 http feuerthoughts blogspot de 2006 02 watch out for sequential oracle guids html http f
  • 如何修复“Oracle.EntityFrameworkCore 类型中的方法‘get_Info’没有实现”。

    我正在尝试通过 EW 连接到 Oracle DB 论方法OnConfiguring是错误 System TypeLoadException 程序集 Oracle EntityFrameworkCore Version 2 0 19 1 Cu
  • 如何在Oracle中从表中选择列,*?

    我正在创建很多脚本 有时为了检查表是否根据我的需要进行更新 我会即时编写几个 SELECT 语句 在 SQL SERVER 中你可以这样写 SELECT Column1 FROM MY TABLE 出于可见性原因 这很有用 但是这似乎在 O
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • Oracle如何将UTC时间转换为本地时间(缺少偏移信息)

    我有一个包含日期列的表 我认为该列中的日期是以 UTC 格式保存的 我希望检索日期时以当地时间打印 这意味着当我从德国调用日期时 结果应该是这样的 2015 04 29 11 24 06 0200UTC EUROPE BERLIN 我尝试了
  • Oracle 按月滚动或运行总计

    目标 每个月末所有报表的滚动 运行总计 Code select TRUNC ACTHX STMT HX STMT DATE MM AS MNTH COUNT ACTHX INVOICE as STMTS from ACTHX group b
  • 使用 Hibernate 将 Oracle 日期映射到 Java 对象

    我收到消息 文字与格式字符串不匹配 例如 以下是 Java 类中的一些方法 public String getDateTime public void setDateTime String date time 以下是该类的 Hibernat
  • 如何计算选择查询的最佳获取大小

    在 JDBC 中 默认获取大小为 10 但我想当我有一百万行时 这不是最佳获取大小 据我所知 获取大小太低会降低性能 但如果获取大小太高也会降低性能 我怎样才能找到最佳尺寸 这对数据库端有影响吗 它会占用大量内存吗 如果您的行很大 请记住
  • Oracle JDBC 预取:如何避免 RAM 不足/如何使 oracle 更快高延迟

    使用 Oracle java JDBC ojdbc14 10 2 x 加载包含多行的查询需要很长时间 高延迟环境 这显然是 Oracle JDBC 中的默认预取默认大小 10 每 10 行需要一次往返时间 我正在尝试设置一个激进的预取大小来
  • 如何在PL/SQL中模拟32位有符号整数溢出?

    您知道如何在 Oracle PL SQL 中模拟 32 位整数溢出吗 例如 2147483647 1 2147483648 or 2147483648 1 212147483647 我尝试了 PLS INTEGER 但它引发了溢出异常 我终
  • Oracle:按月分区表

    我的解决方案 德语几个月 PARTITION BY LIST to char GEBURTSDATUM Month PARTITION p1 VALUES JANUAR PARTITION p2 VALUES Februar PARTITI

随机推荐

  • LaTex目录管理

    LaTex生成章节 图片 表格目录 章节目录 在latex中 每个章节都由特定的关键字命令定义 如 section subsection subsubsection 等 利用这些关键字 我们可以生成文章的章节结构 并根据这些章节的结构和标题
  • 抖音爆火李峋同款爱心代码,简单附带教程,还有烟花代码,手残党也能学会!!

    最近看到抖音爆火的一些HTML代码 有人找 极客G 更新 今天用了几个小时给大家整理出来了下面几个代码 最简单的就是第一个爱心代码 第二个烟花代码可自定义文本 具体看下面 代码是HTML语言 前面是使用教程 只需要代码的请划到下方进行下载
  • Linux基础——运维 (operation)

    1 什么是运维 1 1 技术人员之间 会对运维有个开玩笑的认知 运维就是修电脑的 装网线的其实不然 运维是一个非常广泛的定义 1 2 基础运维 申请域名 购买 租用服务器 上架 调整网络设备的设置 部署操作系统和运行环境 部署代码 设计和部
  • 数学建模——Matlab中rem与mod区别

    求余函数和求模函数有相同的地方但又不完全一致 主要的区别在于对负整数进行除法运算的操作不同 对于整数a b来说 求余运算或求模运算的方法都是先求整数商c a b 再求余数或模r a c b 求余运算在取c的值时 向0方向取整 fix函数 而
  • 985的分数,却毅然选择了普本

    这两天看到一个问题 如果分数只是擦边进985211院校 那是保住985211的学历还是选普通本科大学自己喜欢的专业读 今天来聊一下我的看法 首先针对这个问题说一下我的看法 能够进入985 就不要选择211 能够进入211就不要选择普通一本
  • VirtualBox安装出现严重错误

    H3C是我们学习很好用的软件 H3C虚拟平台的运行需要VirtualBox虚拟机之上 简单来说 要想使用H3C就必须要正确安装VirtualBox 如果有的小伙伴在卸载VirtualBox的时候 卸载方式不得当 导致VirtualBox残余
  • JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法

    JNI调用native方法出现 java lang UnsatisfiedLinkError XXXclass XXXmethod 异常的解决办法 参考文章 1 JNI调用native方法出现 java lang UnsatisfiedLi
  • Servlet——文件上传

    文件上传 文章目录 文件上传 1 Form表单形式实现 1 1 前端 1 2 后端 1 3 实现文件的上传然后保存到本地 2 Js Ajax实现 1 Form表单形式实现 1 1 前端 更改表单提交方式 form enctype multi
  • 功能测试在软件开发周期中的作用是什么?

    功能测试是软件开发周期中不可或缺的一个环节 其作用在于保证软件交付给用户之后满足用户需求和预期 在本文中 我们将详细解析软件开发周期中功能测试的作用 首先 功能测试是软件开发周期中质量保证的重要环节 在开发阶段 开发人员会编写代码 并使用不
  • 技术岗/算法岗面试如何准备?5000字长文、6个角度以2023秋招经历分享面试经验

    技术岗 算法岗面试流程是什么样的 技术面都干什么 Coding 机试如何准备 技术面考察哪些知识 如何准备 项目八股如何准备 简历要注意什么 怎么做 大家好 我是卷了又没卷 薛定谔的卷的大厂算法工程师 陈城南 本文会从以上6个问题 全方位
  • jdbc处理时间问题

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 遇到的问题如下 数据库中对应的字段属性为TIMESTAMP 6 java中类属性对应的字段为java util Date 虽然数据库中保存的是 2014 05 12 10
  • 一文带你精通Burp(附下载)

    添加链接描述 一文带你精通Burp 附下载
  • spring @EventListener 事件与监听

    1 自定义Application Event public class MyEvent extends ApplicationEvent private static final long serialVersionUID 1L priva
  • 1206. 设计跳表

    1206 设计跳表 不使用任何库函数 设计一个 跳表 跳表 是在 O log n 时间内完成增加 删除 搜索操作的数据结构 跳表相比于树堆与红黑树 其功能与性能相当 并且跳表的代码长度相较下更短 其设计思想与链表相似 例如 一个跳表包含 3
  • Dataset - DeepFashion 服装数据集

    Dataset DeepFashion 服装数据集 Dataset DeepFashion Project DeepFashion 对于数据集有学习科研等需求的 请在 AIUAI Dataset DeepFashion 服装数据集 中联系
  • 【最清晰】ThreadLocal和局部变量和成员变量的区别

    ThreadLocal是进程级别的全局变量 最近有一个疑惑 为什么线程类的局部变量不能完全替代ThreadLocal 每一次new 线程都是创建了一个副本啊照理来说也是独立的 为什么还需要ThreadLocal 实际上确实是独立的 但是答案
  • postman token 请求头添加

    思路 1 登录成功后将 得到的token设置为集合变量 2 在需要携带Authorization的请求头上使用该集合变量 关键代码 const responseData pm response json if responseData co
  • JsoupDemo123_Jsoup_三种解析方法(parse)

    文章目录 Jsoup 工具类 1 Jsoup快速入门 解析XML文件 2 parse String html 解析字符串的 3 解析URL parse URL url int timeoutMillis Jsoup 工具类 可以解析HTML
  • 数据结构(树的结构与定义)

    树的定义 树是由结点或顶点和边组成的 可能是非线性的 且不存在着任何环的一种数据结构 没有结点的树称为空 null或empty 树 一棵非空的树包括一个根结点 还 很可能 有多个附加结点 所有结点构成一个多级分层结构 二叉树的定义 每个结点
  • 一份DBA面试题及解答(zt)

    今天在浏览网页时 无意发现了这篇文章 觉得很好 一份DBA面试题及解答 zt 作者 xsb http xsb itpub net 发表于 2006 03 17 13 29 分类 Oracle 出处 http xsb itpub net po