Re: Any insights on Qlik Sense using CURSOR ?

From: "Franck Routier (perso)" <alci(at)mecadu(dot)org>
To: Ganesh Korde <ganeshakorde(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Any insights on Qlik Sense using CURSOR ?
Date: 2021-05-20 19:33:25
Message-ID: 30bb2210312a536ba64cf0db2e72565349f18142.camel@mecadu.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks Ganesh,

this gave me the select that is slow. It effectively looks like this:

begin; declare "SQL_CUR4" cursor with hold for select ...

then a bunch of:

fetch 100000 in "SQL_CUR4"

then a commit

I also found this
article https://www.cybertec-postgresql.com/en/declare-cursor-in-postgresql-or-how-to-reduce-memory-consumption/
to be interesting as an introduction to CURSOR with Postgresql.

I'll now work on this query to try to understand the problem.

Franck

Le jeudi 20 mai 2021 à 17:59 +0530, Ganesh Korde a écrit :
>
> Hi,
> On Tue, May 18, 2021 at 6:22 PM Franck Routier (perso)
> <alci(at)mecadu(dot)org> wrote:
> > Hi,
> >
> > I am using postgresql 12.7 on Ubunut as a datawarehouse, that is then
> > queried by QlikSense to produce business analytics.
> >
> > One of my dataloaders, that runs multiple queries, sometimes takes
> > about
> > 3 hours to feed Qlik with the relevant records (about 10M records),
> > but
> > sometimes goes crazy and times out (as Qlik stops it when it takes
> > more
> > than 480 minutes).
> >
> > The point is that Qlik is using a CURSOR to retrive the data. I'm not
> > familiar with CURSOR and postgresql documentation mainly cites
> > functions
> > as use case. I don't really know how Qlik creates these cursors when
> > executing my queries...
> >
> > I tried load_min_duration to pinpoint the problem, but only shows
> > things
> > like that:
> >
> > ...
> > LOG: duration : 294774.600 ms, instruction : fetch 100000 in
> > "SQL_CUR4"
> > LOG: duration : 282867.279 ms, instruction : fetch 100000 in
> > "SQL_CUR4"
> > ...
> >
> > So I don't know exactly which of my queries is hiding behind
> > "SQL_CUR4"...
> >
> > Is there a way to log the actual query ?
> > Is using a CURSOR a best practice to retrieve big datasets ? (it
> > seems
> > Qlik is using it for every connection on Postgresql)
> > Does each FETCH re-run the query, or is the result somehow cached (on
> > disk ?) ?
> >
> > Thanks for any insight on CURSOR and/or Qlik queries on Postgresql !
> >
> > Best regards,
> > Franck
> >
> >
>
> Have you tried setting the parameter below?
> log_statement = 'all'
>  
> you will get all queries logged into log files.
>
> Regards,
> Ganesh Korde.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message MEERA 2021-05-21 06:16:37 Re: Plan for exclusive backup method
Previous Message Ganesh Korde 2021-05-20 12:29:21 Re: Any insights on Qlik Sense using CURSOR ?