Обсуждение: How can I check if my cursor statement is using index

Поиск
Список
Период
Сортировка

How can I check if my cursor statement is using index

От
Dragan Matić
Дата:
I have a program that reads data from Postgresql database (version
8.0.3) through ODBC, but data retrieval is pretty slow. When I type the
same SQL sentence in pgadmin III or any other sql tool it is much
faster, and typing 'explain' clearly shows that it is using index.
However the program is reading data through a dynamic cursor, I would
like to know if there is a way to check if the same sql query generated
through dynamic cursor still uses indexes?
Thanks in advance

Dragan


Re: How can I check if my cursor statement is using index

От
Dragan Matić
Дата:
Dragan Matić wrote:

> I have a program that reads data from Postgresql database (version
> 8.0.3) through ODBC, but data retrieval is pretty slow. When I type
> the same SQL sentence in pgadmin III or any other sql tool it is much
> faster, and typing 'explain' clearly shows that it is using index.
> However the program is reading data through a dynamic cursor, I would
> like to know if there is a way to check if the same sql query
> generated through dynamic cursor still uses indexes?
> Thanks in advance
>
> Dragan
>
Another thing i've noticed is that if I open a simple cursor it
definitely uses index as data is retrieved instantly as opposed to 2-3
seconds when I try to retrieve data through a dynamic cursor. Is there a
way to force index usage through a dynamic cursor?



Re: How can I check if my cursor statement is using index

От
Tom Lane
Дата:
=?UTF-8?B?RHJhZ2FuIE1hdGnEhw==?= <mlists@panforma.co.yu> writes:
> I have a program that reads data from Postgresql database (version
> 8.0.3) through ODBC, but data retrieval is pretty slow. When I type the
> same SQL sentence in pgadmin III or any other sql tool it is much
> faster, and typing 'explain' clearly shows that it is using index.
> However the program is reading data through a dynamic cursor, I would
> like to know if there is a way to check if the same sql query generated
> through dynamic cursor still uses indexes?

Try EXPLAIN DECLARE x CURSOR FOR ...

            regards, tom lane