Oracle 面试题总结

1. 如何监控Oracle 的运行状况?

1.1 主动监控Oracle的

1.1.1 默认启动的报警

1.1.2 性能自检

2. 如何对Oracle 进行优化?

2.1 定位性能问题

2.2 使用Advisors 优化数据库性能

  • SQL Tunning Advisor
  • SQL Access Advisor
  • Memory Advisor

2.3 慢查询分析

2.3.1 V$SQLAREA 和 V$SQL (没有Group By)

主要记录SQL执行过程中的信息。根据SQL_FULLTEXT进行Group By

列名数据类型描述
SQL_TEXTVARCHAR2(1000)SQL 前1000个字符
SQL_FULLTEXTCLOBSQL全部内容
RUNTIME_MEMNUMBER运行时消耗的内存
SORTSNUMBER排序数总和
EXECUTIONSNUMBER总的执行次数
DISK_READSNUMBER所有子指针的Disk Reads 读硬盘次数总和
BUFFER_GETSNUMBER所有子指针 拿到的buffer 数
CPU_TIMENUMBERCPU 消耗时间
ELAPSED_TIMENUMBER执行的消耗时间(parsing,executing,fetching)
SQL_IDNUMBER用于标示SQL的唯一

3. 如何实现Oracle 的高可用?

4. 如何实现Oracle 的数据一致性?

5. Oracle 的锁机制

6. 数据库的索引

6.1 有哪些索引

1. B* 树索引
create index index_sno on student('sno');		
复制代码

就是传统的索引。有以下子类型:

  • 索引组织表

    按主键的顺序存储和排序。

  • B* 树聚族索引

    对聚族键建立索引,一个聚族键指向一个块。

  • 降序索引

    按从大到小的顺序排序

  • 反向键索引

    键中的字节会反转。

2. 位图索引
create bitmap index index_sno on student(sno)		
复制代码

一个索引条目使用一个位图指向多行,而不是一对一。

3. 位图联结索引
4. 基于函数的索引
create index fbi on student(uper(name));
select * from student where upper(name) ='WISH';
复制代码

一个虚拟列上的索引。(把一个函数计算得到的结果存储在列中)

6.2 什么时候用这些索引

1. 什么情况下使用B*树索引?
  • 访问表中的行,很少的一部分
  • 回答一个查询
2. 什么情况下使用位图索引
  • 相异基数小的列适用位图索引。例如性别
3. 什么情况下使用函数索引
  • 经常访问的一些函数或者表达式。
  • 函数索引既可以使用B*索引也可以使用位图索引。
  • 函数索引可以使用len,trim,substr,upper , 不能使用 sum max min avg

6.3 在哪些列上面建索引

转载于:https://juejin.im/post/5becc5c9f265da610e7fa6b7

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值