1999-07-06 19:16:42 +02:00
|
|
|
<refentry id="SQL-EXPLAIN">
|
|
|
|
<refmeta>
|
|
|
|
<refentrytitle>
|
|
|
|
EXPLAIN
|
|
|
|
</refentrytitle>
|
|
|
|
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
|
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
|
|
<refname>
|
|
|
|
EXPLAIN
|
|
|
|
</refname>
|
|
|
|
<refpurpose>
|
|
|
|
Shows statement execution details
|
|
|
|
</refpurpose>
|
|
|
|
</refnamediv>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<refsynopsisdiv>
|
|
|
|
<refsynopsisdivinfo>
|
|
|
|
<date>1998-09-01</date>
|
|
|
|
</refsynopsisdivinfo>
|
|
|
|
<synopsis>
|
|
|
|
EXPLAIN [ VERBOSE ] <replaceable class="PARAMETER">query</replaceable>
|
|
|
|
</synopsis>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<refsect2 id="R2-SQL-EXPLAIN-1">
|
|
|
|
<refsect2info>
|
|
|
|
<date>1998-09-01</date>
|
|
|
|
</refsect2info>
|
|
|
|
<title>
|
|
|
|
Inputs
|
|
|
|
</title>
|
|
|
|
<para>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term>VERBOSE</term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Flag to show detailed query plan.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term><replaceable class="PARAMETER">query</replaceable></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Any <replaceable class="PARAMETER">query</replaceable>.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<refsect2 id="R2-SQL-EXPLAIN-2">
|
|
|
|
<refsect2info>
|
|
|
|
<date>1998-04-15</date>
|
|
|
|
</refsect2info>
|
|
|
|
<title>
|
|
|
|
Outputs
|
|
|
|
</title>
|
|
|
|
<para>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term><computeroutput>
|
1998-09-05 08:02:57 +02:00
|
|
|
NOTICE: QUERY PLAN:
|
1998-09-25 15:42:46 +02:00
|
|
|
<replaceable>plan</replaceable>
|
1999-07-06 19:16:42 +02:00
|
|
|
</computeroutput></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Explicit query plan from the <productname>Postgres</productname> backend.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term><computeroutput>
|
1998-09-05 08:02:57 +02:00
|
|
|
EXPLAIN
|
1999-07-06 19:16:42 +02:00
|
|
|
</computeroutput></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Flag sent after query plan is shown.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
</refsynopsisdiv>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<refsect1 id="R1-SQL-EXPLAIN-1">
|
|
|
|
<refsect1info>
|
|
|
|
<date>1998-04-15</date>
|
|
|
|
</refsect1info>
|
|
|
|
<title>
|
|
|
|
Description
|
|
|
|
</title>
|
|
|
|
<para>
|
1998-09-05 08:02:57 +02:00
|
|
|
This command outputs details about the supplied query.
|
|
|
|
The default output is the computed query cost.
|
1999-04-23 23:23:49 +02:00
|
|
|
The cost value is only meaningful to the optimizer in comparing
|
|
|
|
various query plans.
|
1998-10-15 07:47:04 +02:00
|
|
|
VERBOSE displays the full query plan and cost to your screen,
|
|
|
|
and pretty-prints the plan to the postmaster log file.
|
1999-07-06 19:16:42 +02:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<refsect2 id="R2-SQL-EXPLAIN-3">
|
|
|
|
<refsect2info>
|
|
|
|
<date>1998-04-15</date>
|
|
|
|
</refsect2info>
|
|
|
|
<title>
|
|
|
|
Notes
|
|
|
|
</title>
|
|
|
|
<para>
|
|
|
|
There is only sparse documentation on the optimizer's use of cost
|
|
|
|
information in <productname>Postgres</productname>.
|
|
|
|
General information on cost estimation for query optimization
|
|
|
|
can be found in database textbooks.
|
|
|
|
Refer to the <citetitle>Programmer's Guide</citetitle>
|
|
|
|
in the chapters on indexes and the genetic query optimizer for
|
|
|
|
more information.
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
</refsect1>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<refsect1 id="R1-SQL-EXPLAIN-2">
|
|
|
|
<title>
|
|
|
|
Usage
|
|
|
|
</title>
|
|
|
|
<para>
|
|
|
|
To show a query plan for a simple query:
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<programlisting>
|
|
|
|
EXPLAIN select * from foo;
|
1998-09-05 08:02:57 +02:00
|
|
|
NOTICE: QUERY PLAN:
|
|
|
|
|
1999-04-23 23:23:49 +02:00
|
|
|
Seq Scan on foo (cost=0.00 rows=0 width=4)
|
1998-09-05 08:02:57 +02:00
|
|
|
|
|
|
|
EXPLAIN
|
1999-07-06 19:16:42 +02:00
|
|
|
</programlisting>
|
|
|
|
</para>
|
|
|
|
</refsect1>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<refsect1 id="R1-SQL-EXPLAIN-3">
|
|
|
|
<title>
|
|
|
|
Compatibility
|
|
|
|
</title>
|
|
|
|
<para>
|
|
|
|
</para>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<refsect2 id="R2-SQL-EXPLAIN-4">
|
|
|
|
<refsect2info>
|
|
|
|
<date>1998-09-01</date>
|
|
|
|
</refsect2info>
|
|
|
|
<title>
|
|
|
|
SQL92
|
|
|
|
</title>
|
|
|
|
<para>
|
|
|
|
There is no <command>EXPLAIN</command> statement defined in SQL92.
|
|
|
|
</para>
|
|
|
|
</refsect2>
|
|
|
|
</refsect1>
|
|
|
|
</refentry>
|
1998-09-05 08:02:57 +02:00
|
|
|
|
1999-07-06 19:16:42 +02:00
|
|
|
<!-- Keep this comment at the end of the file
|
|
|
|
Local variables:
|
|
|
|
mode: sgml
|
|
|
|
sgml-omittag:nil
|
|
|
|
sgml-shorttag:t
|
|
|
|
sgml-minimize-attributes:nil
|
|
|
|
sgml-always-quote-attributes:t
|
|
|
|
sgml-indent-step:1
|
|
|
|
sgml-indent-data:t
|
|
|
|
sgml-parent-document:nil
|
|
|
|
sgml-default-dtd-file:"../reference.ced"
|
|
|
|
sgml-exposed-tags:nil
|
|
|
|
sgml-local-catalogs:"/usr/lib/sgml/catalog"
|
|
|
|
sgml-local-ecat-files:nil
|
|
|
|
End:
|
1998-09-05 08:02:57 +02:00
|
|
|
-->
|