db2 系统表信息
|字号
DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。在 Windows 系统中,必须先(从普通命令窗口)运行 db2cmd 命令来启动 DB2 命令行环境。
脚本的优势在于可以重复执行。如果一个任务会被执行多次,或者被多人执行。那么将该任务编写成脚本会提高任务的执行效率和准确性。本文介绍的脚本都是一些在我们进行存储过程开发和调试中经常用到的。读者在后面会渐渐体会到脚本给我们带来的便利。
编写针对 DB2 的脚本,我们需要首先了解 DB2 为我们提供了哪些命令和信息。DB2 为我们提供了大量的命令例如连接数据库,执行一个 SQL 文件,获得表结构的信息等等。我们会在下面解释具体的脚本的同时对一些简单的 DB2 命令进行解释说明。同时,DB2 把数据库对象的很多信息都存储到了系统表中。熟悉这些系统表就能够通过 SQL 语句获得我们需要的信息。下面我们先来学习一下 DB2 系统表。
在 DB2 数据库被创建的时候,DB2 会创建一些系统表。这些系统表中记录了所有数据库对象的信息,表或视图的列的数据类型,约束的定义,对象的权限和对象之间的依赖关系等。这些系统表的模式为 SYSIBM,其表名以 SYS 作为前缀。例如: SYSTABLES、SYSVIEWS 等等。DB2 为这些系统表建立了相对应的只读视图。这些视图的模式是 SYSCAT,它们的内容是其相对应的系统表的全部或者部分内容。这些视图的名字没有 SYS 的前缀。例如:SYSCAT.TABLES 是 SYSIBM.SYSTABLES 的视图。
我们可以通过 LIST TABLES FOR SYSTEM
或 LIST TABLES FOR SCHEMA schemaname
命令查看所有的系统表和相关的视图信息。下面我们会介绍一些本文用到的系统表和视图。
SYSCAT.TABLES:数据库中对象的信息,包括 table,view,nickname 和 alias 的一些定义。详细说明见表 1。
表 1. SYSCAT.TABLES 视图的说明
VARCHAR(128) | 记录 schema 的名字 |
VARCHAR(128) | 记录数据库对象的名称。包括表、视图、别名等 |
CHAR(1) | 表示该数据库对象是表,视图还是别名 ('T'表示table; 'V'表示 view; 'N' 表示nickname; 'A' 表示 alias。) |
SMALLINT | 表或视图中列的个数 |
SYSCAT.VIEWS:视图的定义信息。详细说明见表 2。
表 2. SYSCAT.VIEWS 视图的说明
VARCHAR(128) | 视图的 Schema |
VARCHAR(128) | 视图名称 |
CHAR(1) | 视图是否只读:
|
CHAR(1) | 视图状态是否合法:
|
CLOB (64K) | 视图的源程序(DDL) |
SYSCAT.ROUTINES:DB2 UDF,系统方法(system-generated method),用户定义方法(user-defined method)和存储过程(SP)的定义。我们可以认为该视图包含了数据库中程序的定义。见表 3。
表 3. SYSCAT.ROUTINES 视图的说明
VARCHAR(128) | 记录程序的 schema |
VARCHAR(128) | 记录程序名称 |
CHAR(1) | 记录程序类型:
|
VARCHAR(128) | 程序实例的名称(可以指定,也可以由系统自动生成) |
CHAR(1) | 如果存储过程依赖的一些对象被删除或修改了,该存储过程必须要被重建
|
CLOB(1M) | 如果是用 SQL 编写的程序,该字段记录了其创建的 DDL |
表 4 所示的 SYSCAT.ROUTINEDEP 说明了 DB2 UDF与其他对象的依赖关系。
表 4. SYSCAT.ROUTINEDEP 视图的说明
VARCHAR(128) | 依赖于其他对象的 DB2 程序的 schema |
VARCHAR(128) | 依赖于其他对象的 DB2 程序的名称 |
CHAR(1) | 依赖对象的类型:
|
VARCHAR(128) | 被依赖的对象的 schema |
VARCHAR(128) | 被依赖的对象的名称 |
表 5 所示的 SYSCAT.COLUMNS 说明了表或视图的每一个列的信息。
表 5. SYSCAT.COLUMNS 视图的说明
VARCHAR(128) | 表或视图的 Schema |
VARCHAR(128) | 表或视图名称 |
VARCHAR(128) | 列名称 |
SMALLINT | 记录列在其表的主键的位置 |
表 6 所示的 SYSCAT.PACKAGEDEP 说明了 Pachage 与其他数据库对象的依赖关系。
表 6. SYSCAT.PACKAGEDEP 视图的说明
VARCHAR(128) | Package 的 schema |
VARCHAR(18) | Package 的名称 |
CHAR(1) | 依赖对象的类型:
|
VARCHAR(128) | 被依赖的对象的 schema |
VARCHAR(128) | 被依赖的对象的名称 |
表 7 所示的 SYSCAT.TABDEP 说明了视图或者固化视图和 DB2 对象之间的依赖关系。
表 7. SYSCAT.TABDEP 视图的说明
VARCHAR(128) | 视图或者固化视图的 schema |
VARCHAR(128) | 视图或者固化视图的名称 |
CHAR(1) | 视图的类型:
|
CHAR(1) | 依赖对象的类型:
|
相关推荐
db2系统表、视图说明,sysibm.systables,sysibm.syscolumns,syscat.tables,syscat.columns,我们可以通过 LIST TABLES FOR SYSTEM 或 LIST TABLES FOR SCHEMA schemaname 命令查看所有的系统表和相关的视图信息。...
DB2表空间可以分为系统管理空间和用户管理空间两种,系统管理空间用于存储系统数据,而用户管理空间用于存储用户数据。 二、DB2表空间不足的原因 DB2表空间不足可能是由于以下原因: 1. 表空间容量不足:当表空间...
DB2表空间可以是系统管理的,也可以是用户定义的。 为什么DB2表空间不足? DB2表空间不足可能是由于以下原因: 1. 数据库中的数据量增加,导致表空间使用量增加。 2. 索引、视图、存储过程等对象的增加,占用了更...
DB2系统临时表空间过大可能引发严重的性能问题,这在实际操作中表现为SQL语句执行时间显著增加。本文以某银行的DB2数据库系统为例,深入探讨了如何诊断和解决此类问题。 首先,当遇到系统响应变慢、ACTIVE SESSION...
IBM DB2 Universal Database(DB2 UDB)作为一款先进的数据库管理系统,提供了丰富的功能以确保数据的完整性和安全性。其中一个关键特性便是通过表和表空间的状态控制,实现对数据访问的管理和数据库完整性的保护。...
本文将深入探讨“DB2解决表死锁”这一主题,结合提供的资源“DB2解除表锁.doc”,我们将讨论死锁的基本概念、DB2中的死锁检测、死锁预防以及如何在遇到死锁时进行有效的解决。 首先,我们要理解什么是死锁。死锁是...
在数据库管理领域,DB2是IBM推出的一款关系型数据库管理系统,广泛应用于企业级的数据存储与管理。本主题聚焦于“db2分区表在线迁移”,这是一个关键的数据库操作,旨在确保业务连续性和数据安全性,同时最小化对...
在数据库管理中,DB2 是一个非常重要的关系型数据库管理系统,由 IBM 开发。当需要对 DB2 表进行操作,比如清空其中的所有数据时,有几种不同的 SQL 语句可以实现这一目标。以下是对标题和描述中涉及的知识点的详细...
此外,《DB2 SQL Reference》还提供了错误处理和异常情况的解决方案,以及如何正确解读和使用DB2系统表和管理命令的指南,对于日常的数据库运维工作具有重要的参考价值。 总之,DB2 SQL Reference是DB2用户不可或缺...
DB2 是一个关系数据库管理系统,能够高效地存储、管理和检索大量数据。在实际应用中,我们经常需要导出数据库表结构和数据,今天我们将讨论如何使用 DB2 导出数据库表结构和数据。 使用 db2cmd 打开 DB2 命令行 在...
本篇文章将详细介绍如何在AIX操作系统上对DB2的裸设备进行扩容,以及涉及的表空间扩展过程。 首先,我们需要理解表空间在DB2中的作用。表空间是DB2数据库中逻辑存储的容器,用于组织和管理数据库对象如表、索引等。...
DB2 是一个关系数据库管理系统,提供了多种方式来导出表结构和表数据。在本文中,我们将介绍如何使用 DB2 命令行工具来导出表结构和表数据。 一、DB2 命令行导出数据库全库表结构 使用 DB2 命令行工具,可以将...
在IT行业中,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,比如从IBM的DB2迁移到MySQL。这个过程涉及到数据的转换、结构的映射以及兼容性问题的解决。下面我们将详细探讨如何从DB2数据库将表导入到...
这里的`USING`子句指定了多个物理文件的位置,DB2系统会自动在这三个文件之间分配数据。 **删除SMS表空间命令**: ```sql DROP TABLESPACE ; ``` 删除SMS表空间的同时,DB2会自动删除相关的物理文件,无需手动干预...
在IBM DB2数据库管理系统中,为了应对误删表的情况,DB2提供了表空间级别的表恢复功能。这种功能允许用户在一定条件下恢复已被删除的表及其数据。默认情况下,在创建表空间时会开启已删除表的恢复选项。然而,出于...
### DB2表空间详解 #### 一、表空间概述 在DB2中,表空间是连接物理存储设备与逻辑对象(如表)的关键组件,它为数据库中的数据提供存储环境。表空间的设计与管理对数据库性能有着直接的影响,合理规划表空间能够...
在DB2数据库管理系统中,表空间是用于组织和存储数据的基本单位。表空间的设计与优化对提高数据库性能至关重要。按照不同的用途和管理方式,DB2中的表空间可以分为五类: 1. **目录表空间**:每个数据库中只有一个...
当遇到如DB2这样的数据库系统中的表损坏问题时,如何快速有效地恢复,成为了DBA(数据库管理员)和运维人员关注的重点。本文将详细阐述使用“db2look-move”方法进行DB2表损坏快速恢复的步骤与原理,帮助读者理解并...
24. 列出所有的系统表:list tables for system命令用于列出所有的系统表。 25. 显示当前活动数据库:list active databases命令用于显示当前活动数据库。 26. 查看命令选项:list command options命令用于查看...