Oracle面试必备:30道经典数据库面试题精粹

文章导读
1. Oracle的架构是什么? Oracle数据库采用客户端/服务器结构,分为内存结构和物理结构。内存结构包括SGA(系统全局区)和PGA(进程全局区);物理结构包括数据文件、重做日志文件和控制文件等。
A A

1. Oracle的架构是什么? Oracle数据库采用客户端/服务器结构,分为内存结构和物理结构。内存结构包括SGA(系统全局区)和PGA(进程全局区);物理结构包括数据文件、重做日志文件和控制文件等。

2. 什么是SGA? SGA是System Global Area的缩写,是Oracle所有系统进程共享的内存区域,包括共享池、数据缓冲区、Redo日志缓冲区、重做日志缓冲区和大型池。

3. 什么是共享池(Shared Pool)? 共享池用于缓存SQL语句和PL/SQL代码,包含库缓存(存储解析过的SQL和PL/SQL代码)和数据字典缓存(存储数据字典信息)。

4. 什么是数据缓冲区(Database Buffer Cache)? 数据缓冲区用于缓存从数据文件中读取的数据块,提高数据访问速度。

5. 什么是Redo日志缓冲区(Redo Log Buffer)? Redo日志缓冲区用于存储数据库所有更改记录,供LGWR进程写入重做日志文件。

6. 什么是PGA? PGA是Process Global Area,每个用户进程私有,包括排序区、哈希区、会话信息和游标状态等。

7. Oracle进程有哪些? 包括服务器进程、后台进程(如DBWn、LGWR、CKPT、SMON、PMON、ARCn)和用户进程。

8. 什么是DBWn进程? DBWn(Database Writer)进程负责将脏数据块从缓冲区写入数据文件。

9. 什么是LGWR进程? LGWR(Log Writer)进程负责将Redo日志缓冲区的内容写入重做日志文件。

10. 什么是CKPT进程? CKPT(Checkpoint)进程负责更新数据文件头和控制文件中的检查点信息。

11. 什么是SMON进程? SMON(System Monitor)进程负责实例恢复、事务回滚、表空间收缩等。

12. 什么是PMON进程? PMON(Process Monitor)进程负责清理失败进程资源、重新连接用户会话。

13. 什么是数据文件? 数据文件存储数据库对象的数据,是数据库的物理存储结构。

14. 什么是控制文件? 控制文件记录数据库结构信息,如数据文件位置、重做日志文件位置、检查点信息等。

15. 什么是重做日志文件? 重做日志文件记录数据库所有更改操作,用于实例恢复。

16. 什么是归档日志? 当重做日志组被覆盖前,将其内容复制到归档日志文件的过程。

17. 什么是表空间? 表空间是逻辑存储单位,由一个或多个数据文件组成。

18. Oracle数据类型有哪些? 包括NUMBER、VARCHAR2、CHAR、DATE、CLOB、BLOB、TIMESTAMP等。

Oracle面试必备:30道经典数据库面试题精粹

19. VARCHAR2和CHAR有什么区别? VARCHAR2长度可变,CHAR固定长度,不足部分补空格。

20. 什么是约束? 约束用于限制表中数据的合法性,包括主键、外键、唯一、检查、非空约束。

21. 什么是索引? 索引是数据库中用于加速查询的数据结构,类似于书的目录。

22. B树索引和位图索引有什么区别? B树索引适合高并发OLTP,位图索引适合数据仓库OLTP。

23. 什么是视图? 视图是基于一个或多个表的虚拟表,不占用物理空间。

24. 什么是序列? 序列用于生成唯一递增的数字,常用于主键。

25. 什么是同义词? 同义词为数据库对象提供另一个名称,提高安全性。

26. 什么是触发器? 触发器是与表相关联的PL/SQL代码块,在特定事件发生时自动执行。

27. 什么是存储过程? 存储过程是一组预编译的SQL语句,可以接受参数并返回结果。

28. 什么是事务? 事务是一组逻辑操作,要么全部执行,要么全部不执行。

29. 什么是ACID特性? 原子性、一致性、隔离性、持久性。

30. 什么是锁? 锁用于控制并发访问,确保数据一致性,包括行锁、表锁等。

Q: Oracle面试中最常问的进程有哪些?
A: 最常问的是DBWn(数据库写入)、LGWR(日志写入)、CKPT(检查点)、SMON(系统监控)、PMON(进程监控)。

Q: SGA和PGA的主要区别是什么?
A: SGA是所有进程共享的内存区域,PGA是每个进程私有的内存区域。

Q: 为什么需要重做日志?
A: 重做日志用于记录所有数据库变更,确保在崩溃后能恢复数据。

Q: B树索引适用于什么场景?
A: B树索引适用于OLTP系统,高并发读写场景。