PostgreSql的执行计划1--获取执行计划

前端之家收集整理的这篇文章主要介绍了PostgreSql的执行计划1--获取执行计划前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
获取执行计划的方式是由Explain关键字来执行的,Explain的用法是: EXPLAIN [ ( option [,...] ) ] statement 其中option是值可以包含: analyze,timing,verbose,buffers,format option的含义:其中analyze 为true时,是实际执行了statement,所以在执行update,delete等语句时使用analyze需要小心,最好是包含在一个事务中,如: begin; explain analyze statement; --可以rollback,也可以commit End; timing的含义:显示执行的时间,在添加这个选项时必须analyze是true; verbose的含义:输出的字段显示; buffers的含义:显示有多少数据是能在共享缓存中获取; format的含义:设置输出的执行计划的格式; 示例1: explain select * from mytest9; QUERY PLAN --------------------------------------------------------- "Seq Scan on mytest9 (cost=0.00..184.00 rows=10000 width=34)" 不带任何option的执行计划显示。 示例2: explain analyze select * from mytest9; QUERY PLAN --------------------------------------------------------- "Seq Scan on mytest9 (cost=0.00..184.00 rows=10000 width=34) (actual time=0.022..2.195 rows=10000 loops=1)" "Total runtime: 2.884 ms" 使用了analyze后会显示一些运行时的参数。 示例3: explain (analyze true,timing,verbose,buffers,format json) select * from mytest9; QUERY PLAN --------------------------------------------------------- "[ { "Plan": { "Node Type": "Seq Scan","Relation Name": "mytest9","Schema": "public","Alias": "mytest9","Startup Cost": 0.00,"Total Cost": 184.00,"Plan Rows": 10000,"Plan Width": 34,"Actual (...)" 显示的是JSON格式的执行计划。 示例4: explain (analyze true,format text) select * from mytest9; QUERY PLAN --------------------------------------------------------- "Seq Scan on public.mytest9 (cost=0.00..184.00 rows=10000 width=34) (actual time=0.018..2.516 rows=10000 loops=1)" " Output: id,name_1,name_2,name_3" " Buffers: shared hit=84" "Total runtime: 3.497 ms" format参数改为text时,展现了输出的字段,share buffers中命中的个数,以及执行的时间,这个时间是真实的 原文链接:https://www.f2er.com/postgresql/195170.html

猜你在找的Postgre SQL相关文章