Extraneous LOWER() calls in Membership provider

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for MySQL
Post Reply
njb
Posts: 5
Joined: Sat 25 Feb 2017 01:12

Extraneous LOWER() calls in Membership provider

Post by njb » Thu 28 Sep 2017 15:43

Hi,
We are discovering that there are apparently extraneous calls to LOWER() in the Membership Provider's select statements. These slow the queries down tremendously and are completely unnecessary when the MySQL database is set to case insensitivity. Is there any way to remove the LOWER() calls via a config file?

We are running the very latest dotConnect for MySQL.

I need to point out that this is mission critical for us. Our Membership table has hundreds of thousands of rows and the LOWER() calls force a _full table scan_ of the membership table. This obviously slows things down tremendously. We have captured the SELECT calls and removing the LOWER() calls from the SELECT speeds things up by an order of magnitude. I cannot find a way to open a trouble ticket, so I guess this is the only way to do so

Thanks..

Pinturiccio
Devart Team
Posts: 2279
Joined: Wed 02 Nov 2011 09:44

Re: Extraneous LOWER() calls in Membership provider

Post by Pinturiccio » Tue 03 Oct 2017 11:56

Yes, you are right. We are using the LOWER function in select queries. We will investigate the possibility to remove this function from our queries in the Membership provider and post here about the results.

euph411
Posts: 2
Joined: Sun 24 Dec 2017 17:07

Re: Extraneous LOWER() calls in Membership provider

Post by euph411 » Sun 24 Dec 2017 17:47

Hello,

Does Devart know when it can resolve this issue?

I am working to convert a large Membership database (almost a million rows/users) from SQL to MySQL, using Devart's provider. Queries that are sub-second with MSFT's SQL Membership provider can literally take *minutes* using MySQL/Devart because LOWER() forces a full table scan for EACH user login. If I replace the underlying query to remove the LOWER(), it is fast. Without this fix, it appears dotConnect/MySQL cannot be used for an application that has many users.

Please let me know if you need help to reproduce this problem.

Thank you.

Pinturiccio
Devart Team
Posts: 2279
Joined: Wed 02 Nov 2011 09:44

Re: Extraneous LOWER() calls in Membership provider

Post by Pinturiccio » Tue 02 Jan 2018 15:36

euph411 wrote:Please let me know if you need help to reproduce this problem.
We have already reproduced the issue.

We are working on the issue and will post here when we get any results. At the moment we cannot tell you when exactly the issue will be fixed.

euph411
Posts: 2
Joined: Sun 24 Dec 2017 17:07

Re: Extraneous LOWER() calls in Membership provider

Post by euph411 » Wed 04 Apr 2018 16:51

Hi,
I thought I'd check in to see if there was any ETA to solve this issue? We remain unable to use Devart's provider in our production environment because it is too slow due to the Lower() table scan problem against thousands of user records.
Thank you!

Pinturiccio
Devart Team
Posts: 2279
Joined: Wed 02 Nov 2011 09:44

Re: Extraneous LOWER() calls in Membership provider

Post by Pinturiccio » Wed 11 Apr 2018 14:55

Sorry for the late response. The investigation is in progress. We will post here when we get any results. There is no ETA at the moment.

Shalex
Site Admin
Posts: 8366
Joined: Thu 14 Aug 2008 12:44

Re: Extraneous LOWER() calls in Membership provider

Post by Shalex » Wed 22 Aug 2018 08:35

The new caseSensitive parameter (by default, false) is added to ASP.NET web providers configuration options to remove LOWER from the generated SQL queries. We will notify you when the new public build of dotConnect for MySQL is available for download.

njb
Posts: 5
Joined: Sat 25 Feb 2017 01:12

Re: Extraneous LOWER() calls in Membership provider

Post by njb » Mon 27 Aug 2018 22:13

Hi,
I have downloaded the latest code which you have sent an email to us about which should have this fix in it.
Your email said:
The internal trial build with the fix: https://www.devart.com/pub/dcmysql_8_12_1206.exe . If you get "trial expired" message on your computer, please test it on a different (or virtual) workstation.

Notify us about the result.
The result was that I got a "trial expired" error. We do not have the capability to test on another machine nor in a virtual machine right now.

When will a build that actually works be produced?

Shalex
Site Admin
Posts: 8366
Joined: Thu 14 Aug 2008 12:44

Re: Extraneous LOWER() calls in Membership provider

Post by Shalex » Wed 29 Aug 2018 15:19

We have answered you by email.

Shalex
Site Admin
Posts: 8366
Joined: Thu 14 Aug 2008 12:44

Re: Extraneous LOWER() calls in Membership provider

Post by Shalex » Fri 31 Aug 2018 17:48

New build of dotConnect for MySQL 8.12.1216 is available for download now: viewtopic.php?f=2&t=37638.

Post Reply