Fin*_*042 5 performance networking vba system file
这变成了一个相当长的帖子,并且每个说法并没有真正的"答案".我更倾向于寻找解释,而不是解决问题.因此,您要回答的任何方面都会非常感激.提前致谢!
我正在遇到文件系统对象可能存在的"问题",这导致了一个关于VBA中的文件系统对象如何工作的功能等问题与"别的东西"(我不知道)如果有替代方法可以在Excel中使用我正在做的事情.net等我不知道有什么更好的地方可以问,而且我不确定该为自己研究什么.所以我来了!
所以!为了这个问题.简短的解释是我遍历文件夹,收集文件信息(名称,扩展名,完整路径等)并将其放入电子表格中.我最终使用此信息将文件复制到新位置.但是,在大规模(1,000多个文件)中,这似乎在本地工作得很好,但在网络位置(工作中)它相当慢.它将咀嚼1,500个文件,等待一段时间,再做1,500多个等等.列出或复制文件时.同样,在本地完成时不会出现这种情况,它只会毫无问题地运行,所以我可以假设它可能与我的代码无关.这几乎就像网络间歇性地打开和关闭一个门.
或者,从最终用户的角度使用其他程序(我尝试使用我的程序,在我们的工作网络上使用的相同文件),没有任何上述延迟,它会更快.我假设替代程序正在使用某些版本的.net,如果重要的话.长话短说,我不认为我本来可以责怪我们的网络因为我遇到的速度问题.
所以我的问题/好奇心/问题归结为几个关键点:
- VBA中的FSO与.Net中的默认库之间有什么区别?我遇到的问题原因之间的区别是什么?显然,可以比完成这些数据更快地读取此类数据.
- FSO不打算以这种方式使用(通过网络,使用大量远程数据,还是......?)?它只是过时/过时了吗?有没有可以通过VBA使用的替代方案?
- 我只是模糊地了解我们的网络以与本地驱动器不同的方式运行.它存储了数TB的数据等,我不确定访问本地驱动器和网络位置之间的差异是什么.我知道我没有提供可能对诊断非常有益的网络细节,遗憾的是我不知道这些信息.我想我只是问它是否"潜在地"解释了以这种方式使用FSO与某些/所有类型的网络并不是它的意思.是否有可能以这种方式设置网络以限制我尝试与之交互的方式?
- 即使我在本地没有遇到任何问题,我的代码中的某些东西是否可能对网络位置和本地驱动器更加负担?
感谢您提供的任何见解.
Finch042 承认,他只是对访问网络服务器的文件系统与访问本地文件系统时的不同细节“模糊”,并且他的问题实际上是关于这两种情况之间的相对速度差异。这里的所有其他帖子都假设问题在于他的设计选择和/或编码技术,但我认为根本问题尚未得到解答:为什么网络文件操作会慢得多?
\n\n简而言之,网络文件系统位于 LAN 电缆(或更糟糕的是 Wifi 信号)末端的另一台计算机的磁盘上,并且这种中间技术在数据传输带宽方面比传统技术受到更多限制。计算机处理器与其本地磁盘之间的电子设备。确实,相对于石器时代,现代 LAN 的容量快得令人眼花缭乱,但它们仍然比 PC 主板上的磁盘接口电子设备慢得多。因此,在访问远程文件时,您总会遇到一定程度的性能下降。
\n\n此外,许多现代服务器场系统可能包括用于数据完整性维护的镜像(即存储冗余),并且还可能包括自动版本备份功能,这两者都会增加某些服务器操作的访问时间,特别是在写入新文件或更新现有文件时。那些。
\n\n至于传入/传出服务器的数据传输速率的波动,Finch042 将其描述为数据流的明显“门控”:每当您使用通用访问技术(例如 LAN 系统和共享服务器)时,您通常会受到影响。与尝试做类似事情的其他人竞争。例如,诸如传统以太网之类的 LAN 技术实际上允许各种用户互相踩踏\xe2\x80\x99 的传输尝试,并且当这确实导致尝试失败时,它会重试直到成功。这种设计以简单性为代价,从而牺牲了最终的整体可靠性,但吞吐速度(通常)略有损失。但当网络需求很高时,可能会导致所有用户的吞吐量急剧下降。
\n\n类似地,文件服务器服务文件系统访问请求的能力有限,并且在需求高时也可能会过载。
\n\n我怀疑 Finch042 的经历可能与此类问题有关,特别是如果他的组织的网络和服务器系统逐渐增长,因此以非优化的方式,在很长一段时间内,和/或处于或接近其容量极限。他所经历的不一致的数据传输速率很可能只是对公共共享网络/服务器系统的需求的潮起潮落。
\n\n另请注意,病毒防护系统可能会干扰文件访问速度,尤其是网络服务器文件。
\n