ITPub博客

首页 > IT职业 > IT生活 > 第二天

第二天

原创 IT生活 作者:jxmarvel 时间:2010-04-15 20:13:15 0 删除 编辑


由于txt的导入,需要行间记录的逻辑运算,而且标题栏的数字需要取出,导致最后失败了,这工作还是交给用hibernate写导入程序的那个人吧。

还有任务就是需要进行数据迁移。要把南校区数据库中记录了北校数据的记录迁移到北校区的数据库中,由于南北校区只用某字段中的值来区分,所以,原本想用应用备份的方式来实现的梦想破灭了。唯有考虑导出IXF再导入和多数据库联合查询这两种方法吧。多数据库联合查询的方法虽然操作较简单,但是较前者慢,所以还是选择了前者。

但是从第二种方法中考虑了另外一个问题,因为一些表中记录了很久的数据不会被查询,即使建立了索引,但是由于存在几百万条的数据,使得查询依然不够快,所以我觉得应该用MQT会极大提高效率。

MQT建立的方法如下:create table MQT as ( selecgt * from sourcetable) data initially deferred refresh immediate enable query optimization

由于refresh immediate,所以每次源表更新的时候,MQT也会跟着更新
如果是refresh deferred ,则需要手动运行命令refresh table MQT的时候才会更新。

其中要注意的是,源表在没有group by子句的情况下,必须要有unique约束。

可用alter table name drop materialized 来去除MQT的物化属性,使得可以被直接修改,否则只能通过修改源表的方法来修改

另附多数据库联合查询的方法:
首先确认实例配置参数中FEDERATED值设为YES。
db2 update dbm cfg using FEDERATED yes
然后通过以下步骤达到在mbank库中访问cards24库cardpro.cp_banknm表的目的。
1) connect to mbank user cardpro using cardpro
2) create wrapper drda
3) create server db2sam type db2/nt version 7.2 wrapper drda authorization db2inst1 password cardpro4bos options(node 'p610', dbname 's24db')
注意,要将数据库cards24编目在本地节点上,node对于节点名,dbname对于数据库别名
例如:
catalog tcpip node p610 remote 10.168.4.18 server 50000
catalog db cards24 as s24db at node p610
4) create user mapping for db2inst1 server db2sam options(remote_authid 'db2inst1', remote_password 'cardpro4bos')
5) create nickname cardpro.cp_banknm for db2sam.cardpro.cp_banknm
之后,就可以在mbank数据库中用select语句查询,如select * from cardpro.cp_banknm。

其中dbname一定要用catalog db 一句中db的别名

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11717161/viewspace-1032910/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 第一天
下一篇: 存储过程
请登录后发表评论 登录
全部评论

注册时间:2010-01-31

  • 博文量
    5
  • 访问量
    4970