Chris
Chris

Reputation: 515

Significant performance differences between Access on Windows Server 2008 R2 and Windows Server 2019

In our company we have to support a large legacy system built on Microsoft Access 2010 as frontend and SQL Server 2008 R2 as backend. The backend SQL server runs on Windows Server 2008 R2. Currently our users works on Terminal Server sessions on a Windows Server 2008 R2. A couple of days ago we started to test Windows Server 2019 and Notebooks with the latest version of Windows 10. We recognized a big performance difference while executing the same Access databases on the different environments.

For instance the creation of a report takes 27 seconds (new environment) instead of 7 seconds (old environment). The database.accdb is identical, the backend is identical (still Windows 2008 R2 Server with SQL Server 2008 R2 and SP2), only the execution environment (Windows) changed.

Does anyone of you have an idea how to explain this?

In Access 2010 the SQL server tables are linked using System-DSN data sources. On the old environment ODBC is used (Driver: SQL Server, Version: 6.01.7601.17514).

On the new environment I tested the following drivers:

I created a new System-DSN using the different drivers and updated the linked tables in Access. But in any case the performance is still bad. I also tested the latest version of Access which comes with Office 2019, but again it is slow.

Upvotes: 2

Views: 1719

Answers (3)

Tiago Marques
Tiago Marques

Reputation: 1

In my case, the problem was the server network adapters configuration itsself, as windows firewall was sometimes blocking traffic from/trough this server or misleading traffic. I had to disable IPv6 on 1 adapter and things just went fluidly then.

For me, it was not a problem of ODBC drivers or data errors (compact and repair errors), or even VBA slowliness because of not decompiling the code, it was just a network error, despite this particular database program isn't using odbc through the network.

For me, problem solved.

Upvotes: 0

Albert D. Kallal
Albert D. Kallal

Reputation: 49039

Ok, a number of things to check.

First thing to check:

Launch the ODBC manager and check if SQL log tracing is on. I don’t know why, but I see sql logging turned on.

You NEED to be 100% sure it is turned off.

You MUST launch the ODBC manager from the command line or start menu, since the one in the control panel is for the x64 bit version, and you are using Access x32 (I assume).

So launch this version:

c:\Windows\SysWOW64\odbcad32.exe

So VERY important to launch the x32. It is assumed you are using a FILE dsn. So check these two settings:

enter image description here

(Make sure they are un-checked).

Next up?

Link access using the IP address of the sql server.

So, place of say:

myServer\SQLEXPRESS

Use:

10.50.10.101\SQLEXPRESS

(Of course use the IP address of sql server, not the above “example” IP).

The above things are quite easy to check.

Still no performance fix?

Then disable the fire wall on your new Terminal server (I seen this REALLY cause havoc).

And, disable windows defender on the new TS server if running.

The above tips should fix your issues.

If above don’t work, then next would be to check the priority settings for the TS server (GUI over server).

However, I am betting the above checks should restore your performance.

Upvotes: 0

John Mo
John Mo

Reputation: 1326

Sounds like your terminal sessions are getting throttled. Despite the fact that you have a SQL Server back end, Access is still doing a fair bit of thunking with the result sets, so any resource throttling differences between your Server 2008 and Server 2019 policies could be choking Access in the new server.

I think your answer is going to be found in Windows System Resource Manager. The page says it's not being maintained, but following the "Recommended Version" link leads to a generic Server 2019 page. Here's another article about how WSRM might be throttling sessions: Using WSRM to control RDS Dynamic Fair Share Scheduling.

Compare the Weighted_Remote_Sessions policy in 2008 and 2019 servers. There's either been a change to the default settings or behavior or the 2008 server policy was modified in the past to get to the current performance level.

Upvotes: 1

Related Questions