[ODBC-92] Array fetch performance degrades drastically for smaller array size ... Created: 2017-04-07 Updated: 2018-05-16 |
|
| Status: | Open |
| Project: | MariaDB Connector/ODBC |
| Component/s: | None |
| Affects Version/s: | 2.0.13 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Rahul Dhuvad | Assignee: | Lawrin Novitsky |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Windows 64-bit |
||
| Attachments: |
|
| Description |
|
MariaDB ODBC driver performance gets degraded drastically when array size (SQL_ATTR_ROWSET_SIZE) is reduced to 1000 or less. For example, to fetch 500K records (3 columns): SQL_ATTR_ROWSET_SIZE: 100000, took 4.8 seconds If I compare same with MySQL 5.3.7 ODBC driver, I don't think table schema really matters, but this is what I've:
--------------
-------------- |
| Comments |
| Comment by Lawrin Novitsky [ 2017-04-07 ] |
|
Hi Rahul, Thanks for the report. Would it be possible to try if the attached library makes difference? I fixed something that looks like most probably cause of the described performance degradation. The library is 32b windows. If you need smth else - please let me know. Best regards, |
| Comment by Rahul Dhuvad [ 2017-04-07 ] |
|
Looks like it's 32-bit dll? Can you please upload 64-bit one? |
| Comment by Lawrin Novitsky [ 2017-04-07 ] |
|
Yes. The new file is 64bit |
| Comment by Rahul Dhuvad [ 2017-04-07 ] |
|
Thanks Lawrin; I tried the new one, but I don't see any improvement to the earlier performance. In fact for array size 100, it's now taking 77 seconds for fetching 500K rows (which used to take 55 seconds with 2.0.13 dll |
| Comment by Lawrin Novitsky [ 2017-04-07 ] |
|
Hmm. Well, I can understand that there is no improvement. I tried the most low hanging fruit. But why would it be slower. Although you are comparing against 2.0.13, and there were many changes since then, not only the one I wanted to try. |
| Comment by Rahul Dhuvad [ 2017-04-10 ] |
|
Yeah; that's surprising to me as well! Let me know if you seek any other details from me for this issue? Issue is crucial for us because our array size is dynamic and that depends on our cache size and row-size of the row-set. So if row-size is more than array size will be reduced and for larger row-size, array size may get reduced to 1000 or less where this issue kills the performance as you can imagine. |