以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]在ACCESS中用到视图会不会导致文件增大  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119989)

--  作者:chnfo
--  发布时间:2018/6/5 12:06:00
--  [求助]在ACCESS中用到视图会不会导致文件增大
使用ACCESS数据库,考虑到执行 in的效率比较低,所以改用inner join,在数据库中建立查询方便引用。

现在的问题:
1、在ACCESS中定义查询视图,会不会增加数据库文件的大小?如果数据库的表文件本身就很大,那增加查询表岂不是占用了空间?
2、在ACCESS中定义查询视图,一般不会加载条件,在foxtable中实际应用的时候,才会用到where,效率上会不会有影响?

--  作者:有点甜
--  发布时间:2018/6/5 12:15:00
--  

1、查询、视图,不会增加文件大小;

 

2、在数据库建视图,和在foxtable直接执行sql语句,没有太大的区别,只是你做成视图更容易调用一些而已。


--  作者:chnfo
--  发布时间:2018/6/5 12:28:00
--  
foxtable本身也有构建查询表的功能,相比较而言,因为加载到foxtable的时候,本身就已经用loadfilter过滤了一次。
那么在foxtable中构建的时候,查询的数据量会明显地小很多,会不会要快一点?
但从现在的数据来看,一个月就有差不多5W条数据,一年60万数据,三年180万行,都加载到客户端,恐怕客户端都承受不了。
[此贴子已经被作者于2018/6/5 12:28:17编辑过]

--  作者:有点甜
--  发布时间:2018/6/5 12:30:00
--  

你执行视图查询的时候,不需要顾虑,即可。等同于你直接执行sql语句。


--  作者:chnfo
--  发布时间:2018/6/5 13:50:00
--  
1、查询、视图,不会增加文件大小;
----确定吗?我刚才在access数据库中做操作。删除查询表之前是572K,删除了一个列数5列,行数639行的查询表,发现数据库文件变成了560K。说明在access数据库中增加查询表,应当是会增加数据库文件的大小的

又拿了个几十M的试了一下,好象是没啥影响。
[此贴子已经被作者于2018/6/5 14:25:29编辑过]

--  作者:有点甜
--  发布时间:2018/6/5 15:56:00
--  
增加文件大小,只是记录一下sql语句等一些信息而已,和表数据有多少无关。
--  作者:chnfo
--  发布时间:2018/6/5 19:18:00
--  

在ACCESS中定义"A查询",在FT中增加"A查询"的查询表

Dim bd2 As New GroupTableBuilder("X1",DataTables("A查询"))  
bd2.Filter = "查询条件"

感觉效率不高啊。是用法有问题吗?该如何改进呢?
现在大数据量的效率是个大问题。

--  作者:有点蓝
--  发布时间:2018/6/5 20:37:00
--  
1、添加合适的索引
2、大数据建议使用sqlserver、oracle等数据库

--  作者:chnfo
--  发布时间:2018/6/6 9:09:00
--  
新的问题请教:
1、使用外部数据源时,用ft导出的access默认的主键是_identify,而且主键就是索引。而实际的数据业务,每个表都有自己的ID(36位字符)
2、那么,是否可以去access中取消_identify主键?这样做会有什么影响?尤其是以前的一个帖子,就是大数据量的保存的代码,印象中好象是用_identify作为判断字符的。

--  作者:有点甜
--  发布时间:2018/6/6 9:32:00
--  
以下是引用chnfo在2018/6/5 19:18:00的发言:

在ACCESS中定义"A查询",在FT中增加"A查询"的查询表

Dim bd2 As New GroupTableBuilder("X1",DataTables("A查询"))  
bd2.Filter = "查询条件"

感觉效率不高啊。是用法有问题吗?该如何改进呢?
现在大数据量的效率是个大问题。

 

如果要用 GroupTableBuilder,必须把数据加载进来才能用的。

 

尽量自己写sql语句处理吧,用queryBuilder比较好。