Forum Discussion
Feb 2024 updates: Access->SQL Server performance issues in the Monthly Enterprise Channel
The February 2024 updates apparently introduced an issue that causes a severe performance problem with DAO recordsets, linked SQL Server tables and the legacy MDAC/WDAC SQL Server driver.
Here are the full repro steps:
Sub attach_table()
Dim td As TableDef
Set td = CurrentDb.CreateTableDef()
td.Name = "_test"
td.Connect = "ODBC;Driver={SQL Server};SERVER=...;Database=...;Trusted_Connection=yes"
td.Attributes = dbAttachSavePWD
td.SourceTableName = "_test"
CurrentDb.TableDefs.Append td
End Sub
Sub repro_problem()
Dim t As Double
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("_test")
t = Timer
rs.MoveLast
Debug.Print Timer - t
End Sub
- 13 seconds with the Monthly Enterprise Channel (v2312, Build 17126.20190), but
- 0.2 seconds with the Semi-annual Enterprise Channel (v2308, Build 16731.20550) and
- 0.2 seconds with the Current Channel (v2401, Build 17231.20236)
- This issue can be reproduced with the legacy MDAC SQL Server ODBC driver, but not with the new ODBC Driver 17 (didn't test 11, 13 and 18).
- The issue only occurs if the SQL Server table has a primary key.
- On a personal note, this issue is particularly embarassing for us, since we recently told all our customers to switch from the Current Channel to the Monthly Enterprise Channel to avoid the frequent Access bugs introduced by feature updates. That worked out well...
- The code above is sample code to reproduce the problem, not production code. I know that there are more efficient ways to query SQL Server data from Access.
- I tried to format the code snippets above as "code samples", but that causes the techcommunity editor to reject my posting since it contains "invalid HTML". Oh, well...
Hi,
Microsoft fixed the problem last night. There's no new build. You just have to restart Access to restore normal performance with the "SQL Server" driver.
I have also updated our documenting blog article. As written there, it would be good if affected users could briefly report back whether the fix works for them.
HeinziAT Extremely bad luck with this unusual order of appearance of the bug. S*** happens. At least you contributed to a quicker fix by reporting it here.
Servus
Karl
****************
Access Forever
Access News
Access DevCon
Access-Entwickler-Konferenz AEK
Hi Heinzi,
In January, there was a similar problem with version 2312 in the Current channel, which I only mentioned briefly as a note in the Status section of this article as it was quickly cured by Microsoft with a Feature gate.
I'll try to clarify if this is related.
Servus
Karl
****************
Access Forever
Access News
Access DevCon
Access-Entwickler-Konferenz AEK- HeinziATBrass Contributor
Thanks for the reminder! It's only been a month and I already forgot about the Jan 2024 issue.
I just tried the old repro instructions we had for the Jan 2024 issue, and - voilà - that issue can be reproduced in the Feb 2024 Monthly Enterprise Build. So, yes, it seems that your intuition got it right and this is indeed the same problem. Let's hope Microsoft can do a fix-by-feature-gate-switch here as well.
Oh, and by the way, the instructions in your blog on how to enable the "Choose Update Channel" button were extremely helpful in debugging this issue. 🙂
Hi,
Microsoft has confirmed the problem and that we can expect a fix soon.
This time, however, I have written a separate blog article about it to inform those affected and make them aware when the problem is fixed and that they will then have to update or more likely restart Access.
Servus
Karl
****************
Access Forever
Access News
Access DevCon
Access-Entwickler-Konferenz AEK
- KentGorrellCopper Contributor
Karl_Donaubauer Semi colon issue still seems to be a problem on machines updated to 2312 on Monday February 19. At least Machines with this version fail to refresh tdf links to SQL Server. No issue on the machines that updated to 2311.
The Connect string looks OK, no missing semi colon but the .RefreshLink fails in VBA (but refreshes OK using the linked table manager).
Given that MS tries to fix this stuff via a backdoor rather than issuing a new build, there is no way of knowing from the version/build if a machine should or should not be affected.
Not a great way to manage a SDLC.
Hi Kent,
And I repeat for the third time (after AFo and LI) that I cannot do anything unless you provide a build number where you still see the bug. Without a build, I/we do not know the situation or channel of your client and cannot attempt to reproduce the problem or report it purposefully to MSFT.
Servus
Karl
****************
Access Forever
Access News
Access DevCon
Access-Entwickler-Konferenz AEK