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 |
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 <[hidden email]> 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 > |
On Sat, Apr 30, 2016 at 6:37 AM, Igor Sapego <[hidden email]> wrote:
> The only difference would be that the buffers-filling loop had been moved > from user > code to the driver code. > > Thanks Igor. Can you explain this sentence. Where are the user code and the driver code physically located? Are they on the same server or is the user code on the client side? > On Fri, Apr 29, 2016 at 11:37 PM, Dmitriy Setrakyan <[hidden email] > > > 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 > > > |
Dmitriy,
Physically user code is an executable and driver is the dynamic library which is dynamically loaded by the client. So it's on the same machine and even in the same address space. Best Regards, Igor On Sat, Apr 30, 2016 at 7:16 PM, Dmitriy Setrakyan <[hidden email]> wrote: > On Sat, Apr 30, 2016 at 6:37 AM, Igor Sapego <[hidden email]> wrote: > > > The only difference would be that the buffers-filling loop had been moved > > from user > > code to the driver code. > > > > > Thanks Igor. Can you explain this sentence. Where are the user code and the > driver code physically located? Are they on the same server or is the user > code on the client side? > > > > > On Fri, Apr 29, 2016 at 11:37 PM, Dmitriy Setrakyan < > [hidden email] > > > > > 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 > > > > > > |
Got it, thanks!
On Sat, Apr 30, 2016 at 11:49 AM, Igor Sapego <[hidden email]> wrote: > Dmitriy, > > Physically user code is an executable and driver is the dynamic library > which is dynamically loaded by the client. So it's on the same machine and > even in the same address space. > > Best Regards, > Igor > > On Sat, Apr 30, 2016 at 7:16 PM, Dmitriy Setrakyan <[hidden email]> > wrote: > > > On Sat, Apr 30, 2016 at 6:37 AM, Igor Sapego <[hidden email]> > wrote: > > > > > The only difference would be that the buffers-filling loop had been > moved > > > from user > > > code to the driver code. > > > > > > > > Thanks Igor. Can you explain this sentence. Where are the user code and > the > > driver code physically located? Are they on the same server or is the > user > > code on the client side? > > > > > > > > > On Fri, Apr 29, 2016 at 11:37 PM, Dmitriy Setrakyan < > > [hidden email] > > > > > > > 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 > > > > > > > > > > |
Free forum by Nabble | Edit this page |