I run it from inside the machine on the local database.
For example :

db=# create table rule_test as select generate_series(1,100000000);
SELECT 100000000

db=# explain analyze select generate_series from rule_test order by
generate_series asc;
                                                            QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------
 Sort  (cost=17763711.32..18045791.04 rows=112831890 width=4) (actual
time=62677.752..100928.829 rows=100000000 loops=1)
   Sort Key: generate_series
   Sort Method: external merge  Disk: 1367624kB
   ->  Seq Scan on rule_test  (cost=0.00..1570796.90 rows=112831890
width=4) (actual time=0.019..36098.463 rows=100000000 loops=1)
 Planning time: 0.072 ms
 Execution time: 107025.113 ms
(6 rows)

db=# create index on rule_test(generate_series);
CREATE INDEX
db=# select generate_series from rule_test order by generate_series asc;


db=# explain analyze select generate_series from rule_test order by
generate_series asc;

   QUERY PLAN
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Index Only Scan using rule_test_generate_series_idx on rule_test
(cost=0.57..2490867.57 rows=100000000 width=4) (actual
time=0.103..63122.906 rows=100000000 loops=1)
   Heap Fetches: 100000000
 Planning time: 6.682 ms
 Execution time: 69265.311 ms
(4 rows)

db=# select generate_series from rule_test order by generate_series asc;
stuck for more then a hour


‫בתאריך יום א׳, 25 בנוב׳ 2018 ב-15:30 מאת ‪Justin Pryzby‬‏ <‪
pry...@telsasoft.com‬‏>:‬

> Cc: pgsql-performance@lists.postgresql.org,
>         pgsql-ad...@lists.postgresql.org
>
> Please avoid simultaneously sending the same question to multiple lists.
>
> It means that people can't see each others replies and everything that
> implies.
>
> On Sun, Nov 25, 2018 at 03:08:33PM +0200, Mariel Cherkassky wrote:
> > However when I run the query without the explain analyze it takes forever
> > to run it(More then two hours).
> > Is there a possibility that it is related to fetching or something like
> > that ?
>
> If it's a remote database, I expect that's why.
> Maybe you can test by running the query on the DB server.
> Or by running another variant of the query, such as:
>
> WITH x AS (QUERY GOES HERE) SELECT 1;
>
> which returns only one row but after having executed the query behind CTE,
> as
> optimization fence.
>
> Justin
>

Reply via email to