<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> <refsynopsisdiv> <refsynopsisdivinfo> <date>1998-09-01</date> </refsynopsisdivinfo> <synopsis> EXPLAIN [ VERBOSE ] <replaceable class="PARAMETER">query</replaceable> </synopsis> <refsect2 id="R2-SQL-EXPLAIN-1"> <refsect2info> <date>1998-09-01</date> </refsect2info> <title> Inputs </title> <para> <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> <refsect2 id="R2-SQL-EXPLAIN-2"> <refsect2info> <date>1998-04-15</date> </refsect2info> <title> Outputs </title> <para> <variablelist> <varlistentry> <term><computeroutput> NOTICE: QUERY PLAN: <replaceable>plan</replaceable> </computeroutput></term> <listitem> <para> Explicit query plan from the <productname>Postgres</productname> backend. </para> </listitem> </varlistentry> <varlistentry> <term><computeroutput> EXPLAIN </computeroutput></term> <listitem> <para> Flag sent after query plan is shown. </para> </listitem> </varlistentry> </variablelist> </para> </refsect2> </refsynopsisdiv> <refsect1 id="R1-SQL-EXPLAIN-1"> <refsect1info> <date>1998-04-15</date> </refsect1info> <title> Description </title> <para> This command outputs details about the supplied query. The default output is the computed query cost. The cost value is only meaningful to the optimizer in comparing various query plans. VERBOSE displays the full query plan and cost to your screen, and pretty-prints the plan to the postmaster log file. </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> <refsect1 id="R1-SQL-EXPLAIN-2"> <title> Usage </title> <para> To show a query plan for a simple query: <programlisting> EXPLAIN select * from foo; NOTICE: QUERY PLAN: Seq Scan on foo (cost=0.00 rows=0 width=4) EXPLAIN </programlisting> </para> </refsect1> <refsect1 id="R1-SQL-EXPLAIN-3"> <title> Compatibility </title> <para> </para> <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> <!-- 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: -->