常用数据库查看SQL执行计划的方法( Mysql,Oracle,Postgresql,SQL Server,SQLite)

执行计划(Execution Plan)是数据库如何执行SQL语句的详细路线图,了解如何查看执行计划对优化查询性能至关重要。以下是主流数据库查看执行计划的方法:

1. MySQL/MariaDB

基本方法

-- 常规EXPLAIN

EXPLAIN SELECT * FROM users WHERE age > 25;

-- 更详细的分析(MySQL 8.0+)

EXPLAIN ANALYZE SELECT * FROM users WHERE age > 25;

输出解读重点:

type:访问类型(从好到差:system > const > eq_ref > ref > range > index > ALL)

key:实际使用的索引

rows:预估需要检查的行数

Extra:额外信息(如Using where, Using index, Using filesort等)

2. PostgreSQL

-- 简单执行计划

EXPLAIN SELECT * FROM users WHERE age > 25;

-- 带实际执行统计

EXPLAIN ANALYZE SELECT * FROM users WHERE age > 25;

-- 更详细格式

EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) SELECT * FROM users WHERE age > 25;

输出解读重点:

Seq Scan vs Index Scan:全表扫描还是索引扫描

Cost:预估成本(第一个数字是启动成本,第二个是总成本)

Actual Time:实际执行时间

Buffers:缓存使用情况

3. Oracle

-- 生成执行计划

EXPLAIN PLAN FOR

SELECT * FROM employees WHERE department_id = 10;

-- 查看执行计划

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

-- 带统计信息的执行计划

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(sql_id => 'abc123', format => 'ALLSTATS LAST'));

输出解读重点:

Operation:执行的操作(如TABLE ACCESS FULL, INDEX RANGE SCAN)

Name:操作的对象(表或索引名)

Rows:预估行数

Cost:预估成本

Time:预估执行时间

4. SQL Server

-- 文本格式执行计划

SET SHOWPLAN_TEXT ON;

GO

SELECT * FROM users WHERE age > 25;

GO

SET SHOWPLAN_TEXT OFF;

-- 图形化执行计划(SSMS中)

-- 按Ctrl+M打开实际执行计划,然后执行查询

-- XML格式执行计划

SET SHOWPLAN_XML ON;

GO

SELECT * FROM users WHERE age > 25;

GO

SET SHOWPLAN_XML OFF;

输出解读重点:

Physical Operation:物理操作(如Clustered Index Scan, Index Seek)

Logical Operation:逻辑操作

Estimated I/O Cost:预估I/O成本

Estimated Subtree Cost:子树总成本

Actual Rows vs Estimated Rows:实际与预估行数对比

5. SQLite

-- 简单执行计划

EXPLAIN QUERY PLAN SELECT * FROM users WHERE age > 25;

-- 更详细的字节码执行计划

EXPLAIN SELECT * FROM users WHERE age > 25;

输出解读重点:

detail:执行细节

scan:扫描方式(如TABLE, INDEX)

using index:是否使用索引

通用执行计划解读技巧

从右向左,从内向外阅读执行计划

重点关注:

全表扫描(TABLE SCAN/FULL SCAN)

高成本操作

预估行数与实际行数差异大的步骤

寻找性能瓶颈:

最昂贵的操作(最高成本或最长时间)

未使用预期索引的情况

不必要的排序或临时表操作

Copyright © 2088 世界杯预选赛中国_1994年世界杯冠军是谁 - nywk120.com All Rights Reserved.
友情链接
Top