Re: Consecutive Query Executions with Increasing Execution Time

Shijia Wei <[email protected]> Mon, 16 Dec 2019 03:51:24 -0600
Newsgroups gmane.comp.db.postgresql.performance
Message-ID <CABSfb-5ZcO48K5sS0oM3njQYpTo-K2MdxMZ1pM0DpiBFGPqw9g@mail.gmail.com>
--000000000000a919030599cf293f
Content-Type: text/plain; charset="UTF-8"

Hi Olivier,

I do not think that the queries are executed concurrently. The bash for
loop ensures that the next command fires only after the first returns.
Also for some 'complex' queries, even a wait-period that is longer than the
total execution time does not completely avoid this effect.
For example, a wait-period of 5-second in between queries that take
2-second to run, does not help avoid the increasing runtime problem
completely.

Thanks,
Shijia


On Mon, Dec 16, 2019 at 2:04 AM Olivier Gautherot <[email protected]>
wrote:

> Hi Shijia,
>
> It sounds like concurrency on the queries: the second starts before the
> first ends, and so on. With a short wait in between you ensure sequential
> execution. Notice that you also have the overhead of concurrent psql...
>
> Sounds normal to me.
>
> Best regards
> Olivier
>
>
> On Mon, Dec 16, 2019, 07:00 Shijia Wei <[email protected]> wrote:
>
>> 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
>>
>

-- 
*Shijia Wei*
ECE, UT Austin | ACSES | 3rd Year PhD
[email protected] | https://0x161e-swei.github.io

--000000000000a919030599cf293f
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=C2=A0Olivier,</div><div class=3D"gmail_default" styl=
e=3D"font-family:arial,helvetica,sans-serif"><br></div><div class=3D"gmail_=
default" style=3D"font-family:arial,helvetica,sans-serif">I do not think th=
at=C2=A0the queries are executed concurrently. The bash for loop ensures th=
at the next command fires only after the first returns.</div><div class=3D"=
gmail_default" style=3D"font-family:arial,helvetica,sans-serif">Also for so=
me &#39;complex&#39; queries, even a wait-period that is longer than the to=
tal execution time does not completely avoid this effect.</div><div class=
=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif">For exa=
mple, a wait-period of 5-second in between=C2=A0queries that take 2-second =
to run, does not help avoid the increasing <span class=3D"" id=3D":11c.1" t=
abindex=3D"-1" style=3D"">runtime</span> problem completely.</div><div clas=
s=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">Thanks,</div><div class=3D"gmail_default" style=3D"font-family:arial=
,helvetica,sans-serif"><span class=3D"" id=3D":11c.2" tabindex=3D"-1" style=
=3D"">Shijia</span></div><div class=3D"gmail_default" style=3D"font-family:=
arial,helvetica,sans-serif"><br></div></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Mon, Dec 16, 2019 at 2:04 AM Olivi=
er Gautherot &lt;<a href=3D"mailto:[email protected]" target=3D"_bla=
nk">[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex"><div dir=3D"auto"><div>Hi Shijia,<br><br>It sou=
nds like concurrency on the queries: the second starts before the first end=
s, and so on. With a short wait in between you ensure sequential execution.=
 Notice that you also have the overhead of concurrent psql...</div><div dir=
=3D"auto"><br></div><div dir=3D"auto">Sounds normal to me.</div><div dir=3D=
"auto"><br></div><div dir=3D"auto">Best regards</div><div dir=3D"auto">Oliv=
ier</div><div dir=3D"auto"><br></div><div dir=3D"auto"><br><div class=3D"gm=
ail_quote" dir=3D"auto"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Dec 1=
6, 2019, 07:00 Shijia Wei &lt;<a href=3D"mailto:[email protected]" targe=
t=3D"_blank">[email protected]</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_defau=
lt" style=3D"font-family:arial,helvetica,sans-serif">Hi all,</div><div clas=
s=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 id=3D"gmail-m_-5795010130150494850gmail-m_-875680=
0177654151280m_4960127569523798833:1wh.1">TPC</span>-H on recent <span id=
=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523=
798833:1wh.2">postgresql</span> (12.0 and 12.1).</div><div class=3D"gmail_d=
efault" style=3D"font-family:arial,helvetica,sans-serif">On some of the que=
ries (that may involve parallel scans) I see this interesting behavior:</di=
v><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-se=
rif">When these queries are executed back-to-back (sent from <span id=3D"gm=
ail-m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523798833=
:1wh.3">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"><font face=3D"mo=
nospace">``` example.<span id=3D"gmail-m_-5795010130150494850gmail-m_-87568=
00177654151280m_4960127569523798833:1wh.4">sql</span></font></div><div clas=
s=3D"gmail_default"><font face=3D"monospace">explain (analyze, buffers) sel=
ect<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 max(l_<span id=3D"gmail-m_-5795010130150=
494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.5">shipdate</sp=
an>) 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 id=3D"gmail-m_-57950101301504948=
50gmail-m_-8756800177654151280m_4960127569523798833:1wh.6">lineitem</span><=
br>where<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 l_<span id=3D"gmail-m_-579501013015=
0494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.7">shipdate</s=
pan> &lt;=3D date &#39;1998-12-01&#39; - interval &#39;20&#39; day;<br>```<=
/font></div><div class=3D"gmail_default"><font face=3D"monospace"><br></fon=
t></div><div class=3D"gmail_default"><font face=3D"arial, helvetica, sans-s=
erif">When I execute (from fish) following command:</font><br><font face=3D=
"monospace">`for i in (seq 1 20); <span id=3D"gmail-m_-5795010130150494850g=
mail-m_-8756800177654151280m_4960127569523798833:1wh.8">psql</span> <span i=
d=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_496012756952=
3798833:1wh.9">tpch</span> &lt; example.<span id=3D"gmail-m_-57950101301504=
94850gmail-m_-8756800177654151280m_4960127569523798833:1wh.10">sql</span> |=
 grep Execution; end`</font><br><font face=3D"arial, helvetica, sans-serif"=
>The results I get are as follows:</font><br><font face=3D"arial, helvetica=
, sans-serif">&quot;</font><br><font face=3D"arial, helvetica, sans-serif">=
=C2=A0Execution Time: 184.864 ms</font><br><font face=3D"arial, helvetica, =
sans-serif">=C2=A0Execution Time: 192.758 ms</font><br><font face=3D"arial,=
 helvetica, sans-serif">=C2=A0Execution Time: 197.380 ms</font><br><font fa=
ce=3D"arial, helvetica, sans-serif">=C2=A0Execution Time: 200.384 ms</font>=
<br><font face=3D"arial, helvetica, sans-serif">=C2=A0Execution Time: 202.9=
50 ms</font><br><font face=3D"arial, helvetica, sans-serif">=C2=A0Execution=
 Time: 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"><font =
face=3D"arial, helvetica, sans-serif">In addition, if the repeated more tim=
es, the total execution time can end up being 10X and more!!!</font></div><=
div class=3D"gmail_default"><font face=3D"arial, helvetica, sans-serif"><br=
></font></div><div class=3D"gmail_default"><font face=3D"arial, helvetica, =
sans-serif">When there a wait period in-between queries, (e.g. </font><font=
 face=3D"monospace">sleep 10</font><font face=3D"arial, helvetica, sans-ser=
if">) in the above for loop, this increasing execution time behavior goes a=
 way.</font></div><div class=3D"gmail_default"><font face=3D"arial, helveti=
ca, sans-serif">For more complex queries, the &quot;wait period&quot; needs=
 to be longer to avoid the increase in execution time.</font></div><div cla=
ss=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif"><br>S=
ome <span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_4=
960127569523798833:1wh.11">metadata</span> about this table &quot;<span id=
=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523=
798833:1wh.12">lineitem</span>&quot;:</div><div class=3D"gmail_default"><fo=
nt face=3D"monospace"><span id=3D"gmail-m_-5795010130150494850gmail-m_-8756=
800177654151280m_4960127569523798833:1wh.13">tpch</span>=3D# \d <span id=3D=
"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523798=
833:1wh.14">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 id=
=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523=
798833:1wh.15">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 id=3D"gmail-m_-5795010130150494850gmail-m_-87568=
00177654151280m_4960127569523798833:1wh.16">Nullable</span> | Default<br>--=
---------------+-----------------------+-----------+----------+---------<br=
>=C2=A0l_<span id=3D"gmail-m_-5795010130150494850gmail-m_-87568001776541512=
80m_4960127569523798833:1wh.17">orderkey</span> =C2=A0 =C2=A0 =C2=A0| integ=
er =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 id=3D"gmail-m_-5795010130150494=
850gmail-m_-8756800177654151280m_4960127569523798833:1wh.18">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 i=
d=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_496012756952=
3798833:1wh.19">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 id=3D"gmail-m_-5795010130150494850gmail-m_-8756=
800177654151280m_4960127569523798833:1wh.20">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 id=3D"gmail-m_-5795010130150494850=
gmail-m_-8756800177654151280m_4960127569523798833:1wh.21">extendedprice</sp=
an> | 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(1=
5,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 id=3D"gmail-m_-5795010130150494850gmail-m_-875680017765=
4151280m_4960127569523798833:1wh.22">returnflag</span> =C2=A0 =C2=A0| chara=
cter(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 id=3D"gmail-m_-5795010130150494850gmail-m=
_-8756800177654151280m_4960127569523798833:1wh.23">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 id=3D"gmail-m_-579501013015=
0494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.24">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 id=3D"gmail-m_-5795010130150494850gmail-m_-875680017765415128=
0m_4960127569523798833:1wh.25">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 id=3D"gmail-m_-579501013015=
0494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.26">receiptdat=
e</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 | not null |<br>=C2=A0l_<spa=
n id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_496012756=
9523798833:1wh.27">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 id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_49601=
27569523798833:1wh.28">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 | character varying(44) | =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null |<br>Indexes:<br>=C2=A0 =C2=A0 &quo=
t;i_l_<span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m=
_4960127569523798833:1wh.29">commitdate</span>&quot; <span id=3D"gmail-m_-5=
795010130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.30"=
>btree</span> (l_<span id=3D"gmail-m_-5795010130150494850gmail-m_-875680017=
7654151280m_4960127569523798833:1wh.31">commitdate</span>)<br>=C2=A0 =C2=A0=
 &quot;i_l_<span id=3D"gmail-m_-5795010130150494850gmail-m_-875680017765415=
1280m_4960127569523798833:1wh.32">orderkey</span>&quot; <span id=3D"gmail-m=
_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.=
33">btree</span> (l_<span id=3D"gmail-m_-5795010130150494850gmail-m_-875680=
0177654151280m_4960127569523798833:1wh.34">orderkey</span>)<br>=C2=A0 =C2=
=A0 &quot;i_l_<span id=3D"gmail-m_-5795010130150494850gmail-m_-875680017765=
4151280m_4960127569523798833:1wh.35">orderkey</span>_quantity&quot; <span i=
d=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_496012756952=
3798833:1wh.36">btree</span> (l_<span id=3D"gmail-m_-5795010130150494850gma=
il-m_-8756800177654151280m_4960127569523798833:1wh.37">orderkey</span>, l_q=
uantity)<br>=C2=A0 =C2=A0 &quot;i_l_<span id=3D"gmail-m_-579501013015049485=
0gmail-m_-8756800177654151280m_4960127569523798833:1wh.38">partkey</span>&q=
uot; <span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_=
4960127569523798833:1wh.39">btree</span> (l_<span id=3D"gmail-m_-5795010130=
150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.40">partkey<=
/span>)<br>=C2=A0 =C2=A0 &quot;i_l_<span id=3D"gmail-m_-5795010130150494850=
gmail-m_-8756800177654151280m_4960127569523798833:1wh.41">receiptdate</span=
>&quot; <span id=3D"gmail-m_-5795010130150494850gmail-m_-875680017765415128=
0m_4960127569523798833:1wh.42">btree</span> (l_<span id=3D"gmail-m_-5795010=
130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.43">recei=
ptdate</span>)<br>=C2=A0 =C2=A0 &quot;i_l_<span id=3D"gmail-m_-579501013015=
0494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.44">shipdate</=
span>&quot; <span id=3D"gmail-m_-5795010130150494850gmail-m_-87568001776541=
51280m_4960127569523798833:1wh.45">btree</span> (l_<span id=3D"gmail-m_-579=
5010130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.46">s=
hipdate</span>)<br>=C2=A0 =C2=A0 &quot;i_l_<span id=3D"gmail-m_-57950101301=
50494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.47">suppkey</=
span>&quot; <span id=3D"gmail-m_-5795010130150494850gmail-m_-87568001776541=
51280m_4960127569523798833:1wh.48">btree</span> (l_<span id=3D"gmail-m_-579=
5010130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.49">s=
uppkey</span>)<br>=C2=A0 =C2=A0 &quot;i_l_<span id=3D"gmail-m_-579501013015=
0494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.50">suppkey</s=
pan>_<span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_=
4960127569523798833:1wh.51">partkey</span>&quot; <span id=3D"gmail-m_-57950=
10130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.52">btr=
ee</span> (l_<span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654=
151280m_4960127569523798833:1wh.53">partkey</span>, l_<span id=3D"gmail-m_-=
5795010130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.54=
">suppkey</span>)<br></font></div><div class=3D"gmail_default"><font face=
=3D"monospace"><br></font></div><div class=3D"gmail_default"><font face=3D"=
monospace"><span id=3D"gmail-m_-5795010130150494850gmail-m_-875680017765415=
1280m_4960127569523798833:1wh.55">tpch</span>=3D# SELECT <span id=3D"gmail-=
m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh=
.56">relname</span>, <span id=3D"gmail-m_-5795010130150494850gmail-m_-87568=
00177654151280m_4960127569523798833:1wh.57">relpages</span>, <span id=3D"gm=
ail-m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523798833=
:1wh.58">reltuples</span>, <span id=3D"gmail-m_-5795010130150494850gmail-m_=
-8756800177654151280m_4960127569523798833:1wh.59">relallvisible</span>, <sp=
an id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_49601275=
69523798833:1wh.60">relkind</span>, <span id=3D"gmail-m_-579501013015049485=
0gmail-m_-8756800177654151280m_4960127569523798833:1wh.61">relnatts</span>,=
 <span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_4960=
127569523798833:1wh.62">relhassubclass</span>, <span id=3D"gmail-m_-5795010=
130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.63">relop=
tions</span>, pg_table_size(<span id=3D"gmail-m_-5795010130150494850gmail-m=
_-8756800177654151280m_4960127569523798833:1wh.64">oid</span>) FROM pg_clas=
s WHERE <span id=3D"gmail-m_-5795010130150494850gmail-m_-875680017765415128=
0m_4960127569523798833:1wh.65">relname</span>=3D&#39;lineitem&#39;;<br>=C2=
=A0<span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_49=
60127569523798833:1wh.66">relname</span> =C2=A0| <span id=3D"gmail-m_-57950=
10130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.67">rel=
pages</span> | =C2=A0<span id=3D"gmail-m_-5795010130150494850gmail-m_-87568=
00177654151280m_4960127569523798833:1wh.68">reltuples</span> =C2=A0 | <span=
 id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569=
523798833:1wh.69">relallvisible</span> | <span id=3D"gmail-m_-5795010130150=
494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.70">relkind</sp=
an> | <span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800177654151280m=
_4960127569523798833:1wh.71">relnatts</span> | <span id=3D"gmail-m_-5795010=
130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.72">relha=
ssubclass</span> | <span id=3D"gmail-m_-5795010130150494850gmail-m_-8756800=
177654151280m_4960127569523798833:1wh.73">reloptions</span> | pg_table_size=
<br>----------+----------+--------------+---------------+---------+--------=
--+----------------+------------+---------------<br>=C2=A0<span id=3D"gmail=
-m_-5795010130150494850gmail-m_-8756800177654151280m_4960127569523798833:1w=
h.74">lineitem</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_default"><font face=3D"monospace"><br></font></div><div class=3D"=
gmail_default"><font face=3D"arial, sans-serif"><span id=3D"gmail-m_-579501=
0130150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.75">Post=
gresql</span> 12.0 and 12.1 are all=C2=A0</font>manually installed from sou=
rce.</div><div class=3D"gmail_default"><font face=3D"arial, sans-serif">Bot=
h are running on <span id=3D"gmail-m_-5795010130150494850gmail-m_-875680017=
7654151280m_4960127569523798833:1wh.76">Ubuntu</span> 16.04 kernel=C2=A0</f=
ont>4.4.0-142-generic, on Intel(R) Core(TM) i7-6700K.</div><div class=3D"gm=
ail_default"><br></div><div class=3D"gmail_default"><br></div><div class=3D=
"gmail_default">Any help greatly appreciated!</div><div class=3D"gmail_defa=
ult"><br></div><div class=3D"gmail_default"><span id=3D"gmail-m_-5795010130=
150494850gmail-m_-8756800177654151280m_4960127569523798833:1wh.77">Shijia</=
span></div></div>
</blockquote></div></div></div>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=
=3D"ltr"><div><div dir=3D"ltr"><div dir=3D"ltr"><font size=3D"2" style=3D"c=
olor:rgb(136,136,136)"><font size=3D"1" face=3D"Verdana"><b>Shijia Wei</b><=
br>ECE,=C2=A0</font></font><span style=3D"color:rgb(136,136,136);font-famil=
y:Verdana;font-size:x-small">UT Austin</span><span style=3D"font-family:Ver=
dana;font-size:x-small;color:rgb(136,136,136)">=C2=A0| ACSES | 3rd Year PhD=
</span></div><div dir=3D"ltr"><font size=3D"2" style=3D"color:rgb(136,136,1=
36)"><font size=3D"1" face=3D"Verdana"><span><a href=3D"mailto:shijiawei@ut=
exas.edu" target=3D"_blank">[email protected]</a></span>=C2=A0|=C2=A0</f=
ont></font><font color=3D"#888888" face=3D"Verdana" size=3D"1"><a href=3D"h=
ttps://0x161e-swei.github.io" target=3D"_blank">https://0x161e-swei.github.=
io</a></font></div></div></div></div></div></div></div></div></div></div></=
div>

--000000000000a919030599cf293f--