Foxtable(狐表)用户栏目专家坐堂 → 经验分享,关于数据源选择的考虑


  共有3463人关注过本帖树形打印复制链接

主题:经验分享,关于数据源选择的考虑

帅哥哟,离线,有人找我吗?
lyfxybc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1294 积分:9852 威望:0 精华:0 注册:2012/9/19 21:13:00
经验分享,关于数据源选择的考虑  发帖心情 Post By:2015/4/22 20:42:00 [只看该作者]

关于数据源选择的考虑

 

刚开始接触狐表,直接用access作为数据源,编写了生产管理软件,现在已经用了2年,数据库接近300M,现在感觉统计数据满了很多,其中一个合同报表,需要五大车间年初至今(一直到全年)的数据,并且要求合同完成多少,未完成多少,都要计算出来,累计时间最早15分钟统计完,之后调整了统计代码统计时间还需要50‘’---90‘’之间。同事查询数据时加载也慢。用了几天时间,改用sql2005作为数据源,经过调整(时间#改为',值为true和false的列改为1和0,以及条件语句等都要改过来,数据表导出导入等工作),今天全部电脑调试完毕,速度比access快的惊人。在所有电脑均统计了合同报表,经使用统计速度均3秒内完成。查询速度也非常快,以前更新一下目录树也需要5-6秒甚至更多的时间,现在基本不存在等待情况。

 

建议新手根据自己的需求,尽量开始就用sql作为数据库,以免速度也来越慢,以后更换虽然简单,但是所有的报表,日期、true、false、iif等都要调整,工作量也很大,改了这边,忘了那边。

 

另外,统计数据是可能用到辅助表,需要在辅助表填充数据

如用下列代码

 

dim f As New Filler
f
.SourceTable = DataTables("订单") '指定数据来源
f
.SourceCols = "产品,客户1" '指定数据来源列
f
.DataTable = DataTables("统计") '指定数据接收表
f
.DataCols = "产品,客户" '指定数据接收列
f
.Fill()
'填充数据

 


f
.SourceTable = DataTables("订单") '指定数据来源
f
.SourceCols = "产品,客户2" '指定数据来源列
f
.DataTable = DataTables("统计") '指定数据接收表
f
.DataCols = "产品,客户" '指定数据接收列
f
.Fill()
'填充数据

 

f.SourceTable = DataTables("订单") '指定数据来源
f
.SourceCols = "产品,客户3" '指定数据来源列
f
.DataTable = DataTables("统计") '指定数据接收表
f
.DataCols = "产品,客户" '指定数据接收列
f
.Fill() '填充数据

.....

.....

.......

但是,当数据量较大,有时达到100M以上的数据量时,或许数据更多,上面代码或许慢了许多

碰到这种情况,我才用了类似下列代码先导出,再倒入

 '导出当天订单
Dim
ex As New Exporter
ex
.SourceTableName = "订单"
ex.FilePath =
"c:\temp\gd.mdb"
ex.Filter =
"日期 = #" & Date.Today & "#"
If
FileSys.FileExists(ex.FilePath) Then '如果目标文件已经存在
    FileSys.DeleteFile(ex.FilePath)
'则删除之
End If

ex
.Export()

 

For Each File As String In Filesys.GetFiles("c:\temp")
    If
File.EndsWith(".mdb") '如果后缀名是mdb,说明此文件是access格式
        Dim
mg As New Merger
        mg
.SourcePath = file
        mg
.SourceTableName = "订单"
       
mg.DataTableName = "订单"
       
mg.Merge()
        Filesys
.DeleteFile(File) '合并后删除文件
    End If
Next

 

 

....

 

....

 

同样的数据量,后者速度随着数据量的增多,效果越来越明显快,不知道大家是否有同感

 

当然上面方法不一定最好,但是速度提高了

 

不知道大家还有更好的方法提供一下。

 

最后感谢狐表,感谢狐表团队提供了这么一个好的数据管理软件开发平台。

同时感谢帮助过我的所有老师。


 回到顶部
帅哥哟,离线,有人找我吗?
九易六
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1800 威望:0 精华:1 注册:2009/3/16 14:05:00
  发帖心情 Post By:2015/4/23 6:40:00 [只看该作者]

感谢分享。很好的开发经验啊。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/23 8:50:00 [只看该作者]

顶楼主,谢分享

 回到顶部
帅哥哟,离线,有人找我吗?
lyfxybc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1294 积分:9852 威望:0 精华:0 注册:2012/9/19 21:13:00
  发帖心情 Post By:2015/4/23 17:35:00 [只看该作者]

谢谢,这是自己的一点体会。

 回到顶部