某查询语句执行很慢,表上虽然建立了索引,但 DBA 不想只凭感觉判断优化器是否真的使用了该索引,而是希望查看访问路径、扫描方式和连接顺序。较合适的做法是()。
执行计划展示数据库优化器准备怎样执行一条 SQL,包括是否走索引、使用哪个索引、是否全表扫描、连接顺序和访问代价等。索引建了不等于一定会用,函数包裹列、隐式类型转换、选择性太差、统计信息不准,都可能让优化器选择别的路径。
选项分析
正确。执行计划可以帮助判断是否走索引、是否全表扫描以及访问路径是否合理。
错误。把字段都改成字符串会破坏数据类型设计,还可能带来隐式转换问题。
错误。删除日志文件可能造成严重故障,不能作为性能优化手段。
错误。关闭事务一致性会破坏数据正确性,不是 SQL 优化方法。
本题为什么容易错
有些同学一看到查询慢就机械选“加索引”。但考试越来越喜欢问诊断思路:已经有索引,为什么还慢?这时要想到执行计划、选择性、统计信息和索引列使用方式。
简短答案
为什么要看 SQL 执行计划来判断索引是否生效,正确答案是 A(查看 SQL 执行计划)。执行计划展示数据库优化器准备怎样执行一条 SQL,包括是否走索引、使用哪个索引、是否全表扫描、连接顺序和访问代价等。索引建了不等于一定会用,函数包裹列、隐式类型转换、选择性太差、统计信息不准,都可能让优化器选择别的路径。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 查看 SQL 执行计划 | 本题正确答案 | 正确。执行计划可以帮助判断是否走索引、是否全表扫描以及访问路径是否合理。 | 看到题干核心场景时优先联想到它 |
| 把所有字段都改成字符串 | 本题干扰项 | 错误。把字段都改成字符串会破坏数据类型设计,还可能带来隐式转换问题。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 删除数据库日志文件 | 本题干扰项 | 错误。删除日志文件可能造成严重故障,不能作为性能优化手段。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 关闭事务一致性 | 本题干扰项 | 错误。关闭事务一致性会破坏数据正确性,不是 SQL 优化方法。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 把所有字段都改成字符串:错误。把字段都改成字符串会破坏数据类型设计,还可能带来隐式转换问题。
- 删除数据库日志文件:错误。删除日志文件可能造成严重故障,不能作为性能优化手段。
- 关闭事务一致性:错误。关闭事务一致性会破坏数据正确性,不是 SQL 优化方法。
知识点详解
SQL 优化是数据库系统工程师考试中需要结合场景理解的考点。围绕“为什么要看 SQL 执行计划来判断索引是否生效”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“某查询语句执行很慢,表上虽然建立了索引,但 DBA 不想只凭感觉判断优化器是否真的使用了该索引,而是希望查看访问路径、扫描方式和连接顺序。较合适的做法是()”,它指向的核心答案是 A(查看 SQL 执行计划)。
备考速记
备考速记:题干如果强调“索引”中的关键目标,就先联想到 SQL 优化;如果选项里出现 把所有字段都改成字符串、删除数据库日志文件、关闭事务一致性,不要只看名称熟悉,要判断它们是否真正对应题干场景。
SQL 优化 在索引场景中的作用
SQL 优化在本题中的核心价值,是解决“某查询语句执行很慢,表上虽然建立了索引,但 DBA 不想只凭感觉判断优化器是否真的使用了该索引,而是希望查看访问路径、扫描方式和连接顺序。较合适的做法是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给出索引场景,判断应该选择哪个概念、工具、协议或管理过程。
- 考查SQL 优化的作用,要求从四个相近选项中找出最符合题干目标的一项。
- 把SQL 优化和把所有字段都改成字符串、删除数据库日志文件、关闭事务一致性放在一起考,重点看适用场景是否一致。
- 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
SQL 优化 在数据库系统工程师软考中的考法
软考选择题通常不会只考概念定义,还会把SQL 优化放到索引场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
题干问的是如何确认优化器有没有使用索引,标准动作就是查看执行计划。老师讲这类题会说:慢 SQL 不能只靠直觉,先看它到底怎么跑。执行计划就是把这件事摊开看。
考点定位
SQL 性能题不要停在“建索引”三个字。真正判断索引是否生效,通常要看执行计划和实际访问路径。
易错提醒
- 认为建了索引就一定比全表扫描快。
- 忽略 where 条件对索引列做函数运算可能导致索引难以使用。
- 只看 SQL 文本,不看执行计划里的扫描方式和行数估计。
备考提示
- 数据库优化题可以按“定位慢 SQL、看执行计划、看索引和统计信息、再改写 SQL”的顺序复习。
- 遇到“判断索引是否生效”“访问路径”“全表扫描”,优先想到执行计划。
你可能还想了解
- 为什么要看 SQL 执行计划来判断索引是否生效?
- SQL 优化是什么?
- SQL 优化在数据库系统工程师考试中怎么考?
- 数据库系统工程师SQL 优化题怎么理解?
- SQL执行计划怎么看索引怎么考?
- 数据库系统工程师SQL优化怎么考?
本文小结
本题核心考点是SQL 优化在索引场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(查看 SQL 执行计划)。