阿里巴巴DBA笔试题:SQL优化与数据库基础

需积分: 0 2 下载量 24 浏览量 更新于2024-11-15 收藏 62KB DOC 举报
"阿里巴巴公司的DBA笔试题涵盖了SQL优化、数据库基础概念、备份恢复策略、系统管理和综合能力等多个方面,旨在测试应聘者在实际工作中解决数据库问题的能力。" 一、SQL优化类 1. 表连接方式包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)、自连接以及交叉连接(CROSS JOIN)。 2. 使用`EXPLAIN PLAN`或`EXPLAIN PLAN FOR`命令可以查看SQL的执行计划,也可以通过`DBMS_XPLAN`包的函数来展示详细信息。 3. CBO(Cost-Based Optimizer)基于成本的优化器,根据统计信息选择最优执行路径;RULE基于规则的优化器,遵循预定义的执行顺序。CBO通常能提供更好的性能。 4. 可以通过`V$SQL`视图找到消耗资源多的SQL,结合`LAST_LOAD_TIME`和`EXECUTIONS`等指标进行分析。 5. 使用`DBMS_SESSION.SEGMENT_STATISTICS`或`V$SESSION_LONGOPS`跟踪特定会话的SQL执行情况。 6. SQL调整最关注的是查询效率、资源消耗和数据一致性。 7. 索引包括B树索引、位图索引等,其结构包括索引块、叶块、分支块。索引能加速查询但可能影响DML操作,对查询性能的提升取决于查询模式和数据分布。 8. 使用索引并不总是提高性能,当全表扫描更快或索引未被有效利用时,可能反而降低性能。 9. 绑定变量是SQL语句中的占位符,优点是减少硬解析,提高性能;缺点是可能导致执行计划不稳定。 10. 使用`SQL profiles`或`FORCE` hint可以稳定执行计划。 二、数据库基本概念类 1. `PCTUSED`和`PCTFREE`用于控制表空间的分配策略,影响数据块的利用率和空间扩展。 2. 表(TABLE)由段(SEGMENT)组成,段由扩展(EXTENT)组成,扩展由数据块(BLOCK)构成。 3. 表空间(TABLESPACE)包含一个或多个数据文件(DATAFILE),是逻辑存储和物理存储的桥梁。 4. 本地管理表空间(LMT)简化了段管理,ASSM(Automatic Segment Space Management)自动管理表空间的空闲空间。 5. 回滚段保存事务的撤销信息,确保回滚操作的可行性。 6. 日志(redo log)记录所有事务的改变,用于恢复和保证ACID属性。 7. SGA(System Global Area)包括数据缓冲区、重做日志缓冲区、共享池、大池、Java池等,是Oracle数据库运行的核心组件。 8. Oracle系统进程如PMON(Process Monitor)、SMON(System Monitor)、DBWR(Database Writer)等,各自负责监控、系统维护和数据写入等任务。 三、备份恢复类 1. 备份类型包括完整备份、增量备份、差异备份和逻辑备份。 2. 归档是记录数据库更改的历史,用于在非归档模式下丢失数据后的恢复。 3. 使用时间点恢复技术,结合归档日志和之前备份的数据文件恢复。 4. RMAN(Recovery Manager)是Oracle提供的备份和恢复工具,支持自动备份、脚本化操作和网络备份。 5. 主备数据库(Standby)提供高可用性,主库故障时可快速切换。 6. 针对要求恢复时间短的系统,可采用频繁的增量备份和实时归档,结合RMAN和Standby数据库策略。 四、系统管理类 1. 诊断性能问题时,先收集系统和SQL层面的监控数据,然后分析等待事件、I/O和CPU使用情况。 2. 诊断方法包括使用`V$视图`、`ASH`、`AWR`和`Statspack`报告。 3. Statspack是Oracle的性能监控工具,提供数据库性能的快照和对比分析。 4. 创建索引前应考虑查询模式、数据分布、索引类型,通过低峰期操作、分区或并行执行等方式降低影响。 5. RAID10提供高读写性能,RAID5提供数据冗余但写性能较低。 五、综合随意类 1. 应聘者应根据个人专长回答,例如SQL优化、性能调优、高可用性等。 2. 这部分考察个人对Oracle的热情和参与社区的经验。 3. 感兴趣的领域或挑战性的部分可能包括复杂查询优化、数据库架构设计等。 4. 做DBA的原因可能涉及对数据安全、系统稳定性及解决问题的热爱。