MQT翻译为“物化表”。MQT技术原理是对SQL操作采取的数据库记录数据,即临时数据,把结果保存在磁盘上。一旦程序要用到这个临时数据时,AS400下的程序采用SQL命令先进行MQT数据与PF表记录数据的同步。经过数据同步后,程序就可以直接使用用有条件筛选的MQT数据,从而提高应用系统的执行效率。
比如,一个PF表存在记录数为5000万条,如果银行交易把今日作为sql数据记录筛选条件之一,如select * from PF表 where 交易日期=’2013-7-30’ and 账户类型=’A’(对公’),对交易时间的第一个小时,筛选出来符合条件的记录数为300万条,这些筛选出来的记录数据作为PF表的子集存放在MQT表中,且交易第一笔记录MQT数据是从5000万笔PF表进行筛选的,假设系统耗费20分钟,接下去每增减一笔交易系统对MQT数据从PF表进行筛选时间为0.0013333秒。假设接下去的同类并发交易数为1000笔/秒,包括交易处理时间。应用程序在使用这个MQT表时,首先要对递增的1000笔记录数据做同步,而不是对5300万记录加1000笔记录数重新做条件筛选,即slq筛选临时数据被破坏的情况下,多耗费20分钟以上的系统时间进行数据筛选。
1000笔交易记录数据对同步MQT与PF表的平均时间为1秒,再下去,假设还是1000笔/秒的并发数,在日交易结束时,交易量为300万笔+360万笔x5。
在交易结束后,晚上批处理时,对当日交易的记录数据如果采用同样条件的sql进行筛选是,就可以省掉多次的20分钟以上的处理时间,而直接使用MQT中的记录数据。
采用MQT技术是用磁盘空间,保存SQL中间数据结果,换取程序的最终处理速度的提升。
采用MQT技术的要点补充:
1)采用MQT技术对PF表数据同步,是PF表新增的记录,或PF表字段内容有做调整,是PF表记录数据对MQT表记录数据进过单向数据同步;
2)采用MQT的sql语句可以对多个PF表操作处理中间记录数据结果;
3)MQT数据可以是多层记录数据的结果的结果;
4)MQT记录数据可以被不同的逻辑分区数据共享。