热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

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

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 内的处理时间管理意味着更少的编码工作,更简单的编码意味着维护成本的降低),因此可降低成本。时态表也能减少合规性工作,支持更好地跟踪数据更改。时态表提供了基于标准的技术,能在整个企业的范围内实现一致性和出色的数据质量。时态表深度集成所有特性,包括分区、压缩和视图。

系统时态表

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

您该如何实现系统时态表?首先,使用 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 仅访问基础表,因此影响将降低。
 当前数据的联机加载、重组、索引创建和其他维护操作不会因历史表而减速。
 可以分别为基础表和历史表选择物理存储选项(例如,位置、压缩、分区和集群等)。
 基础表和历史表可以具有不同的索引和约束。
 基础表数据和历史表数据的恢复可以分别执行。

推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 电脑公司win7剪切板位置及使用方法
    本文介绍了电脑公司win7剪切板的位置和使用方法。剪切板一般位于c:\windows\system32目录,程序名为clipbrd.exe。通过在搜索栏中输入cmd打开命令提示符窗口,并输入clip /?即可调用剪贴板查看器。赶紧来试试看吧!更多精彩文章请关注本站。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • win10系统搭建Java开发环境的操作方法
    本文介绍了win10系统搭建Java开发环境的详细操作方法,包括下载Windows10系统和Java SE,安装Java开发环境,设置变量等步骤。操作简单,只需按照指导进行即可。 ... [详细]
author-avatar
shyaiqq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有