通过oncheck命令来展示实际的Informix索引结构

读者理解 Informix 索引结构后,可以更好的设计 Informix 索引,较大的提升 Informix 数据库和 Informix 应用程序的性能。

在 Informix 中,可以通过索引来快速定位“需要使用的数据行”。那么一般的 Informix 索引是通过什么结构来实现“快速定位数据行”的目的呢?本文将通过 oncheck 命令来展示实际的 Informix 索引结构,为您揭晓这个问题的答案。

Informix 索引简介

在 Informix 中,一个6184.html">数据表里可能有很多数据行(row)。例如某连锁超市的“客户基本信息”数据表里有 7 百万个数据行(即 7 百万个客户的基本信息)。Informix 收到超市工作人员输入的“某个客户的客户号”后,需要快速的向超市工作人员返回“这个客户的姓名、邮箱、住址等信息”。如果 Informix 收到“某个客户的客户号”后,把“客户基本信息”数据表的 7 百万个数据行从前往后一行一行顺序扫描,那么 Informix 将无法快速返回结果。如何才能达到“快速返回结果”的目的呢?答案是使用 Informix 索引。Informix 索引就像是中文字典里的拼音目录。拼音目录里记录了每个拼音和对应的页码,Informix 索引里记录了每个特征值(例如每个客户的客户号)和对应的数据行地址。通过拼音目录可以快速的得到某个拼音对应的页码,通过 Informix 索引可以快速的得到某个特征值(例如某个客户的客户号)对应的数据行地址。

在 Informix 中一般的索引是通过 B+ 树这种数据结构来实现的。B+ 树是一种树结构,它的每个节点可以有多个分叉。B+ 树可以是 1 层或多层。在 B+ 树中,所有的叶节点都在同一层,即不会出现类似这样的情况:在一棵 B+ 树中,有的叶节点在第 2 层,有的叶节点在第 3 层。关于 B+ 树的详细叙述请参看 Wikipedia 上关于 B+ 树的内容。B+ 树的结构如图 1 所示。

图 1. 图 1. B+ 树的结构

图 1 中的 B+ 树一共有 3 层:第 1 层是根节点,第 2 层是分支节点,第 3 层是叶节点。节点里有多个节点项 (entry),每个节点项由键 (key) 和值 (">value) 组成。节点项的键一般为整数、字符串或“ ‘元素是整数或字符串’ 的集合”。在图 1 的节点中,节点项的键为整数。节点项的值 (value) 一般为指针。在非叶节点中,节点项的值指向子节点。在叶节点中,节点项的值为空指针或指向具体数据的指针。在图 1 的叶节点中,节点项的值指向数据行。一般情况下,每个节点还有两个指针,分别指向“前一个兄弟节点”和“后一个兄弟节点”。

Informix 索引对应的 B+ 树一般是 2 层、3 层或 4 层。

在 Informix 索引对应的 B+ 树中,1 个节点是 1 个页 (page)。

oncheck 命令的简介

在 Informix 中,oncheck 命令可以检查和打印数据对象。例如:

oncheck -cr 可以检查数据库保留页的正确性 oncheck -cD <databaseName>:<tableName> 可以检查数据的正确性 oncheck -cI <databaseName>:<tableName>#<indexName> 可以检查索引的正确性 oncheck -pe <dbsName> 可以打印某个 dbspace 中所有 extent 的分布情况 oncheck -pP <chunkNum> <start
PageNum> <numOfPages> 可以打印指定的数据页 oncheck -pT <databaseName>:<tableName> 可以打印“某个数据表以及其上的索引”的
磁盘使用情况

时间: 2025-01-26 20:25:43

通过oncheck命令来展示实际的Informix索引结构的相关文章

apt-get 和 apt-cache 命令实例展示

apt-get 和 apt-cache 命令实例展示 apt-get和apt-cache是Ubuntu Linux中的命令行下的包管理工具. apt-get的GUI版本是Synaptic包管理器.本篇中我们会展示apt-get和apt-cache命令的15个不同例子. 示例:1 列出所有可用包 linuxtechi@localhost:~$ apt-cache pkgnames account-plugin-yahoojp ceph-fuse dvd+rw-tools e3 gnome-comm

如何在Linux命令行中创建以及展示演示稿

如何在Linux命令行中创建以及展示演示稿 你在准备一场演讲的时候,脑海可能会先被图文并茂.形象华丽的演示图稿所占据.诚然,没有人会否认一份生动形象的演讲稿所带来的积极作用.然而,并非所有的演讲都需要TED Talk的质量.更多时候,演讲稿只为传达特定的信息. 而这个,使用文本信息足以完成.在这种情况下,你的时间可以更好的花在信息的搜集和核实上面,而不是在谷歌图片搜索(Google Image)上寻找好看的图片. 在Linux的世界里,有几个不同的方式供你选择来做演讲.比如带有大量多媒体展示.视

展示C代码覆盖率的gcovr工具简介及相关命令使用示例

(本人正在参加2015博客之星评选,诚邀你来投票,谢谢:http://vote.blog.csdn.net/blogstar2015/candidate?username=zhouzxi) 最近,因为要展示某项目的单元测试的代码覆盖率,我无意间在网上找到了gcovr工具.使用之后,觉得这个工具相当的不错,于是便写下这篇文章,可供相关的开发人员参考. 简而言之,gcovr是一个将单元测试中的代码覆盖率以多种方式(包括列表方式.XML文件方式.HTML网页方式等)展示出来的工具,目前最新的版本是3.

Linux命令行创建以及展示Mdp演示稿图文教程

在Linux的世界里,有几个不同的方式供你选择来做演讲.比如带有大量多媒体展示.视觉冲击效果极佳的Impress.js,专为LaTex用户提供的Beamer,等等.而如果你苦于寻找一种简单的方式来创建并且展示文本演示稿,mdp 就能帮你实现. 什么是Mdp? mdp是Linux下一款基于ncurses的命令行演示工具.我喜欢mdp在于它对markdown的支持,使得我很容易以熟悉的markdown格式来创建幻灯片.自然,它还可以很轻松地用HTML格式来发布幻灯片.另一个好处是它支持UTF-8字符

UNIX系统下informix自制开发工具构思介绍

unix             前     言     当前WINDODS 上的编程工具日新月异,推陈出新:然而因UNIX运用的局限性,其编程工具十分贫乏.在UNIX上要做画面.菜单.查询.输入,编程者往往要从底层入手,重复劳动,效率极低.笔者为了解决这个问题而尽点力,将本系统介绍给您,如您能读完本文,收获一定不少.                                    编者:王光红                    EMAIL:       wgh166@hotmail.

Informix日志说明

大家都知道informix是需要日志的,但各日志都做什么用,各有什么意义等等,我们在下面做一个探讨: 首先需要说明的是informix的日志有两种:一种是物理日志,用来存放数据的前映象:另一种是逻辑日志,用来存放所有事物的操作过程. 在初始化的配置中,物理日志和逻辑日志的不是存放在根的磁盘空间的.默认的大小物理日志2M,逻辑日志6个,每个日志文件2M.但在实际的生产环境中,这两个参数一般是需要调整的. 从informix的本身的建议来说,要求逻辑日志的大小一般是要求一天的业务量,逻辑日志滚一圈,

细化解析:Informix数据库的系统维护技巧

Informix是一种大型的数据库管理系统,具备先进的技术.性能和可靠性,在全球范围的各种应用中使用十分广泛,包括政府.金融保险.邮政电信.制造及零售等重要行业或领域.本文根据笔者在SCO Unix/Xenix上使用 Informix-4GL 和Informix-SQL的经验,简要介绍Informix系统维护中的几个较为特别的问题及其处理方法. 表文档的修复 Informix的数据库是指由若干张表所构成的集合,其中每一张表对应着两个文档,即数据文档(后缀为.dat)和索引文档(后缀为.idx).

命令行的艺术:linux bash命令大全详解

熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力.本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要.有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂.这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了. 这篇文章是 许多作者和译者 共同的成果. 这里的部分内容 首次 出现 于 Quora , 但已经迁移到了 Github,并由众多高手做出了许多改进. 如果你在本文中发现了错误或者存

《MySQL DBA修炼之道》——2.5 常用命令

2.5 常用命令 本节先介绍几个常用命令,如mysql.mysqladmin.mysqldump的简单用法.后续章节还会再详述这些命令的使用.2.5.1 使用mysql命令 首先,需要留意区分MySQL的大小写.标准的说法是,MySQL指MySQL服务器,mysql指客户端. 从Unix/Linux系统下发展出来的MySQL有着优良的设计,客户工具的所有选项都可以保存到一个"-/.my.cnf"的用户级配置文件里的[client]部分中,而且它把适用于MySQL的选项集中在了[MySQ