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_TEXT | VARCHAR2(1000) | SQL 前1000个字符 |
SQL_FULLTEXT | CLOB | SQL全部内容 |
RUNTIME_MEM | NUMBER | 运行时消耗的内存 |
SORTS | NUMBER | 排序数总和 |
EXECUTIONS | NUMBER | 总的执行次数 |
DISK_READS | NUMBER | 所有子指针的Disk Reads 读硬盘次数总和 |
BUFFER_GETS | NUMBER | 所有子指针 拿到的buffer 数 |
CPU_TIME | NUMBER | CPU 消耗时间 |
ELAPSED_TIME | NUMBER | 执行的消耗时间(parsing,executing,fetching) |
SQL_ID | NUMBER | 用于标示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