0

0

DB2中理解系统时间和业务时间

php中文网

php中文网

发布时间:2016-06-07 17:54:25

|

1505人浏览过

|

来源于php中文网

原创

db2 不再仅仅面向 dba。长久以来,db2 因杰出的核心 dbms 功能而闻名于世,而如今,db2 使开发人员也能够利用它的强大特性。这方面的一个示例就是直接在模式内实现基于时间的信息。这是通过 db2 10 for linux, unix, and windows 中新增的时态表来实现的。

db2 不再仅仅面向 dba。长久以来,db2 因杰出的核心 dbms 功能而闻名于世,而如今,db2 使开发人员也能够利用它的强大特性。这方面的一个示例就是直接在模式内实现基于时间的信息。这是通过 db2 10 for linux, unix, and windows 中新增的时态表来实现的。

利用时态表,您能够轻松地跟踪和分析业务中的变化,准确对比两个时间点的数据。该功能允许您有效执行和跟踪数据更正,支持您在过去执行数据更改,也就是说,使之作为过去的某个特定时间点而“生效”,同时记录执行更改的时间。时态表提供了显示过去任意时间点数据的能力,也能显示相同事务中的哪些信息发生过更改,更改是在何时执行的,因此能够促进审计与合规性。

时态表是什么?

时态表允许您将基于时间的状态信息与 DB2 管理的数据关联,并使之与应用程序逻辑保持无关。DB2 中的时态表功能允许跟踪数据更改(版本控制),支持自定义业务数据存储和操作(以及两者的结合)。

时态表分为两种类型:系统和应用程序。DBA 可以使用双时态表,同时利用两种类型的功能。

时态表能简化过去、现在和未来任意给定时间点的数据报告,因而有助于加强业务洞察。这种功能可提高开发人员的生产力(DB2 内的处理时间管理意味着更少的编码工作,更简单的编码意味着维护成本的降低),因此可降低成本。时态表也能减少合规性工作,支持更好地跟踪数据更改。时态表提供了基于标准的技术,能在整个企业的范围内实现一致性和出色的数据质量。时态表深度集成所有特性,包括分区、压缩和视图。

系统时态表

系统表支持以操作时间(即操作系统时间)为依据的基于时间的功能。系统时态表利用历史表,存储数据的历史版本。

mallcloud商城
mallcloud商城

mallcloud商城基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离vue的企业级微服务敏捷开发系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提

下载

您该如何实现系统时态表?首先,使用 SYSTEM_TIME 属性创建或更改一个基础表,包含以下三个具体生成列:

 行起始列:行数据成为当前数据的时间
 行结束列:行数据不再属于当前数据的时间
 事务起始 ID 列:影响该行的事务的起始执行时间。

接下来,创建一个完全相同的表,作为历史表。该表必须使用与基础表完全相同的布局。但您可以按照自己的需求配置历史表,例如分区、压缩或存储位置。

第三步是使用 Alter 语句将历史表与基础表相关联,并为基础表添加版本控制,即:ALTER TABLE policy_info ADD VERSIONING USE HISTORY TABLE hist_policy_info。
例如:

CREATE TABLE policy_info
(
policy_id CHAR(4) NOT NULL,
coverage INT NOT NULL,
sys_start TIMESTAMP(12) NOT NULL GENERATED ALWAYS AS ROW BEGIN,
sys_end TIMESTAMP(12) NOT NULL GENERATED ALWAYS AS ROW END,
ts_id TIMESTAMP(12) NOT NULL GENERATED ALWAYS AS
TRANSACTION START ID,
PERIOD SYSTEM_TIME (sys_start, sys_end)
) IN policy_space;
CREATE TABLE hist_policy_info
(
policy_id CHAR(4) NOT NULL,
coverage INT NOT NULL,
sys_start TIMESTAMP(12) NOT NULL,
sys_end TIMESTAMP(12) NOT NULL,
ts_id TIMESTAMP(12) NOT NULL
) IN hist_space;
ALTER TABLE policy_info ADD VERSIONING USE HISTORY TABLE hist_policy_info;

系统表函数

发生变化时,DB2 会自动将基础表中的行迁移到历史表,并根据需要更新三个时间列。基础表和历史表的所有管理都是自动、透明的,无需任何编码。编写查询时,仅需引用基础表,DB2 将根据日期范围,自动访问历史表。

系统时态表提供了多种收益:

 对于仅访问当前数据的应用程序,DB2 仅访问基础表,因此影响将降低。
 当前数据的联机加载、重组、索引创建和其他维护操作不会因历史表而减速。
 可以分别为基础表和历史表选择物理存储选项(例如,位置、压缩、分区和集群等)。
 基础表和历史表可以具有不同的索引和约束。
 基础表数据和历史表数据的恢复可以分别执行。

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

42

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

78

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

26

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.4万人学习

Rust 教程
Rust 教程

共28课时 | 4.5万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号