| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5625 人关注过本帖
标题:老车认为CURSOR表在磁盘
取消只看楼主 加入收藏
惬意_甬车
Rank: 1
等 级:新手上路
威 望:2
帖 子:45
专家分:6
注 册:2016-5-12
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:6 
老车认为CURSOR表在磁盘
___2021年10月17日

CURSOR表在哪里存放由于没有权威的明确说明,VFP业界大师们时常讨论。有说在内存的,有说在磁盘的,还有说数据量小时在内存,大时转磁盘。老车认为CURSOR表必须在磁盘,理由如下:

一、首先要确定CURSOR表的主要作用是什么。老车认为CURSOR表主要是为作为远程表与VFP的链接表(也叫视图)而设计的。老车在学用CA 与SQL时发现、用CA从远程SQL检索到VFP中的视图,也就是CURSOR表,与SQL中的源表结合的相当牢固,老车曾经设想需要切开时随时切开,需要链接时随时链接,然而花了几天时间都切不开,至今也没能切开,觉得除非退出VFP、断电或拨下网线,否则无法切开。说这些老车是想说明作为视图的CURSOR表与远程SQL中的源表结合是相当紧密复杂的,怎么可以忽而内存忽而磁盘的随时折腾呢?还有数据在内存与磁盘的存放方式应该是不同的,关联方式也就不同,来来回回折腾需要改变链接方式,必然是很要命的;还有正在折腾时发生断电等导致数据表损坏的机率徒增,且很难预防和处理;还有计算机操作都是瞬息万变的,总是那么来来回回折腾不仅费机时,判断是否需要折腾也是很累的,系统怎么能判断出操作员下面点击哪里、下一秒数据量是增加还是减少?如果是老车编写VFP不会那么整的。
二、我们都知道电脑内存或VFP所能管理的内存是有限的,不足以容纳特大的远程SQL等源表,而磁盘对操作远程SQL等数据源表而言可以视为足够大,所以VFP不会将CURSOR表放在内存,而要放在磁盘。
三、CURSOR表不作为SQL等远程源表的视图,而作为VFP自身数据载体只是该表的附属功能,VFP不会因附属功能而另设计存放方式的。并且如果放入内存,也同样存在内存容量不足来回折腾的问题。
四、用 DBF() 函数获取的CURSOR 表所在位置无一不在磁盘更能说明问题,也不知道为什么DBF() 获取的位置明明是在磁盘上,还有硬说在内存的。

也有人可能会说我并不关心CURSOR 表存放在哪里,只管用就是,讨论这个没有意义。其实则不然,有的东西不搞清原理有时会吃亏的,老车之前就一直在吃这个亏。之前老车也是一直认为CURSOR 表存放在内存,运行速度当然要比存放在磁盘快很多,因而有时宁可克服CURSOR 表不能保存、不能插入行、不能PACK 等缺点也用CURSOR表、而不用基本DBF表。弄清了CURSOR表也是在磁盘、与基本DBF表操作速度相同,今后就不会再吃这个亏了。老车还分析过CURSOR既然在磁盘为什么不能保存、不能插入、不能PACK,认为皆是因为它与远程源表关联所至。就拿保存来说吧,你这里退出VFP或关机保存了CURSOR 表,在此期间其它终端机改动了源表你怎么能知道,再重新操作这个表时还不是要重新检索才行,之前保存的CURSOR表便成为了垃圾、占用磁盘,没有意义。CURSOR表不保存、不形成垃圾也成为了它的优点之一。

以上仅是老车个人观点,也无真凭实据,欢迎持不同观点的大师提反面意见,但也要说出一、二、三、……道理,不可简单的只说就是就不是。

[此贴子已经被作者于2021-10-20 11:09编辑过]

搜索更多相关主题的帖子: VFP SQL 内存 磁盘 CURSOR 
2021-10-20 09:48
惬意_甬车
Rank: 1
等 级:新手上路
威 望:2
帖 子:45
专家分:6
注 册:2016-5-12
收藏
得分:0 
“物理表”等于没说,物理表在哪里?是在内存还是在磁盘?
2021-10-20 13:58
惬意_甬车
Rank: 1
等 级:新手上路
威 望:2
帖 子:45
专家分:6
注 册:2016-5-12
收藏
得分:0 
谢4楼认同!谢5楼支持!
2021-10-20 18:26
惬意_甬车
Rank: 1
等 级:新手上路
威 望:2
帖 子:45
专家分:6
注 册:2016-5-12
收藏
得分:0 
回复 7楼 吹水佬
热烈欢迎坛中大佬参与讨论!各抒己见、畅所欲言。
2021-10-21 04:01
惬意_甬车
Rank: 1
等 级:新手上路
威 望:2
帖 子:45
专家分:6
注 册:2016-5-12
收藏
得分:0 
回复 9楼 sam_jiang
重在参与!
2021-10-21 12:33
惬意_甬车
Rank: 1
等 级:新手上路
威 望:2
帖 子:45
专家分:6
注 册:2016-5-12
收藏
得分:0 
回复 11楼 xuminxz
2021-10-21 14:24
惬意_甬车
Rank: 1
等 级:新手上路
威 望:2
帖 子:45
专家分:6
注 册:2016-5-12
收藏
得分:0 
请教:论坛通知俺结帖,初次发帖不知道如何解法哦。是否总共20分要各回帖分?那还真得认真些了。哈哈!
刚才为感谢诸位朋友回帖都给满分,结果下面出红字警告。嘿嘿!
2021-10-23 04:39
快速回复:老车认为CURSOR表在磁盘
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013418 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved