使用 Informix 系统目录(1)
来源: 作者: 出处:综艺读书 2005-11-29·Informix入门之---SQL函数整理
·Informix-SPL(过程)语法详解
·我找到的INFORMIX 培训教材
·Informix SQL语句详解(1)
·Informix 高级培训教材(三)
·INFORMIX ONLINE 7.x for sco 安装步骤
·Informix7.30的安装及管理
·INFORMIX SQL技巧
·Informix数据库软件开发方法与工具
针对 stores_demo 数据库中的 sysdistrib 表运行该查询,我们将看到:
| tabname | colname | grantor | grantee | colauth |
| Sysdistrib | tabid | informix | public | s-- |
| Sysdistrib | colno | informix | public | s-- |
| Sysdistrib | seqno | informix | public | s-- |
| Sysdistrib | constructed | informix | public | s-- |
| Sysdistrib | mode | informix | public | s-- |
| Sysdistrib | resolution | informix | public | s-- |
| Sysdistrib | confidence | informix | public | s-- |
| Sysdistrib | encdat | |||
| Sysdistrib | type | informix | public | s-- |
ublic 仅被授予了选择任何列的权限。没有为 encdat 列指定任何许可权。colauth 可能会在第二个位置包含“u”(表示更新特权),并且/或者在第三个位置包含“r”(表示引用特权)。
存储过程
最好使用 dbschema 抽取存储过程。但是,在用来定义存储过程的结构中,还有一些重要的信息。
过程本身是在 sysprocedures 表中描述的。过程的主体(文本形式和已编译形式)存储在 sysprocbody表中。
因此,可以用如下语句访问存储过程的文本:
|
该过程的优化方案存储在 sysprocplan 中。在创建过程时创建该方案,而且每当执行 update statistics for procedure <procedure> 时则会更新该方案。因为存储过程所用的表的内容可能会随时间变化而更改,所以定期地更新这个优化方案是明智的。sysprocplan 表中有一个名为 created的列,它表明方案的最近一次更新时间。用于过程的更新统计信息例程可能会从选择过程的名称开始,这些过程的统计信息应当进行更新:
|
ysprocauth 维护着针对过程的许可权。对于确定谁有权访问某个过程,这可能很有用。请记住,过程是用创建该过程的用户的许可权运行的。
引用完整性和其它链接
引用完整性的问题之一是:在重新组织关系中的某个表之前,我们可能需要删除或禁用某个外键约束。附录中的 depend.sh 脚本将有助于我们对这方面的理解。
ysconstraints 表拥有数据库中每个约束的纪录。每种约束都有不同的类型(constrtype):
- C
- 检查(Check)
- P
- 主键(Primary key)
- R
- 引用(外键)(Reference,Foreign Key)
- U
- 唯一性(Unique)
- N
- 非空(Not Null)
通过 sysreferences 表,这些约束又将源表和引用表联系到一起(用于引用键)。
|
这会显示第一个表,以及引用约束和被引用的表。
我们可能还希望将对象状态附加到上述查询,这样就可以确定是否禁用了某个约束。此处, sysobjstate 表会帮助我们实现这一点。它按名称跟踪约束、触发器和索引。要抽取该信息,我们可以将查询更改为:
|
syschecks表也很重要,它标识了检查约束。它有一个匹配的表 syscoldepend,该表标识了从属表和列。这里有一个有用的查询:
|
对我们友好的 stores 数据库进行查询,产生了如下结果:
| Constrname | c104_15 |
| Constrtype | C |
| Tabname | items |
| Colname | quantity |
| Checktext | (quantity >= 1) |
这表明对于 items 表中的 quantity 列有检查约束(quantity >=1)。约束名可以任取。
结束语
系统目录不仅对于数据仓库的元数据需求或逆向工程需求而言是有用的帮手,而且对于数据库的日常维护也是如此。还有其它几个系统目录以及 sysutil 和 sysmaster 数据库,它们恰好是另一篇文章所讨论的主题。这些目录和数据库的数量和内容都随着产品的发展而发展,尽管原始目录仍然存在着。当我们确定数据库中的元数据需求时,应该检查这些目录 — 也许我们所需要的东西已经在那里了。
附录
也可以从下列地址下载本文中所讨论代码的电子版本:
| 4gl 函数(dbdiff2) | http://www.iiug.org/software/index_DBA.html |
| analyse_idx | http://www.iiug.org/software/index_DBA.html |
| findcol 和 depend.sh | http://www.artentech.com/downloads.htm |
这个附录中复制了这些代码,以提供进一步的示例。
|
·系统安全设置 (18678篇文章)
·系统安装手册 (16366篇文章)
·系统备份专题 (13499篇文章)
·informix (193篇文章)
·系统维护手册 (13037篇文章)
·开发优质高效的Informix数据库应用程序(4) 11-17
·开发优质高效的Informix数据库应用程序(3) 11-17
·开发优质高效的Informix数据库应用程序(2) 11-17
·Informix TRAIN 文档详解(5) 11-17
·Informix TRAIN 文档详解(4) 11-17
·Informix TRAIN 文档详解(3) 11-17
·Informix TRAIN 文档详解(2) 11-17
·Informix的监控和管理命令(2) 11-17
·Informix 5的安装及初始配置(2) 11-17
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |




