Why is UseDeclareFetch so slow?
От | Rainer Bauer |
---|---|
Тема | Why is UseDeclareFetch so slow? |
Дата | |
Msg-id | csln73hi8pu9rlglofd6rikde0ss9199fg@4ax.com обсуждение исходный текст |
Ответы |
Re: Why is UseDeclareFetch so slow?
|
Список | pgsql-odbc |
Hello, based on the problem I had here <http://archives.postgresql.org/pgsql-performance/2007-06/msg00461.php> I thought it would be interesting to know why UseDeclareFetch is slowing my query down dramatically. I have a table containing 50 tuples and retrieve all 50 tuples with a bound column select statement: SELECT * FROM tblItem WHERE intItemIDCnt = ? This takes 8 seconds (over a slow DSL connection with 150ms ping). Tom Lane suggested enabling UseDeclareFetch and the performance drop was significant: Instead of 8 seconds, the query now takes 30-32 seconds. I also tested enabling UseServerSidePrepare (without UseDeclareFetch) and the query was executed in 7 seconds. After rewriting the query to use an IN clause it now works perfect: SELECT * FROM tblItem WHERE intItemIDCnt IN (...) The result is retrieved in 400ms (UseServerSidePrepare=950ms and UseDeclareFetch=1242ms). The only thread I found discussing the UseDeclareFetch/UseServerSidePrepare options was <http://archives.postgresql.org/pgsql-odbc/2006-10/msg00051.php>. So my questions are 1) Is there any chance the driver itself could be enhanced like Dimitri suggested here: <http://archives.postgresql.org/pgsql-performance/2007-06/msg00512.php>? 2) When should UseServerSidePrepare be used? 3) When should UseDeclareFetch be used? Rainer
В списке pgsql-odbc по дате отправления: