17

I am upsizing an MS Access 2003 app to a SQL Server backend. On my dev machine, SQL Server is local, so the performance is quite good. I want to test the performance with a remote SQL Server so I can account for the effects of network latency when I am redesigning the app. I am expecting that some of the queries that seem fast now will run quite slowly once deployed to production.

How can I slow down (or simulate the speed of a remote) SQL Server without using a virtual machine, or relocating SQL to another computer? Is there some kind of proxy or Windows utility that would do this for me?

4

4 回答 4

5

我自己没有使用过,但这是另一个 SO 问题:

在其中一条评论中明确提到了 SQL Server。

于 2010-11-13T16:53:23.543 回答
0

有一个适用于 Windows 的软件应用程序可以做到这一点(必要时模拟低带宽、延迟和损失)。虽然它不是免费的。试用版有 30 秒的仿真限制。这是该产品的主页: http: //softperfect.com/products/connectionemulator/

于 2010-11-13T21:58:32.393 回答
0

您可能在误解下进行操作。MS-Access 支持所谓的“异构连接”(即,来自各种后端的表可能包含在同一个查询中,例如组合来自 Oracle 和 SQLServer 的数据以及 Access 和 Excel 电子表格)。为支持此功能,Access在客户端应用 WHERE 子句筛选器,除非存在针对智能后端的“直通”查询。在 SQL Server 中,过滤发生在服务器上运行的引擎中,因此 SQL Server 通常会向客户端发送更小的数据集。

您的问题的答案还取决于您所说的“远程”是什么意思。如果您在同一个网络上将Access 和 SQL Server 相互对抗,如果 Access MDB 文件驻留在文件服务器上,则在服务器上运行的 SQL Server 将仅消耗 Access 的一小部分带宽。(当然,如果 MDB 驻留在本地 PC 上,则不会消耗网络带宽。)如果您将 LAN 上的 Access 与通过云通过宽带通过 SQL Server 进行比较,那么您将标称的 100 mbit/sec 管道与DSL 或电缆带宽,即高速电缆的标称值可能为 20 mbit/sec,最多为带宽的五分之一,可能要少得多。

因此,您必须更具体地了解您要比较的内容。

您是否将本地 PC 上的 Access 客户端使用驻留在文件服务器上的 Access MDB 与其他类型的客户端使用来自同一网络上另一台服务器上的 SQL Server 的数据进行比较?是否要继续使用 Access 作为客户端?您的查询会被传递吗?

于 2010-11-13T17:04:22.233 回答
0

@RedFilter:您应该指出您使用的是哪个版本的 Access。这份 2006 年的文档表明,Access 通过网络向客户端传递的内容比查询是否包含“Access-specific keywords”更为复杂。

http://msdn.microsoft.com/en-us/library/bb188204(SQL.90).aspx

但是对于每个较新版本的服务器资源,Access 可能会变得越来越复杂。

我会坚持我的简单建议:如果你想尽量减少带宽消耗,同时仍然使用 Access 作为 GUI,传递查询效果最好,因为那时将由你而不是 Access 来控制传入的数据量电线下。

我仍然认为您最初的问题/方法是错误的:如果您的 Access MDB 文件首先位于 LAN 上(是吗?)您不需要模拟网络延迟的影响。您需要嗅探 Access 生成的 SQL 语句,而不是引入一些任意且恒定的“网络延迟”因素。要将使用位于 LAN 服务器上的 MDB 的 Access GUI 与针对 SQL Server 后端的大型 Access GUI 进行比较,您需要评估 Access 通过线路从后端服务器传送到客户端的数据。除非您使用直通查询,否则即使是“升级的”访问也可能会占用带宽低谷。但是,为 SQL-Server 后端编写正确的客户端总是比访问位于 LAN 服务器上的 MDB 更节省网络带宽,在其他条件不变的情况下。

于 2010-11-16T14:50:53.420 回答