Postgresql 查看SQL语句执行效率的方法

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。
 
Explain语法:
 
1explain select … from … [where …]
 
例如:
 
1explain select * from dual;
 
这里有一个简单的例子,如下:
 
EXPLAIN SELECT * FROM tenk1;
               QUERY PLAN
—————————————————————-
   Seq Scan on tenk1 (cost=0.00..458.00 rows=10000 width=244)
 
 
 
EXPLAIN引用的数据是:
 
1). 预计的启动开销(在输出扫描开始之前消耗的时间,比如在一个排序节点里做排续的时间)。
 
2). 预计的总开销。
 
3). 预计的该规划节点输出的行数。
 
4). 预计的该规划节点的行平均宽度(单位:字节)。
 
这里开销(cost)的计算单位是磁盘页面的存取数量,如1.0将表示一次顺序的磁盘页面读取。其中上层节点的开销将包括其所有子节点的开销。这里的输出行数(rows)并不是规划节点处理/扫描的行数,通常会更少一些。一般而言,顶层的行预计数量会更接近于查询实际返回的行数。
 
现在我们执行下面基于系统表的查询:
 
1SELECT relpages, reltuples FROM pg_class WHERE relname = 'tenk1';
 
从查询结果中可以看出tenk1表占有358个磁盘页面和10000条记录,然而为了计算cost的值,我们仍然需要知道另外一个系统参数值。
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章