Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
ea10ec1b
Commit
ea10ec1b
authored
23 years ago
by
Tom Lane
Browse files
Options
Downloads
Patches
Plain Diff
Tweak labeling of plan qual conditions for more consistency.
parent
7100cbc1
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
doc/src/sgml/perform.sgml
+12
-12
12 additions, 12 deletions
doc/src/sgml/perform.sgml
doc/src/sgml/ref/explain.sgml
+3
-3
3 additions, 3 deletions
doc/src/sgml/ref/explain.sgml
src/backend/commands/explain.c
+5
-5
5 additions, 5 deletions
src/backend/commands/explain.c
with
20 additions
and
20 deletions
doc/src/sgml/perform.sgml
+
12
−
12
View file @
ea10ec1b
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.
19
2002/03/24
04:31:05
tgl Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.
20
2002/03/24
17:11:37
tgl Exp $
-->
<chapter id="performance-tips">
...
...
@@ -116,7 +116,7 @@ SELECT * FROM pg_class WHERE relname = 'tenk1';
</para>
<para>
Now let's modify the query to add a
qualification clause
:
Now let's modify the query to add a
WHERE condition
:
<programlisting>
regression=# EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 1000;
...
...
@@ -142,14 +142,14 @@ regression=# EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 1000;
</para>
<para>
Modify the query to restrict the
qualifica
tion even more:
Modify the query to restrict the
condi
tion even more:
<programlisting>
regression=# EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 50;
QUERY PLAN
-------------------------------------------------------------------------------
Index Scan using tenk1_unique1 on tenk1 (cost=0.00..179.33 rows=49 width=148)
Index
Filter
: (unique1 < 50)
Index
Cond
: (unique1 < 50)
</programlisting>
and you will see that if we make the WHERE condition selective
...
...
@@ -161,7 +161,7 @@ regression=# EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 50;
</para>
<para>
Add another c
ondition to the qualifica
tion:
Add another c
lause to the WHERE condi
tion:
<programlisting>
regression=# EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 50 AND
...
...
@@ -169,7 +169,7 @@ regression-# stringu1 = 'xxx';
QUERY PLAN
-------------------------------------------------------------------------------
Index Scan using tenk1_unique1 on tenk1 (cost=0.00..179.45 rows=1 width=148)
Index
Filter
: (unique1 < 50)
Index
Cond
: (unique1 < 50)
Filter: (stringu1 = 'xxx'::name)
</programlisting>
...
...
@@ -193,10 +193,10 @@ regression-# AND t1.unique2 = t2.unique2;
Nested Loop (cost=0.00..327.02 rows=49 width=296)
-> Index Scan using tenk1_unique1 on tenk1 t1
(cost=0.00..179.33 rows=49 width=148)
Index
Filter
: (unique1 < 50)
Index
Cond
: (unique1 < 50)
-> Index Scan using tenk2_unique2 on tenk2 t2
(cost=0.00..3.01 rows=1 width=148)
Index
Filter
: ("outer".unique2 = t2.unique2)
Index
Cond
: ("outer".unique2 = t2.unique2)
</programlisting>
</para>
...
...
@@ -208,7 +208,7 @@ regression-# AND t1.unique2 = t2.unique2;
affect row count of the outer scan. For the inner scan, the unique2 value of the
current
outer-scan tuple is plugged into the inner index scan
to produce an index
qualifica
tion like
to produce an index
condi
tion like
<literal>t2.unique2 = <replaceable>constant</replaceable></literal>. So we get the
same inner-scan plan and costs that we'd get from, say, <literal>explain select
* from tenk2 where unique2 = 42</literal>. The costs of the loop node are then set
...
...
@@ -246,7 +246,7 @@ regression-# AND t1.unique2 = t2.unique2;
-> Hash (cost=179.33..179.33 rows=49 width=148)
-> Index Scan using tenk1_unique1 on tenk1 t1
(cost=0.00..179.33 rows=49 width=148)
Index
Filter
: (unique1 < 50)
Index
Cond
: (unique1 < 50)
</programlisting>
This plan proposes to extract the 50 interesting rows of <classname>tenk1</classname>
...
...
@@ -279,11 +279,11 @@ regression-# WHERE t1.unique1 < 50 AND t1.unique2 = t2.unique2;
-> Index Scan using tenk1_unique1 on tenk1 t1
(cost=0.00..179.33 rows=49 width=148)
(actual time=0.63..8.91 rows=50 loops=1)
Index
Filter
: (unique1 < 50)
Index
Cond
: (unique1 < 50)
-> Index Scan using tenk2_unique2 on tenk2 t2
(cost=0.00..3.01 rows=1 width=148)
(actual time=0.29..0.32 rows=1 loops=50)
Index
Filter
: ("outer".unique2 = t2.unique2)
Index
Cond
: ("outer".unique2 = t2.unique2)
Total runtime: 31.60 msec
</screen>
...
...
This diff is collapsed.
Click to expand it.
doc/src/sgml/ref/explain.sgml
+
3
−
3
View file @
ea10ec1b
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/explain.sgml,v 1.1
8
2002/03/24 1
6:57:29
tgl Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/explain.sgml,v 1.1
9
2002/03/24 1
7:11:37
tgl Exp $
PostgreSQL documentation
-->
...
...
@@ -209,7 +209,7 @@ EXPLAIN SELECT * FROM foo WHERE i = 4;
QUERY PLAN
--------------------------------------------------------------
Index Scan using fi on foo (cost=0.00..5.98 rows=1 width=4)
Index
Filter
: (i = 4)
Index
Cond
: (i = 4)
(2 rows)
</computeroutput>
</programlisting>
...
...
@@ -226,7 +226,7 @@ EXPLAIN SELECT sum(i) FROM foo WHERE i < 10;
---------------------------------------------------------------------
Aggregate (cost=23.93..23.93 rows=1 width=4)
-> Index Scan using fi on foo (cost=0.00..23.92 rows=6 width=4)
Index
Filter
: (i < 10)
Index
Cond
: (i < 10)
(3 rows)
</computeroutput>
</programlisting>
...
...
This diff is collapsed.
Click to expand it.
src/backend/commands/explain.c
+
5
−
5
View file @
ea10ec1b
...
...
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994-5, Regents of the University of California
*
* $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.7
4
2002/03/24
04:31:07
tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.7
5
2002/03/24
17:11:36
tgl Exp $
*
*/
...
...
@@ -389,7 +389,7 @@ explain_outNode(StringInfo str, Plan *plan, Plan *outer_plan,
{
case
T_IndexScan
:
show_scan_qual
(((
IndexScan
*
)
plan
)
->
indxqualorig
,
true
,
"Index
Filter
"
,
"Index
Cond
"
,
((
Scan
*
)
plan
)
->
scanrelid
,
outer_plan
,
str
,
indent
,
es
);
...
...
@@ -409,7 +409,7 @@ explain_outNode(StringInfo str, Plan *plan, Plan *outer_plan,
break
;
case
T_NestLoop
:
show_upper_qual
(((
NestLoop
*
)
plan
)
->
join
.
joinqual
,
"Join
Cond
"
,
"Join
Filter
"
,
"outer"
,
OUTER
,
outerPlan
(
plan
),
"inner"
,
INNER
,
innerPlan
(
plan
),
str
,
indent
,
es
);
...
...
@@ -426,7 +426,7 @@ explain_outNode(StringInfo str, Plan *plan, Plan *outer_plan,
"inner"
,
INNER
,
innerPlan
(
plan
),
str
,
indent
,
es
);
show_upper_qual
(((
MergeJoin
*
)
plan
)
->
join
.
joinqual
,
"Join
Cond
"
,
"Join
Filter
"
,
"outer"
,
OUTER
,
outerPlan
(
plan
),
"inner"
,
INNER
,
innerPlan
(
plan
),
str
,
indent
,
es
);
...
...
@@ -443,7 +443,7 @@ explain_outNode(StringInfo str, Plan *plan, Plan *outer_plan,
"inner"
,
INNER
,
innerPlan
(
plan
),
str
,
indent
,
es
);
show_upper_qual
(((
HashJoin
*
)
plan
)
->
join
.
joinqual
,
"Join
Cond
"
,
"Join
Filter
"
,
"outer"
,
OUTER
,
outerPlan
(
plan
),
"inner"
,
INNER
,
innerPlan
(
plan
),
str
,
indent
,
es
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment