Dmitriy,

Sure it may have some impact on the performance as user would need
to make more several calls instead of one to fetch several rows. Though
I'm pretty sure that this impact is not going to be very big because of the
current approach.

Currently ODBC Driver retrieves several rows of the result set in one
request and then just pass them to user buffers on SQLFetch request
while doing type conversation job if needed. Basically with current approach
even if we would implement fetching of several rows in one call the
difference in operation performance would not be significant (I think it
would
be barely noticeable though I didn't check it and may be wrong). The only
difference would be that the buffers-filling loop had been moved from user
code to the driver code.

Of course we may want to implement this feature but I don't see it as an
urgent. I believe that if we want to improve overall ODBC driver
performance then we need to properly profile it and fix bottle necks, and I
doubt that this approach is one of them.


Best Regards,
Igor

On Fri, Apr 29, 2016 at 11:37 PM, Dmitriy Setrakyan <[email protected]>
wrote:

> One of the users recently asked on the user list [1] whether our ODBC
> driver supports row-set binding and we gave him the following answer:
>
> —-
> ODBC driver supports rowset binding though currently only fetching of a
> single row per call is supported, i.e. SQL_ATTR_ROW_ARRAY_SIZE attribute
> can only be set to 1 right now.
> —-
>
> I am curious as to what “single row per call” means. Will it have negative
> performance implications?
>
> D.
>
> [1] -
> http://apache-ignite-users.70518.x6.nabble.com/ODBC-Driver-td4557.html
>

Reply via email to