2013-08-26 66 views
1

我正在寻找一点建议。SQL Server表> MS Access本地副本?

我有一些SQL Server表我需要移动到本地Access数据库的一些地方生产任务 - 每个“工作”的设置一次,W这QTR/400个职位,跨越几十个用户...

一小背景:

  1. 我目前使用DSN的方法来避免铺货

  2. 我可以建立临时链接到远程表和运行“make表”查询来填充本地表

    ,然后放下远程表。按预期工作。

  3. 这里在美国的表现很不错 - 大约40K记录需要10-15秒。我们的印度团队看到相同的数据集> 5-10分钟。他们的互联网连接是体面的,不是很好,也是我无法控制的变数。

  4. 我在想,如果MS Access在这里增加了一些开销,可以通过更直接的方法避免:即让服务器完成所有/大部分繁重工作与Access?

我修修补补用各种组合,没有明确的改善或成功:

  • 参数化存储从获取程序
  • SQL中继从Access查询
  • ADO VS DAO

任何建议,或建议的整体方法?如何将数据移动为XML?

注:我有访问7,10,13用户。

谢谢!

+0

你需要使用Access吗?那么SQL Server Compact或Express或其他一些呢? –

+0

您是否考虑过SQL Express在本地? –

+0

访问是必要的。这里有一些历史元素(形式等)。新的ENV目前不可行。 –

回答

0

这并不完全清楚,但如果MSACCESS数据库进行转储本地和SQL Server数据库是远程的,在互联网上,你一定会碰到连接的物理限制。

ODBC驱动程序并不意味着要用于局域网之外的数据访问,因此存在太多延迟。 当Access查询数据时,不会打开一个流,它会取出它的数据块,等待数据被下载,然后请求另一批。这是一个LAN上确定的,但迅速下降长距离,尤其是当你考虑到美国和印度之间的通信有大概在200毫秒的延迟,并因为它非常快,如果通信协议是健谈加起来你不能做这种事, ,所有这些都在连接的带宽之上,这很可能低于你在局域网上获得的。

更好的解决办法是在当地进行转储,然后发送所产生的访问文件时,它已被压缩后,也许压缩(使用7Z例如用于更好的压缩)。这很可能会导致非常小的文件,在几秒钟内很容易移动。

该过程可以很容易地自动化。最简单的方法是每天自动执行此转储,并使其可在FTP服务器或内部网站上供下载。

你也可以把它随叫随到,也许槽在服务器上运行的应用程序和Windows 2008 Server的一个网站,或外壳上或干脆虽然使用RDP服务提供通过RemoteApp。
你也可以有你的SQL Server上的一个简单的Windows服务,用于侦听安装在本地计算机无处不在远程客户端的请求,将处理转储文件并将其发送给客户端然后将其解压并替换先前下载数据库。

大量的这种解决方案,即使他们可能会需要一定量的工作可靠的自动化。

最后一点:如果您自动从SQL Server中的数据转储到Access,避免使用自动的方式访问。这很难调试,很容易打破。使用导出工具,而不依赖于安装Access。

0

雷诺所有,感谢您抽出宝贵的时间来提供你的反应。正如你所看到的,互联网上的表现是瓶颈。块(相对于连续DL)数据的获取正是我希望通过替代方法避免的。

或者工作流程正在不断发展,以便更好地利用美国的User1在本地数据库中完成他们当天的工作并随后将其更新返回给服务器(基于时间戳)的双方。用户2在印度,也有同一个数据库的本地副本,在他一天的开始时只抓取服务器上的更新记录。所以,对于日常工作来说非常高效。

主要问题是当前“作业”的服务器(大型多年DB)的本地数据库表的初始DL--应在开始工作时发生一次(约1周的过程)这是印度需要5-10分钟完成的部分。

目前,我们通过FTP移动DB来回 - 每日。它被用作SINGLE共享数据库,并且由于临时表而有点大。我希望我的新时间戳推拉每日变化将是一个整体加。似乎是,但最初的DL障碍仍然存在。