免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7161 | 回复: 22
打印 上一主题 下一主题

请教,如何实现动态定义QUERY [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-17 15:51 |只看该作者 |倒序浏览
需求:我们系统在做新旧系统并行测试,需要比较新旧两个LIB中所有同名数据库的比较,找到新旧数据库不相同的记录。
类似WRKQRY中定义qry比较两个数据库的unmatch记录,但由于数据库较多,不可能一个个静态定义,需要动态产生。

请教一下。

论坛徽章:
0
2 [报告]
发表于 2011-01-17 16:37 |只看该作者
可以先根据数据文件的format搭建比较的sql语句,再用STRQMQRY去执行这些比较语句。

论坛徽章:
0
3 [报告]
发表于 2011-01-18 00:42 |只看该作者
进一步想了解的问题:
1)是否源码库,即pf-src?
2)如果是数据库,即dta-pf,最大pf的记录有多少条?size有多大?

论坛徽章:
0
4 [报告]
发表于 2011-01-18 08:49 |只看该作者
本帖最后由 MUSIC168 于 2011-01-18 08:54 编辑

感谢楼上passthru大侠,补充一下问题:
1)不是源码库,是数据库
2)PF的记录数不定,大的有几千万条记录,几十个G

我自己想了了一个办法,比较笨,但对付大的数据库不好。我觉得不好,还请高手帮想个办法,不要数据复制的。
我的办法:弄两个临时库,只有一个字段,记录长度1024BYTES,分别将两个需要的比较的数据库CPYF到这两个临时库当中,CPYF命令参数*NOCHK,再用两次SQL命令select * not in,找出不在对方的记录。

论坛徽章:
0
5 [报告]
发表于 2011-01-18 08:53 |只看该作者
楼上larkin9527大侠的办法,我想不到如何通过SQL命令实现不在对方存在的记录?还请请详细说明一下实现过程。谢谢

论坛徽章:
0
6 [报告]
发表于 2011-01-18 10:22 |只看该作者
本帖最后由 passthru 于 2011-01-18 10:29 编辑

如果比较FileA和FileB,且FileA和FileB都是大数据PF。问:这两个File是否有Key?或有相同键字的LF?

如果用sql,对大数据pf进行比较,又select * not in,花费时间不是一般的长,要按天来计算吧?这样的算法,相当于FileA是IP,FileB是IS;FileA要遍历一次;FileB要遍历FileA记录数xFileB记录数,too large,waste time.

论坛徽章:
0
7 [报告]
发表于 2011-01-18 10:30 |只看该作者
对sql不太熟悉 这种东西还是写个程序比较好

论坛徽章:
0
8 [报告]
发表于 2011-01-18 11:04 |只看该作者
FileA和FileB有相同的KEY,但问题是我要比较的是N个FileA和N个FileB,我需要一个通用的工具来比较,其实用WRKQRY来比较两个库,找出非交集部分的效率还是蛮高的,千万记录的数据库10多分钟可以完成。问题在于我不知道怎样动态定义QUERY,因此无法通用。

论坛徽章:
0
9 [报告]
发表于 2011-01-18 11:16 |只看该作者
这个似乎没有更好的办法
用WRKQRY比较吧,是个体力活
其实也很快的,1000个PF的话,3,4个人一起做,也就一天左右
做好了把QRY保存好,防止下次再用哈哈

论坛徽章:
0
10 [报告]
发表于 2011-01-18 11:22 |只看该作者
N个FileA和N个FileB,如果index不一样,或keys在记录中的位置不一样,动态的query是不存在的,用*nocheck也不能用。

如果有相同key,可以用rpg的cycle+程序描述file来做,速度是你意想不到的快。

否则,用非存在的query,即使用时再创建query,对一个几十个G的file来说,也是较慢的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP