Ms access MS Access附加查询仅在Wifi连接上慢

Ms access MS Access附加查询仅在Wifi连接上慢,ms-access,wifi,Ms Access,Wifi,我正在使用MS Access将100条记录插入本地SQL server上的表中 当我的电脑通过以太网连接到服务器时,追加查询将在不到一秒钟的时间内运行 当同一台电脑通过WiFi路由器连接到此服务器时,需要30秒以上的时间 详情: PC:Core7 8G RAM运行Win10,安装了所有更新 MS Access:安装了所有更新的MS Access 2003。我还尝试了MS Access 2010。追加查询为: 插入dbo_表A(A、B、C)从表B中选择表B.X、表B.Y、表B.Z 这些表只包含3个

我正在使用MS Access将100条记录插入本地SQL server上的表中

当我的电脑通过以太网连接到服务器时,追加查询将在不到一秒钟的时间内运行

当同一台电脑通过WiFi路由器连接到此服务器时,需要30秒以上的时间

详情:

  • PC:Core7 8G RAM运行Win10,安装了所有更新

  • MS Access:安装了所有更新的MS Access 2003。我还尝试了MS Access 2010。追加查询为:

  • 插入dbo_表A(A、B、C)从表B中选择表B.X、表B.Y、表B.Z

    这些表只包含3个索引整数和一个键字段。没有计算字段,数据库已压缩。使用代码docmd.runsql时会得到相同的结果。通过WiFi进行选择查询的速度很快

  • 服务器:Xeon 8G RAM运行在Windows Server 2003和SQL 2005上,并安装了所有更新。没有其他用户连接

  • 网络:WiFi路由器包括一个多端口交换机。服务器直接连接到此交换机

  • 目前没有人连接到Wifi。它是5Ghz 802.11n。 speedtest.xfinity.com在以太网端口上运行时,下载速度为27Mbps,上传速度为6Mbps,在WiFi上的下载速度相同


    非常感谢您的回复。

    简短的回答是,您不应该在后端通过WiFi连接的情况下运行拆分数据库。始终使用有线连接

    原因是,WiFi连接可能会出现严重的中断,而数据库引擎从来都不是,现在也不是为这种情况设计的。实际上,如果使用WiFi,您的后端很可能迟早会损坏


    如果必须使用Wifi,请将前端安装在与后端有线连接的终端服务器上,并使用远程桌面运行前端。

    简单的回答是,您不应在后端通过Wifi连接的情况下运行拆分数据库。始终使用有线连接

    原因是,WiFi连接可能会出现严重的中断,而数据库引擎从来都不是,现在也不是为这种情况设计的。实际上,如果使用WiFi,您的后端很可能迟早会损坏

    如果必须使用Wifi,请将前端安装在终端服务器上,并与后端进行有线连接,然后使用远程桌面运行前端。

    这与其说是一个“答案”,不如说是一些调试提示。这个问题真的是离题了,因为它涉及到重要的调试,但我确实有一些提示太长,无法发表评论

    现在我看到,
    [tableB]
    位于插入SQL Server的Access数据库中。Access可能会生成许多单独的语句来逐个插入数据行,而不是执行SQL Server上执行的单个查询。既然SQL Server看不到Access表,并且没有用于插入多个值的Access SQL语句,它还能做什么呢

    要了解实际情况,我建议使用。该网页不清楚,但如果您安装了用于连接SQL Server的ODBC驱动程序,则将安装实用程序“ODBC数据源管理员”。只需单击开始按钮并键入“ODBC…”,它将显示“ODBC数据源(32位)”以及可能的“ODBC数据源(64位)”。仅使用32位,因为Access将仅使用这些驱动程序。按照其他说明捕获发送到服务器的所有SQL命令

    我现在建议的唯一解决方法是使用VBA生成自己的多语句Transact-SQL文本,并使用ODBC Direct发送到服务器。这将避免过多的语句生成和访问处理。要“正确”(即以最高效、安全的方式)执行此操作,需要了解Transact-SQL、创建和处理服务器事务、直接访问SQL表与参数化过程等。这与其说是“答案”,不如说是一些调试提示。这个问题真的是离题了,因为它涉及到重要的调试,但我确实有一些提示太长,无法发表评论

    现在我看到,
    [tableB]
    位于插入SQL Server的Access数据库中。Access可能会生成许多单独的语句来逐个插入数据行,而不是执行SQL Server上执行的单个查询。既然SQL Server看不到Access表,并且没有用于插入多个值的Access SQL语句,它还能做什么呢

    要了解实际情况,我建议使用。该网页不清楚,但如果您安装了用于连接SQL Server的ODBC驱动程序,则将安装实用程序“ODBC数据源管理员”。只需单击开始按钮并键入“ODBC…”,它将显示“ODBC数据源(32位)”以及可能的“ODBC数据源(64位)”。仅使用32位,因为Access将仅使用这些驱动程序。按照其他说明捕获发送到服务器的所有SQL命令

    我现在建议的唯一解决方法是使用VBA生成自己的多语句Transact-SQL文本,并使用ODBC Direct发送到服务器。这将避免过多的语句生成和访问处理。要“正确地”(即以最高效、安全的方式)执行此操作,需要了解Transact-SQL、创建和处理服务器事务、直接访问SQL表与参数化过程等。我怀疑您的意思是在本地网络上,但当提及本地服务器时,通常指在同一台计算机上。2) 访问文件驻留在哪里?它是否在网络共享上。。。即使它是映射驱动器?3) 尽管进行了xfinity speedtest,但我怀疑SQL Server和WiFi计算机之间的带宽配置不理想,但这将是一个路由器/网络问题