2022年2022年华为面试题附答案OracleDBA数据库管理员JAVA程序员架构师必看 .pdf
华为面试题附答案OracleDBA数据库管理员 JAVA程序员架构师必看名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 资料仅供参考DBA 数据库管理员 JAVA 程序员架构师必看一、技术问题部分 (数据库部分 ) 1、 表空间的管理方式有哪几种?数据字典管理方式本地文件管理方式2、 谈谈你对索引的理解?索引是若干数据行的关键字的列表,查询数据时,经过索引中的关键字能够快速定位到要访问的记录所在的数据块,从而大大减少读取数据块的I/O 次数,因此能够显著提高性能。3、 说说索引的组成 ? 索引列、 rowid 4、 分区表用过么?谈谈分区表的应用?分区表在对表的DML 的并行处理上有极大得优势,而且能够一部分设为只读,用在销售记录,医院处方等地方!5、 你对分区表的理解 ?怎样截断分区表一个分区的记录? 一个分区表有一个或多个分区,每个分区经过使用范围分区、散列分区、或组合分区分区的行分区表中的每一个分区为一个段,可各自位于不同的表空间中对于同时能够使用几个进程进行查询或操作的大型表分区非常有用alter table table_name truncate partition partition_name; 6、 物理文件有哪几种 ?控制文件包含了什么信息? 1) 数据文件2)控制文件3)日志文件包含维护和验证有选举权据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个有选举权据库至少需要一个控制文件7、 表空间用完了如何增加 ? 三种种扩展方式:1 增加数据文件alter tablespace name add datafile 路径 size 4M;2 扩展数据文件大小alter database datafile 路径 resize 4M;3 把数据文件设为自动增长alter database datafile 路径 autoextend on next 1M maxsize 20M;8、 SGA 包含几部分 ? Shared pool(共享池 ),DataBase Buffer Cache(数据缓冲区 ) Redo Log Buffer(重做日志缓冲区 ), Large Pool,大池,JAVA 池。9、 DECODE 函数的用法 ? DECODE 的语法: DECODE(value,if1,then1,if2,then2,if3,then3,.,else),表示如果 value 等于 if1 时, DECODE 函数的结果返回then1,., 如果不等于任何一个 if 值,则返回 else 。初看一下, DECODE 只能做等于测试,但刚才也看到了,我们经过一些函数或计算替代value ,是能够使 DECODE 函数具备大于、小于或等于功能。还能够转化表结构!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 资料仅供参考10、DELETE 和 TRUNCATE 的区别 ? 答:1、TRUNCATE 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令 DELETE 将被撤销,而 TRUNCATE 则不会被撤销。2、TRUNCATE 是一个 DDL 语言,向其它所有的DDL 语言一样,她将被隐式提交,不能对TRUNCATE 使用 ROLLBACK命令。3、TRUNCATE 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE 操作后的表比 DELETE 操作后的表要快得多。4、TRUNCATE 不能触发任何 DELETE 触发器。5、不能授予任何人清空她人的表的权限。6、当表被清空后表和表的索引讲重新设置成初始大小,而delete 则不能。7、不能清空父表。11、谈谈你对事务的理解 ? ORACLE 事务从 COMMIT 、ROLLBACK 、连接到数据库或开始第一条可执行的 SQL 语句时开始,到一条COMMIT 、ROLLBACK语句或退出数据库时结束。如果在一个事务中包含DDL 语句,则在 DDL 语句的前后都会隐含地执行COMMIT 语句,从而开始或结束一个事务。如果一个事务由于某些故障或者由于用户改变主意而必须在提交前取消它,则数据库被恢复到这些语句和过程执行之前的状态。利用 ROLLBACK语句能够在 COMMIT 命令前随时撤消或回退一个事务。能够回退整个事务,也能够会退部分事务,可是不能回退一个已经被提交的事务。回退部分事务的ROLLBACK命令为:ROLLBACK to savepoint 存储点名存储点是用户放入事务中的标记,用来表示一个可被回退的位置。存储点经过在事务中放入一个SAVEPOINT 命令而被插入。该命令的语法是:SAVEPOINT 存储点名如果在 ROLLBACK语句中没有给出存储点名,则整个事务被回退。12、给表 A 加一列 abc 口述? 数据库正在应用时应先使数据库处于静默状态再alter table a add abc varchar2(10),如果不是就直接用!13、客户端连接服务器需要修改什么文件? tnsname.ora,listener.ora 14、索引重建的概念 ?说说索引重建的意义 ? 当我们创立索引时, oracle 会为索引创立索引树,表和索引树经过rowid( 伪列)来定位数据。当表里的数据发生更新时,oracle 会自动维护索引树。可是在索引树名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 资料仅供参考中没有更新操作,只有删除和插入操作。例如在某表 id 列上创立索引,某表id 列上有值 “101” ,当我将 “101” 更新为 “110”时,oracle 同时会来更新索引树,可是oracle 先将索引树中的 “101” 标示为删除(实际并未删除,只是标示一下),然后再将“110” 写到索引树中。如果表更新比较频繁,那么在索引中删除标示会越来越多,这时索引的查询效率必然降低,因此我们应该定期重建索引。来消除索引中这些删除标记。一般不会选择先删除索引,然后再重新创立索引,而是rebuild索引。在 rebuild期间,用户还能够使用原来的索引,而且rebuild新的索引时也会利用原来的索引信息,这样重建索引会块一些。15、你对游标的理解 ,游标的分类 ,使用方法 ? 游标是结果集数据中的指针,作用是为遍历结果集时 ,存储每条记录的结果 , 1.声明游标 ,2.打开游标 ,3.提取游标 ,4.关闭游标游标 for 循环显式游标,隐式游标,游标变量!16、存储过程的用法 ?在存储过程中异常的处理,分类?举两个预定义异常的例子? 存储过程:是预编译数据库SQL 的集合存储过程是预编译过的,执行时勿须编译,执行速度更快,存储过程封装了一批SQL 语句,便于维护数据的完整性与一致性。而且能够多次调用。异常:自定义,预定义,非预定义No_Data_Found Too_Many_Rows CASE_NOT_FOUND 17、谈谈你对分区索引的理解 ,说说分类和区别 ? 分区表和一般表一样能够建立索引,分区表能够创立局部索引和全局索引。当分区中出现许多事务而且要保证所有分区中的数据记录的唯一性时采用全局索引。1.3.1. 局部索引分区的建立:SQL create index dinya_idx_t on dinya_test(item_id) 2 local 3 ( 4 partition idx_1 tablespace dinya_space01, 5 partition idx_2 tablespace dinya_space02, 6 partition idx_3 tablespace dinya_space03 7 ); Index created. SQL 看查询的执行计划,从下面的执行计划能够看出,系统已经使用了索引:SQL select * from dinya_test partition(part_01) t where t.item_id=12; Execution Plan - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -