Re: PsqlODBC slow on UNION queries - Mailing list pgsql-odbc

From Ludek Finstrle
Subject Re: PsqlODBC slow on UNION queries
Date
Msg-id 20060127092159.GA17431@soptik.pzkagis.cz
Whole thread Raw
In response to PsqlODBC slow on UNION queries  (Zoltan Boszormenyi <zboszor@dunaweb.hu>)
Responses Re: PsqlODBC slow on UNION queries  (Zoltan Boszormenyi <zboszor@dunaweb.hu>)
List pgsql-odbc
> finally here's the results. I hope you can find something useful in it.

Finally I see the problem in mylog output. Unfortunatelly I don't know
how to change the behaviour :-( without more investigation.

There is problem that you (I mean PowerBuilder) calling
SQLExecDirect select * from view (which fire the execution)
SQLDescribeCol (for each column in result)
SQLCancel (I don't know why the statement is canceled
           it seems to me that PB miss some information)
...
SQLTables (get additional informations)
...
SQLColumns
...
SQLPrimaryKeys
...
SQLStatistics
...
SQLExecDirect select * from view (which fire the execution again)

I have a lot of questions it will be the best if you could try
create some repro app. Some of the questions:
1) could you try similar view without text (char, varchar, ...) columns?
2) maybe minimalization of view to one column could be the best test
3) could you try enable trace ODBC (in ODBC manager) - independent on
   datasource and create two logs - againist psqlodbc and another DB
   - maybe we could find the difference there
4) could you say me what are the query for (it's fired bettwen two calls
   of select * from view):
   - select pbd_fhgt, pbd_fwgt, pbd_fitl, pbd_funl, pbd_fchr, pbd_fptc,
            pbd_ffce, pbh_fhgt, pbh_fwgt, pbh_fitl, pbh_funl, pbh_fchr,
            pbh_fptc, pbh_ffce, pbl_fhgt, pbl_fwgt, pbl_fitl, pbl_funl,
            pbl_fchr, pbl_fptc, pbl_ffce, pbt_cmnt
     from informix.pbcattbl
     where pbt_tnam = 'v_invoice_browse' and pbt_ownr = 'informix'
   - select pbv_name, pbv_vald, pbv_type, pbv_cntr, pbv_msg
     from informix.pbcatvld
   - select pbf_name, pbf_frmt, pbf_type, pbf_cntr
     from informix.pbcatfmt
   - select pbe_name, pbe_edit, pbe_type, pbe_cntr, pbe_work, pbe_seqn,
            pbe_flag
     from informix.pbcatedt
     order by pbe_name, pbe_seqn
   - select pbc_tnam, pbc_ownr, pbc_cnam, pbc_labl, pbc_lpos, pbc_hdr,
            pbc_hpos, pbc_jtfy, pbc_mask, pbc_case, pbc_hght, pbc_wdth,
            pbc_ptrn, pbc_bmap, pbc_init, pbc_cmnt, pbc_edit
     from informix.pbcatcol
     where (pbc_tnam = 'v_invoice_browse' and pbc_ownr = 'informix')
5) How long does it take only (without fetch):
   BEGIN; DECLARE CURSOR csr_test AS select * from v_invoice_browse; COMMIT;
6) How long does it take:
   BEGIN; DECLARE CURSOR csr_test AS select * from v_invoice_browse;
   FETCH BACKWARD in csr_test; COMMIT;

Maybe the PowerBuilder go this way all the time. It's our problem
that we get first data in SQLExecDirect. I don't know it right now.
We have to find the solution but the way could be hard.

Regards,

Luf

pgsql-odbc by date:

Previous
From: Antoine
Date:
Subject: Re: network saturation
Next
From: Ludek Finstrle
Date:
Subject: Re: Odbcapi30.c - 64 bit compiler warning cleanup