Windows Server 2008 R2和Windows Server 2019上的Access之间的重大性能差异

时间:2019-07-02 12:08:26

标签: sql-server ms-access windows-10 windows-server-2008-r2 windows-server-2019

在我们公司中,我们必须支持基于Microsoft Access 2010作为前端和SQL Server 2008 R2作为后端的大型旧系统。后端SQL Server在Windows Server 2008 R2上运行。当前,我们的用户在Windows Server 2008 R2上的终端服务器会话上工作。几天前,我们开始使用最新版本的Windows 10测试Windows Server 2019和笔记本电脑。我们认识到,在不同环境中执行相同的Access数据库时,性能会有很大差异。

例如,创建报告只需27秒(新环境),而不是7秒(旧环境)。 database.accdb是相同的,后端是相同的(仍然是Windows 2008 R2 Server和SQL Server 2008 R2和SP2),只是执行环境(Windows)发生了更改。

你们中的任何人有一个如何解释这一点的想法吗?

在Access 2010中,使用System-DSN数据源链接SQL Server表。在旧环境中,使用ODBC(驱动程序:SQL Server,版本:6.01.7601.17514)。

在新环境中,我测试了以下驱动程序:

  • 用于SQL Server的ODBC驱动程序11(2014.120.5543.11)
  • 用于SQL Server的ODBC驱动程序17(2017.173.01.01)
  • SQL Server(10.00.17763.01)
  • SQL Server Native Client 10.0(2009.100.4000.00)
  • SQL Server本机客户端11.0(2011.110.5058.00)

我使用不同的驱动程序创建了一个新的System-DSN,并更新了Access中的链接表。但是无论如何,性能还是很差的。我还测试了Office 2019附带的最新版本的Access,但又很慢。

2 个答案:

答案 0 :(得分:0)

诸如终端会话之类的声音越来越节制。尽管您拥有SQL Server后端,但Access仍在对结果集进行大量修改,因此Server 2008和Server 2019策略之间的任何资源限制差异都可能使新服务器中的Access阻塞。 >

我认为您的答案将在Windows System Resource Manager中找到。该页面说它没有被维护,但是点击“推荐版本”链接会导致一个通用的Server 2019页面。这是有关WSRM如何限制会话的另一篇文章:Using WSRM to control RDS Dynamic Fair Share Scheduling

比较2008年和2019年服务器中的Weighted_Remote_Sessions策略。默认设置或行为有所更改,或者过去修改了2008服务器策略以达到当前的性能水平。

答案 1 :(得分:0)

好,要检查的东西很多。

要检查的第一件事:

启动ODBC管理器,并检查SQL日志跟踪是否打开。我不知道为什么,但是我看到了SQL日志记录已打开。

您需要100%确保它已关闭。

您必须从命令行或开始菜单启动ODBC管理器,因为控制面板中的是针对x64位版本的,并且您正在使用Access x32(我认为)。

因此启动此版本:

c:\ Windows \ SysWOW64 \ odbcad32.exe

因此非常重要的是要启动x32。假定您正在使用FILE dsn。因此,请检查以下两个设置:

enter image description here

(确保未选中它们)。

下一步吗?

使用sql服务器的IP地址进行链接访问。

这么说吧:

myServer \ SQLEXPRESS

使用:

10.50.10.101 \ SQLEXPRESS

(当然使用sql server的IP地址,而不是上面的“ example” IP)。

以上内容很容易检查。

仍然没有性能修复?

然后在新的终端服务器上禁用防火墙(我看到这确实造成了破坏)。

并且,如果正在运行,请在新的TS服务器上禁用Windows Defender。

以上提示可以解决您的问题。

如果上述方法不起作用,则下一步是检查TS服务器(服务器上的GUI)的优先级设置。

不过,我敢打赌,以上检查将恢复您的表现。