MQT
DB2物化查询表
这种物化查询表中的数据是由用户维护的。只有 REFRESH DEFERRED 物化查询表可以定义为 MAINTAINED BY USER。不能对用户维护的 MQT 发出 REFRESH TABLE 语句(用于系统维护的 MQT)。但是,用户维护的 MQT 却 允许对它们执行 insert、update 或 delete 操作。
MQT,或者叫summary table,stage table,提供了强有力的方法来提高复杂查询的响应时间,特别是对包含如下操作的查询:对一个或多个维度的聚合操作,如SUM,Count等;在一组表之间的join和聚合操作。MQT的基本原理是对以上特别需要耗费资源的操作事先计算出来并保存到单独的表里,这样当查询的时候优化器就会引导相关查询到MQT中查找,由于MQT表里面已经包含了需要聚集和join的数据,数据量有了大幅度减少,因此能够大大提高性能。
这种物化查询表中的数据是由用户维护的。只有 REFRESH DEFERRED 物化查询表可以定义为 MAINTAINED BY USER。不能对用户维护的 MQT 发出 REFRESH TABLE 语句(用于系统维护的 MQT)。但是,用户维护的 MQT 却 允许对它们执行 insert、update 或 delete 操作。
MQT,或者叫summary table,stage table,提供了强有力的方法来提高复杂查询的响应时间,特别是对包含如下操作的查询:对一个或多个维度的聚合操作,如SUM,Count等;在一组表之间的join和聚合操作。MQT的基本原理是对以上特别需要耗费资源的操作事先计算出来并保存到单独的表里,这样当查询的时候优化器就会引导相关查询到MQT中查找,由于MQT表里面已经包含了需要聚集和join的数据,数据量有了大幅度减少,因此能够大大提高性能。
sequence
Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。
Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。
根据我个人理解,Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用
----------------------------------------------------------------------------------------------------
Trigger触发顺序
Oracle fires multiple triggers in an unspecified, random order, if more than one trigger of the same type exists for a given statement; that is, triggers of the same type for the same statement are not guaranteed to fire in any specific order.
Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。
根据我个人理解,Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用
----------------------------------------------------------------------------------------------------
Trigger触发顺序
Oracle fires multiple triggers in an unspecified, random order, if more than one trigger of the same type exists for a given statement; that is, triggers of the same type for the same statement are not guaranteed to fire in any specific order.