PostgreSQL执行计划的解释
来源:互联网 发布:java平台应用是javaee 编辑:程序博客网 时间:2024/06/05 08:23
一个顺序磁盘页面操作的cost值由系统参数seq_page_cost (floating point)参数指定的,由于这个参数默认为1.0,所以我们可以认为一次顺序磁盘页面操作的cost值为1。
下面
osdba=# explain select * from t;
QUERY PLAN
———————————————————-
Seq Scan on t (cost=0.00 ..4621.00 rows=300000 width=10 )
(1 row)
cost=说明:
- 第一个数字0.00表示启动cost,这是执行到返回第一行时需要的cost值。
- 第二个数字4621.00表示执行整个SQL的cost
可以explain后加analyze来通过真实执行这个SQL来获得真实的执行计划和执行时间:.
osdba=# EXPLAIN ANALYZE SELECT * FROM t;
QUERY PLAN
-----------------------------------------------------------------------------------------------------------
Seq Scan on t (cost=0.00..4621.00 rows=300000 width=10) (actual time=0.022 ..355.380rows=300000 loops=1)
Total runtime: 696.074 ms
actual time=中的第一个数字表示返回第一行需要的时间(叫启动时间),第二个数字表示执行这个整个花的时间。后面的rows=300000是实际的行数。
表顺序扫描由于是立即可以获得第一行,所以启动时间一般都是0,而如果是排序操作,则需要处理完所有行后才能返回第一行,所以排序操作是需要启动时间的,下表列出了哪些操作是需要启动时间的,哪些操作不是需要的:
执行计划运算类型 操作说明 是否有启动时间
有启动时
explain select distinct course_id from course where course_term = 'Fal02';
NOTICE: QUERY PLAN:
Unique (cost=12223.09..12339.76 rows=4667 width=4)
-> Sort (cost=12223.09..12223.09 rows=46666 width=4)
-> Seq Scan on course (cost=0.00..8279.99 rows=46666 width=4)
1.从下往上读
2.explain报告查询的操作,开启的消耗,查询总的消耗,访问的行数 访问的平均宽度
3.开启时间消耗是输出开始前的时间例如排序的时间
4.消耗包括磁盘检索页,cpu时间
5.注意,每一步的cost包括上一步的
6.重要的是,explain 不是真正的执行一次查询 只是得到查询执行的计划和估计的花费
索引有用条件 当满足特定条件的元组数小于总的数目
- PostgreSQL执行计划的解释
- PostgreSQL执行计划的解释
- PostgreSQL执行计划的解释
- PostgreSQL执行计划的解释
- PostgreSQL的执行计划分析
- PostgreSQL的执行计划分析
- PostgreSQL的执行计划分析
- 对执行计划的解释
- PostgreSql的执行计划1--获取执行计划
- postgresql 执行计划理解
- PostgreSQL执行计划
- postgresql 执行计划理解
- Postgresql执行计划学习
- Oracle执行计划解释
- oracle执行计划解释
- Oracle 解释执行计划
- Oracle 解释执行计划
- PostgreSQL SQL的性能调试方法3--查看执行计划
- java连接Active Directory进行用户认证
- CodeWarrior伪指令整理(持续添加)
- 标记化结构初始化语法(C语言)
- 如何有效抓取SQL Server的BLOCKING信息
- 什么是卷积
- PostgreSQL执行计划的解释
- Weblogic 脚本工具 导航和编辑 MBean
- Ubuntu下安装配置MPICH2.1.4
- 在IPhone/IPad上建立反弹后门
- Makefile 隐式规则
- 代理服务器内部的实现方法(Windows 2000 Server)
- sourcesafe设置默认的用户名
- 详细解说 STL 排序(Sort)_C++ Programmer's Cookbook
- 【Tiny6410 And Linux】—(5.1)—RamDisk 驱动实现(内核缺省的处理函数 __make_request())——代码