咨询热线:4008-6044-55 | OA | E-mail
在公共盘上运行数据库的疑惑速度很慢
日期:2024-06-17 11:09:41 | 作者:华体会最新地址

  

在公共盘上运行数据库的疑惑速度非常慢

  我写了一个系统受公司电脑限制只可以使用access作为数据库放在了公司的公共盘上。

  如果我把数据库移到本地电脑修改链接。速度会非常快基本就是秒开。

  如果我单独从公共盘上打开access也很快两三秒就能打开。

  求老师指点还是我在写代码时必须要格外注意些什么问题

  各位老师,请教一个问题。 我写了一个系统,受公司电脑限制,只可以使用access作为数据库,放在了公司的公共盘上。 数据库里面有10个表,每个表大概有几百行数据,总共约1.3兆。(后续可能每个表会增加到5000行) 现在发现一个问题,如果运行系统,打开access数据库,将数据读取到datagridview中,加载速度很慢,要大约10~15秒。如果修改数据或者添加数据,也需要大约5秒的时间,如果再刷新读取到dgv里,又是耗费10秒时间。 如果我把数据库移到本地电脑,修改链接。速度会非常快,基本就

  [quote引用 15 楼 圣殿骑士18 的回复:]这不是你代码的问题。代码也没法优化。你数据库通过这一种方式部署就是不对的根子错了。 如果一个数据库要共享要么做一个基于web的系统将数据库访问变为本地访问要么在公共机上装个数据库服务器比如mysql也是把访问变为本地访问。

  哦您意思是access数据库不算是真正的本地访问要SQL数据库才行 我现在也正计划让单位在服务器上安装SQL这样的话应该速度会有改观。[/quote] 当然。你访问access数据库引擎是在本地的引擎去访问数据都得访问远程的主机。 sqlservermysql不一样它不是文件型数据库引擎在远程主机上你本地只是一个数据库客户端它们之间是tcp/ip访问只有必要的数据才传输。

  这不是你代码的问题。代码也没法优化。你数据库通过这样的形式部署就是不对的根子错了。 如果一个数据库要共享要么做一个基于web的系统将数据库访问变为本地访问要么在公共机上装个数据库服务器比如mysql也是把访问变为本地访问。

  哦您意思是access数据库不算是真正的本地访问要SQL数据库才行 我现在也正计划让单位在服务器上安装SQL这样的话应该速度会有改观。

  使用的是什么操作系统对于直接访问网络上的资源这种操作Win7 等操作系统增加了很多安全方面的检测以确保操作是安全的规避恶意程序导致这种操作会变慢。直接从网络邻局打开文件的这种操作系统认为已登录成功不必做多余的检测所以会快很多。你可以换成 XP 系统来测试一下应该没有这种问题。

  这不是你代码的问题。代码也没法优化。你数据库通过这一种方式部署就是不对的根子错了。 如果一个数据库要共享要么做一个基于web的系统将数据库访问变为本地访问要么在公共机上装个数据库服务器比如mysql也是把访问变为本地访问。

  [quote引用 5 楼 大西瓜一块五一斤♏ 的回复:]能够准确的通过楼上们的建议写个接口部署在公共盘的电脑上你本地请求这个接口请求数据

  老师可以讲详细些吗不太懂[/quote] 就是做bs软件写一个网站

  先确保耗时操作确实是出在“从ACCESS读取数据”而不是“将数据加载到DataGridView”

  具体要看你的代码怎么读取怎么打开。真为你单位的程序员的技术水平捏一把汗。

  建议楼主了解一下SQLExpress这个比Access好用多了

  [quote引用 5 楼 大西瓜一块五一斤♏ 的回复:]能够准确的通过楼上们的建议写个接口部署在公共盘的电脑上你本地请求这个接口请求数据

  老师可以讲详细些吗不太懂[/quote] 他的意思是不直接操作 access, 改为用接口来调。 客户端》 接口 》access. 建议你用 sqlserver 试下 如果 sqlserver 也慢 那就不是 access 的问题。 不过 access 太老套 建议放弃。

  可以根据楼上们的建议写个接口部署在公共盘的电脑上你本地请求这个接口请求数据

  可以根据楼上们的建议写个接口部署在公共盘的电脑上你本地请求这个接口请求数据

  没用过access应该是access本身的策略。access或许只适用于本地数据库client/server模式可能他不能很好的支持。

  既然你本机测试速度很快。 那么可能就是 1 服务器问题 2 网络问题

  感谢老师们的回复。 是这样这个系统是我写给部门用的。总公司和别的地方的分公司采购部门的人都用这个系统做记录。 但因为公共盘没安装SQL服务器软件一来我们不知道该怎么申请安装SQL服务器流程可能会很繁琐。公共盘是给整个集团公司使用的安装这服务器可能会很麻烦。二来我们的数据量不大后期编辑可能access会更方便些所以只能用access。 忽然想到一个可能性公司为了信息安全安装了很多的防火墙有可能是因为防火墙的问题造成访问变得很慢因为我今天发现从点击按钮到运行第一句代码中间有长达好几秒的停顿。

  20年前用VB的时候就是这样的用法把ACCESS数据库放在网络共享目录中然后C/S模式同时应用人数20多个未曾发现你说的这个问题

  “受公司电脑限制”这类我猜不出来是什么限制但是既然你们公司有人出主意要将数据放到公司的机器上那么你就必须要知道要设计一个“客户端-服务器”系统。我只能尽量给你一点提醒不知道怎么说你们这个公司才好总之要么你们的公司要么你自己要正规起来学习按照一般的产品的流程和思路设计正规软件。

  你说的“公共盘上运行数据库”这个概念不存在Jet 文件被一遍遍地利用互联网整体传递、修改这就跟你利用互联网共享打开、修改一个巨大的二进制文件并且随机存取是一样的。根本谈不上什么“运行数据库”。不用说 Jet 引擎就算是你使用 SQLite 或者别的什么桌面文件数据库引擎但是你把巨大的文件放到所所谓的“远程磁盘映射”上就算是文件不会频繁损坏估计还没有到那个实际使用阶段也会有这种结果。


在线留言

在线客服