Consecutive Query Executions with Increasing Execution Time

Shijia Wei <[email protected]> Sun, 15 Dec 2019 23:59:26 -0600
Newsgroups gmane.comp.db.postgresql.performance
Message-ID <CABSfb-6iUvpGCzcgni+tVoiUWTc9aQdUtKbOzFzGqJcypiLa4g@mail.gmail.com>
--00000000000021e5930599cbec12
Content-Type: text/plain; charset="UTF-8"

Hi all,

I am running TPC-H on recent postgresql (12.0 and 12.1).
On some of the queries (that may involve parallel scans) I see this
interesting behavior:
When these queries are executed back-to-back (sent from psql interactive
terminal), the total execution time of them increase monotonically.

I simplified query-1 to demonstrate this effect:
``` example.sql
explain (analyze, buffers) select
        max(l_shipdate) as max_data,
        count(*) as count_order
from
        lineitem
where
        l_shipdate <= date '1998-12-01' - interval '20' day;
```

When I execute (from fish) following command:
`for i in (seq 1 20); psql tpch < example.sql | grep Execution; end`
The results I get are as follows:
"
 Execution Time: 184.864 ms
 Execution Time: 192.758 ms
 Execution Time: 197.380 ms
 Execution Time: 200.384 ms
 Execution Time: 202.950 ms
 Execution Time: 205.695 ms
 Execution Time: 208.082 ms
 Execution Time: 209.108 ms
 Execution Time: 212.428 ms
 Execution Time: 214.539 ms
 Execution Time: 215.799 ms
 Execution Time: 219.057 ms
 Execution Time: 222.102 ms
 Execution Time: 223.779 ms
 Execution Time: 227.819 ms
 Execution Time: 229.710 ms
 Execution Time: 239.439 ms
 Execution Time: 237.649 ms
 Execution Time: 249.178 ms
 Execution Time: 261.268 ms
"
In addition, if the repeated more times, the total execution time can end
up being 10X and more!!!

When there a wait period in-between queries, (e.g. sleep 10) in the above
for loop, this increasing execution time behavior goes a way.
For more complex queries, the "wait period" needs to be longer to avoid the
increase in execution time.

Some metadata about this table "lineitem":
tpch=# \d lineitem
                         Table "public.lineitem"
     Column      |         Type          | Collation | Nullable | Default
-----------------+-----------------------+-----------+----------+---------
 l_orderkey      | integer               |           | not null |
 l_partkey       | integer               |           | not null |
 l_suppkey       | integer               |           | not null |
 l_linenumber    | integer               |           | not null |
 l_quantity      | numeric(15,2)         |           | not null |
 l_extendedprice | numeric(15,2)         |           | not null |
 l_discount      | numeric(15,2)         |           | not null |
 l_tax           | numeric(15,2)         |           | not null |
 l_returnflag    | character(1)          |           | not null |
 l_linestatus    | character(1)          |           | not null |
 l_shipdate      | date                  |           | not null |
 l_commitdate    | date                  |           | not null |
 l_receiptdate   | date                  |           | not null |
 l_shipinstruct  | character(25)         |           | not null |
 l_shipmode      | character(10)         |           | not null |
 l_comment       | character varying(44) |           | not null |
Indexes:
    "i_l_commitdate" btree (l_commitdate)
    "i_l_orderkey" btree (l_orderkey)
    "i_l_orderkey_quantity" btree (l_orderkey, l_quantity)
    "i_l_partkey" btree (l_partkey)
    "i_l_receiptdate" btree (l_receiptdate)
    "i_l_shipdate" btree (l_shipdate)
    "i_l_suppkey" btree (l_suppkey)
    "i_l_suppkey_partkey" btree (l_partkey, l_suppkey)

tpch=# SELECT relname, relpages, reltuples, relallvisible, relkind, relnatts,
relhassubclass, reloptions, pg_table_size(oid) FROM pg_class WHERE relname
='lineitem';
 relname  | relpages |  reltuples   | relallvisible | relkind | relnatts |
relhassubclass | reloptions | pg_table_size
----------+----------+--------------+---------------+---------+----------+----------------+------------+---------------
 lineitem |   112503 | 6.001167e+06 |        112503 | r       |       16 |
f              |            |     921903104
(1 row)

Postgresql 12.0 and 12.1 are all manually installed from source.
Both are running on Ubuntu 16.04 kernel 4.4.0-142-generic, on Intel(R)
Core(TM) i7-6700K.


Any help greatly appreciated!

Shijia

--00000000000021e5930599cbec12
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif">Hi all,</div><div class=3D"gmail_default" style=3D"font=
-family:arial,helvetica,sans-serif"><br></div><div class=3D"gmail_default" =
style=3D"font-family:arial,helvetica,sans-serif">I am running <span class=
=3D"" id=3D":1wh.1" tabindex=3D"-1" style=3D"">TPC</span>-H on recent <span=
 class=3D"" id=3D":1wh.2" tabindex=3D"-1" style=3D"">postgresql</span> (12.=
0 and 12.1).</div><div class=3D"gmail_default" style=3D"font-family:arial,h=
elvetica,sans-serif">On some of the queries (that may involve parallel scan=
s) I see this interesting behavior:</div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif">When these queries are executed=
 back-to-back (sent from <span class=3D"" id=3D":1wh.3" tabindex=3D"-1" sty=
le=3D"">psql</span> interactive terminal), the total execution time of them=
 increase=C2=A0monotonically.</div><div class=3D"gmail_default" style=3D"fo=
nt-family:arial,helvetica,sans-serif"><br></div><div class=3D"gmail_default=
" style=3D"font-family:arial,helvetica,sans-serif">I simplified query-1 to =
demonstrate this effect:</div><div class=3D"gmail_default" style=3D""><font=
 face=3D"monospace">``` example.<span class=3D"" id=3D":1wh.4" tabindex=3D"=
-1" style=3D"">sql</span></font></div><div class=3D"gmail_default" style=3D=
""><font face=3D"monospace">explain (analyze, buffers) select<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 max(l_<span class=3D"" id=3D":1wh.5" tabindex=3D"-1" styl=
e=3D"">shipdate</span>) as max_data,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 count(*=
) as count_order<br>from<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 <span class=3D"" id=
=3D":1wh.6" tabindex=3D"-1" style=3D"">lineitem</span><br>where<br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 l_<span class=3D"" id=3D":1wh.7" tabindex=3D"-1" style=
=3D"">shipdate</span> &lt;=3D date &#39;1998-12-01&#39; - interval &#39;20&=
#39; day;<br>```</font></div><div class=3D"gmail_default" style=3D""><font =
face=3D"monospace"><br></font></div><div class=3D"gmail_default" style=3D""=
><font face=3D"arial, helvetica, sans-serif">When I execute (from fish) fol=
lowing command:</font><br><font face=3D"monospace">`for i in (seq 1 20); <s=
pan class=3D"" id=3D":1wh.8" tabindex=3D"-1" style=3D"">psql</span> <span c=
lass=3D"" id=3D":1wh.9" tabindex=3D"-1" style=3D"">tpch</span> &lt; example=
.<span class=3D"" id=3D":1wh.10" tabindex=3D"-1" style=3D"">sql</span> | gr=
ep Execution; end`</font><br><font face=3D"arial, helvetica, sans-serif">Th=
e results I get are as follows:</font><br><font face=3D"arial, helvetica, s=
ans-serif">&quot;</font><br><font face=3D"arial, helvetica, sans-serif">=C2=
=A0Execution Time: 184.864 ms</font><br><font face=3D"arial, helvetica, san=
s-serif">=C2=A0Execution Time: 192.758 ms</font><br><font face=3D"arial, he=
lvetica, sans-serif">=C2=A0Execution Time: 197.380 ms</font><br><font face=
=3D"arial, helvetica, sans-serif">=C2=A0Execution Time: 200.384 ms</font><b=
r><font face=3D"arial, helvetica, sans-serif">=C2=A0Execution Time: 202.950=
 ms</font><br><font face=3D"arial, helvetica, sans-serif">=C2=A0Execution T=
ime: 205.695 ms</font><br><font face=3D"arial, helvetica, sans-serif">=C2=
=A0Execution Time: 208.082 ms</font><br><font face=3D"arial, helvetica, san=
s-serif">=C2=A0Execution Time: 209.108 ms</font><br><font face=3D"arial, he=
lvetica, sans-serif">=C2=A0Execution Time: 212.428 ms</font><br><font face=
=3D"arial, helvetica, sans-serif">=C2=A0Execution Time: 214.539 ms</font><b=
r><font face=3D"arial, helvetica, sans-serif">=C2=A0Execution Time: 215.799=
 ms</font><br><font face=3D"arial, helvetica, sans-serif">=C2=A0Execution T=
ime: 219.057 ms</font><br><font face=3D"arial, helvetica, sans-serif">=C2=
=A0Execution Time: 222.102 ms</font><br><font face=3D"arial, helvetica, san=
s-serif">=C2=A0Execution Time: 223.779 ms</font><br><font face=3D"arial, he=
lvetica, sans-serif">=C2=A0Execution Time: 227.819 ms</font><br><font face=
=3D"arial, helvetica, sans-serif">=C2=A0Execution Time: 229.710 ms</font><b=
r><font face=3D"arial, helvetica, sans-serif">=C2=A0Execution Time: 239.439=
 ms</font><br><font face=3D"arial, helvetica, sans-serif">=C2=A0Execution T=
ime: 237.649 ms</font><br><font face=3D"arial, helvetica, sans-serif">=C2=
=A0Execution Time: 249.178 ms</font><br><font face=3D"arial, helvetica, san=
s-serif">=C2=A0Execution Time: 261.268 ms</font><br><font face=3D"arial, he=
lvetica, sans-serif">&quot;</font></div><div class=3D"gmail_default" style=
=3D""><font face=3D"arial, helvetica, sans-serif">In addition, if the repea=
ted more times, the total execution time can end up being 10X and more!!!</=
font></div><div class=3D"gmail_default" style=3D""><font face=3D"arial, hel=
vetica, sans-serif"><br></font></div><div class=3D"gmail_default" style=3D"=
"><font face=3D"arial, helvetica, sans-serif">When there a wait period in-b=
etween queries, (e.g. </font><font face=3D"monospace">sleep 10</font><font =
face=3D"arial, helvetica, sans-serif">) in the above for loop, this increas=
ing execution time behavior goes a way.</font></div><div class=3D"gmail_def=
ault" style=3D""><font face=3D"arial, helvetica, sans-serif">For more compl=
ex queries, the &quot;wait period&quot; needs to be longer to avoid the inc=
rease in execution time.</font></div><div class=3D"gmail_default" style=3D"=
font-family:arial,helvetica,sans-serif"><br>Some <span class=3D"" id=3D":1w=
h.11" tabindex=3D"-1" style=3D"">metadata</span> about this table &quot;<sp=
an class=3D"" id=3D":1wh.12" tabindex=3D"-1" style=3D"">lineitem</span>&quo=
t;:</div><div class=3D"gmail_default" style=3D""><font face=3D"monospace"><=
span class=3D"" id=3D":1wh.13" tabindex=3D"-1" style=3D"">tpch</span>=3D# \=
d <span class=3D"" id=3D":1wh.14" tabindex=3D"-1" style=3D"">lineitem</span=
><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0Table &quot;public.<span class=3D"" id=3D":1wh.15" tabi=
ndex=3D"-1" style=3D"">lineitem</span>&quot;<br>=C2=A0 =C2=A0 =C2=A0Column =
=C2=A0 =C2=A0 =C2=A0| =C2=A0 =C2=A0 =C2=A0 =C2=A0 Type =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0| Collation | <span class=3D"" id=3D":1wh.16" tabindex=3D"-1"=
 style=3D"">Nullable</span> | Default<br>-----------------+----------------=
-------+-----------+----------+---------<br>=C2=A0l_<span class=3D"" id=3D"=
:1wh.17" tabindex=3D"-1" style=3D"">orderkey</span> =C2=A0 =C2=A0 =C2=A0| i=
nteger =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 | not null |<br>=C2=A0l_<span class=3D"" id=3D":1wh.18" t=
abindex=3D"-1" style=3D"">partkey</span> =C2=A0 =C2=A0 =C2=A0 | integer =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 | not null |<br>=C2=A0l_<span class=3D"" id=3D":1wh.19" tabindex=3D=
"-1" style=3D"">suppkey</span> =C2=A0 =C2=A0 =C2=A0 | integer =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =
not null |<br>=C2=A0l_<span class=3D"" id=3D":1wh.20" tabindex=3D"-1" style=
=3D"">linenumber</span> =C2=A0 =C2=A0| integer =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null |<br>=
=C2=A0l_quantity =C2=A0 =C2=A0 =C2=A0| numeric(15,2) =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null |<br>=C2=A0l_<span c=
lass=3D"" id=3D":1wh.21" tabindex=3D"-1" style=3D"">extendedprice</span> | =
numeric(15,2) =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 | not null |<br>=C2=A0l_discount =C2=A0 =C2=A0 =C2=A0| numeric(15,2) =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null=
 |<br>=C2=A0l_tax =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | numeric(15,2) =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null |<br>=
=C2=A0l_<span class=3D"" id=3D":1wh.22" tabindex=3D"-1" style=3D"">returnfl=
ag</span> =C2=A0 =C2=A0| character(1) =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null |<br>=C2=A0l_<span class=3D""=
 id=3D":1wh.23" tabindex=3D"-1" style=3D"">linestatus</span> =C2=A0 =C2=A0|=
 character(1) =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 | not null |<br>=C2=A0l_<span class=3D"" id=3D":1wh.24" tabindex=
=3D"-1" style=3D"">shipdate</span> =C2=A0 =C2=A0 =C2=A0| date =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 | not null |<br>=C2=A0l_<span class=3D"" id=3D":1wh.25" tabindex=
=3D"-1" style=3D"">commitdate</span> =C2=A0 =C2=A0| date =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 | not null |<br>=C2=A0l_<span class=3D"" id=3D":1wh.26" tabindex=3D"=
-1" style=3D"">receiptdate</span> =C2=A0 | date =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | n=
ot null |<br>=C2=A0l_<span class=3D"" id=3D":1wh.27" tabindex=3D"-1" style=
=3D"">shipinstruct</span> =C2=A0| character(25) =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null |<br>=C2=A0l_<span class=
=3D"" id=3D":1wh.28" tabindex=3D"-1" style=3D"">shipmode</span> =C2=A0 =C2=
=A0 =C2=A0| character(10) =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 | not null |<br>=C2=A0l_comment =C2=A0 =C2=A0 =C2=A0 | ch=
aracter varying(44) | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null |<br>In=
dexes:<br>=C2=A0 =C2=A0 &quot;i_l_<span class=3D"" id=3D":1wh.29" tabindex=
=3D"-1" style=3D"">commitdate</span>&quot; <span class=3D"" id=3D":1wh.30" =
tabindex=3D"-1" style=3D"">btree</span> (l_<span class=3D"" id=3D":1wh.31" =
tabindex=3D"-1" style=3D"">commitdate</span>)<br>=C2=A0 =C2=A0 &quot;i_l_<s=
pan class=3D"" id=3D":1wh.32" tabindex=3D"-1" style=3D"">orderkey</span>&qu=
ot; <span class=3D"" id=3D":1wh.33" tabindex=3D"-1" style=3D"">btree</span>=
 (l_<span class=3D"" id=3D":1wh.34" tabindex=3D"-1" style=3D"">orderkey</sp=
an>)<br>=C2=A0 =C2=A0 &quot;i_l_<span class=3D"" id=3D":1wh.35" tabindex=3D=
"-1" style=3D"">orderkey</span>_quantity&quot; <span class=3D"" id=3D":1wh.=
36" tabindex=3D"-1" style=3D"">btree</span> (l_<span class=3D"" id=3D":1wh.=
37" tabindex=3D"-1" style=3D"">orderkey</span>, l_quantity)<br>=C2=A0 =C2=
=A0 &quot;i_l_<span class=3D"" id=3D":1wh.38" tabindex=3D"-1" style=3D"">pa=
rtkey</span>&quot; <span class=3D"" id=3D":1wh.39" tabindex=3D"-1" style=3D=
"">btree</span> (l_<span class=3D"" id=3D":1wh.40" tabindex=3D"-1" style=3D=
"">partkey</span>)<br>=C2=A0 =C2=A0 &quot;i_l_<span class=3D"" id=3D":1wh.4=
1" tabindex=3D"-1" style=3D"">receiptdate</span>&quot; <span class=3D"" id=
=3D":1wh.42" tabindex=3D"-1" style=3D"">btree</span> (l_<span class=3D"" id=
=3D":1wh.43" tabindex=3D"-1" style=3D"">receiptdate</span>)<br>=C2=A0 =C2=
=A0 &quot;i_l_<span class=3D"" id=3D":1wh.44" tabindex=3D"-1" style=3D"">sh=
ipdate</span>&quot; <span class=3D"" id=3D":1wh.45" tabindex=3D"-1" style=
=3D"">btree</span> (l_<span class=3D"" id=3D":1wh.46" tabindex=3D"-1" style=
=3D"">shipdate</span>)<br>=C2=A0 =C2=A0 &quot;i_l_<span class=3D"" id=3D":1=
wh.47" tabindex=3D"-1" style=3D"">suppkey</span>&quot; <span class=3D"" id=
=3D":1wh.48" tabindex=3D"-1" style=3D"">btree</span> (l_<span class=3D"" id=
=3D":1wh.49" tabindex=3D"-1" style=3D"">suppkey</span>)<br>=C2=A0 =C2=A0 &q=
uot;i_l_<span class=3D"" id=3D":1wh.50" tabindex=3D"-1" style=3D"">suppkey<=
/span>_<span class=3D"" id=3D":1wh.51" tabindex=3D"-1" style=3D"">partkey</=
span>&quot; <span class=3D"" id=3D":1wh.52" tabindex=3D"-1" style=3D"">btre=
e</span> (l_<span class=3D"" id=3D":1wh.53" tabindex=3D"-1" style=3D"">part=
key</span>, l_<span class=3D"" id=3D":1wh.54" tabindex=3D"-1" style=3D"">su=
ppkey</span>)<br></font></div><div class=3D"gmail_default" style=3D""><font=
 face=3D"monospace"><br></font></div><div class=3D"gmail_default" style=3D"=
"><font face=3D"monospace"><span class=3D"" id=3D":1wh.55" tabindex=3D"-1" =
style=3D"">tpch</span>=3D# SELECT <span class=3D"" id=3D":1wh.56" tabindex=
=3D"-1" style=3D"">relname</span>, <span class=3D"" id=3D":1wh.57" tabindex=
=3D"-1" style=3D"">relpages</span>, <span class=3D"" id=3D":1wh.58" tabinde=
x=3D"-1" style=3D"">reltuples</span>, <span class=3D"" id=3D":1wh.59" tabin=
dex=3D"-1" style=3D"">relallvisible</span>, <span class=3D"" id=3D":1wh.60"=
 tabindex=3D"-1" style=3D"">relkind</span>, <span class=3D"" id=3D":1wh.61"=
 tabindex=3D"-1" style=3D"">relnatts</span>, <span class=3D"" id=3D":1wh.62=
" tabindex=3D"-1" style=3D"">relhassubclass</span>, <span class=3D"" id=3D"=
:1wh.63" tabindex=3D"-1" style=3D"">reloptions</span>, pg_table_size(<span =
class=3D"" id=3D":1wh.64" tabindex=3D"-1" style=3D"">oid</span>) FROM pg_cl=
ass WHERE <span class=3D"" id=3D":1wh.65" tabindex=3D"-1" style=3D"">relnam=
e</span>=3D&#39;lineitem&#39;;<br>=C2=A0<span class=3D"" id=3D":1wh.66" tab=
index=3D"-1" style=3D"">relname</span> =C2=A0| <span class=3D"" id=3D":1wh.=
67" tabindex=3D"-1" style=3D"">relpages</span> | =C2=A0<span class=3D"" id=
=3D":1wh.68" tabindex=3D"-1" style=3D"">reltuples</span> =C2=A0 | <span cla=
ss=3D"" id=3D":1wh.69" tabindex=3D"-1" style=3D"">relallvisible</span> | <s=
pan class=3D"" id=3D":1wh.70" tabindex=3D"-1" style=3D"">relkind</span> | <=
span class=3D"" id=3D":1wh.71" tabindex=3D"-1" style=3D"">relnatts</span> |=
 <span class=3D"" id=3D":1wh.72" tabindex=3D"-1" style=3D"">relhassubclass<=
/span> | <span class=3D"" id=3D":1wh.73" tabindex=3D"-1" style=3D"">relopti=
ons</span> | pg_table_size<br>----------+----------+--------------+--------=
-------+---------+----------+----------------+------------+---------------<=
br>=C2=A0<span class=3D"" id=3D":1wh.74" tabindex=3D"-1" style=3D"">lineite=
m</span> | =C2=A0 112503 | 6.001167e+06 | =C2=A0 =C2=A0 =C2=A0 =C2=A0112503=
 | r =C2=A0 =C2=A0 =C2=A0 | =C2=A0 =C2=A0 =C2=A0 16 | f =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=
 =C2=A0 =C2=A0 921903104<br>(1 row)</font><br></div><div class=3D"gmail_def=
ault" style=3D""><font face=3D"monospace"><br></font></div><div class=3D"gm=
ail_default" style=3D""><font face=3D"arial, sans-serif"><span class=3D"" i=
d=3D":1wh.75" tabindex=3D"-1" style=3D"">Postgresql</span> 12.0 and 12.1 ar=
e all=C2=A0</font>manually installed from source.</div><div class=3D"gmail_=
default" style=3D""><font face=3D"arial, sans-serif">Both are running on <s=
pan class=3D"" id=3D":1wh.76" tabindex=3D"-1" style=3D"">Ubuntu</span> 16.0=
4 kernel=C2=A0</font>4.4.0-142-generic, on Intel(R) Core(TM) i7-6700K.</div=
><div class=3D"gmail_default" style=3D""><br></div><div class=3D"gmail_defa=
ult" style=3D""><br></div><div class=3D"gmail_default" style=3D"">Any help =
greatly appreciated!</div><div class=3D"gmail_default" style=3D""><br></div=
><div class=3D"gmail_default" style=3D""><span class=3D"" id=3D":1wh.77" ta=
bindex=3D"-1" style=3D"">Shijia</span></div></div>

--00000000000021e5930599cbec12--