`

理解Sybase ASE数据库中的索引

 
阅读更多

一、基本概念

Sybase ASE中主要采用的B树索引。但是出于实际应用和性能方面的考虑,它的索引又进行了细分。B树也只是一个统称。

从大的方向分,可以分为聚簇索引(cluster index)和非聚簇索引(non-cluster index)。

聚簇索引:主要要求各个数据页中数据的存放顺序与键值的存放顺序严格一致,而各数据页呢,以键值顺序链接而成即可。各级的索引页实际上也是按照键值顺序链接而成。基于这样的要求,一张表最多能只能搞一个聚簇索引。

非聚簇索引:数据的存放顺序与键值顺序没什么关系。索引页与数据页之间关联是行级别的。即索引的页子节点中的每一项的键值都对应着行的键值,同时存储着对应于该键值的行地址。从这方向看,它比聚簇索引要多一级索引访问。回想一下,它与B-树索引是不是有相似。

从锁定方案来分,ASE中的表可以分为APL锁表和DOL锁表。

APL锁表:要求锁定索引页的同时,对应的数据页也一同锁定。数据页上的地址链以双向链表的形式出现。

APL锁表的聚簇索引如下图:

(图1: APL锁表的聚簇索引)

APL锁表的非聚簇索引如图2所示:

APL表的非聚簇索引示例

图2: APL锁表的非聚簇索引

DOL锁表:只要求锁定数据页或者数据行。它只是在索引页上有双向链表。数据页上则没有这东东。它使用行ID来存储实际的行地址[注:由(页号,行号)组合行成]。

从我个人理解来看,所谓聚簇索引,本质上就是一种B+树(详见数据结构)。B+树的叶节点就要求是数据本身,并且叶节点之间相互有序链接。只不过,对于DOL锁表的聚簇索引来讲,有了一点变化,它的叶节点只是数据的键值,它多了一个指向实际数据行的行地址(数据页号,行号)。加上DOL锁表的物理存储方式很怪异,没有双向链表。

DOL锁表的聚簇索引示例,如图3所示:

DOL锁表的聚簇索引示例

图3: DOL锁表的聚簇索引

DOL锁表的非聚簇索引如图4所示:

DOL锁表的非聚簇索引

图4: DOL锁表的非聚簇索引

还有一个概念,堆表:它指的就是没有聚簇索引的表,插入数据时,就直接插入到最后一页,直至页满,分配新页,变为最后一页这种方式。

二、数据更新对索引的影响

1. 插入数据

对于APL表:

如果是聚簇索引,它将按照索引的顺序去数据页或索引页调整各行。中间可能涉及到多次页分裂;如果只是普通堆表,那就会在最后一页的最后一个位置放置新行(注意,这个插入操作会锁定该页,多个并发操作都锁定该页什么效果,很容易产生冲突,降低效率,同时只能有一个事务进行插入啊)

对于DOL表:

因没有位置索引,它可以把新行增加到指定的插入页中。即先找到插入页的页号,然后放进去。只要数据不是位于相同的数据页,插入效率应该还是很高的。

2. 删除数据:

APL表:

  数据页或叶子页的最后一行被删时,该页也会从页链中删除,并在分配页上标为“可用”。同时,当位于页中的行(索引行、记录行)被删时,位于其后的数据行就会依次上调,以确保剩余空间总是位于该页的最后面。总之,一次删除操作的调整动作可能非常多。

DOL表:

只是逻辑上的将行标识为已删除,但实际上并没有物理删除(有点类似于回收站空间的味道,随着时间往前推移,这种空间会很多,最终需要使用reorg命令来进行重整)如果空间足够,带有位置索引的表会将新行增加到合适的页中,如果空间不足,只好将其放到最靠近的可用页中。

三、索引的选择:

数据的并发插入、更新、删除,可能使用DOL锁会好一些,引起的冲突比APL锁要少。

可是对于查询来讲,如果是使用范围查询或者排序之类的查询,聚簇索引明显好于非聚簇索引。而APL聚簇索引比DOL聚簇索引似乎少了一次索引级访问。

<script type="text/javascript"><!-- google_ad_client = "ca-pub-7104628658411459"; /* wide1 */ google_ad_slot = "8564482570"; google_ad_width = 728; google_ad_height = 90; //--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
分享到:
评论

相关推荐

    Sybase ASE数据库性能调优.pdf

    ### Sybase ASE数据库性能调优知识点详解 #### 一、概览 - **标题与描述**: “Sybase ASE数据库性能调优”旨在介绍如何优化Sybase Adaptive Server Enterprise (ASE) 数据库系统的性能,以实现更高效的数据管理和...

    Sybase ASE参考手册(中文版,全4卷)

    **Sybase ASE参考手册概述** Sybase Adaptive Server Enterprise...通过这四卷全面的参考手册,读者将能够深入理解Sybase ASE的功能、特性和最佳实践,从而更好地管理和优化数据库系统,解决实际工作中的各种挑战。

    SYBASE_ASE 15.7.0 for windows 64bit 客户端

    - **高性能**:SYBASE_ASE 15.7.0通过优化查询执行计划、增强索引结构等方式显著提升了数据库的处理能力。 - **高可用性**:支持多种容灾方案,如热备份、镜像复制、日志复制等技术,确保数据库在任何情况下都能提供...

    Sybase ASE v12.5 系统管理指南

    该指南旨在帮助IT专业人员理解和掌握ASE数据库系统的运维与优化,从而确保系统的高效、稳定运行。 ASE,即Sybase Adaptive Server Enterprise,是一款高性能的关系型数据库管理系统,广泛应用于企业级数据存储和...

    sybase+ase+administration+guide+15.7

    《Sybase ASE Administration Guide 15.7》是针对Adaptive Server Enterprise 15.7版本的一份详尽系统管理指南,旨在帮助管理员理解和掌握Sybase ASE数据库服务器的管理和优化。该指南分为两卷,分别为Volume 1和...

    sybase ase 15 操作指南

    Sybase Adaptive Server Enterprise (ASE) 15 是一款高性能的企业级数据库管理系统,它提供了强大的数据处理能力和高度可靠的安全机制。本指南主要针对 Sybase ASE 15.0.3 版本在 Linux 平台上的安装与配置进行详细...

    sybase ASE sql expert

    总的来说,Sybase ASE SQL Expert是数据库管理员和开发人员的强大助手,通过其专业而全面的功能,可以有效地管理和优化Sybase ASE数据库,提升系统的稳定性和性能。使用这个工具,能够帮助企业提高数据处理效率,...

    SybaseASE、IQ文档

    - **SybaseASE15_install_ZHS.pdf**:ASE 15的中文安装指南,详细说明了安装和配置ASE的步骤。 通过这些文档,你可以深入了解Sybase ASE和IQ的使用、管理和优化,无论是安装过程还是日常运维,都能提供宝贵的指导。...

    Sybase ASE快速参考手册

    6. **系统数据库**:Sybase ASE的关键系统数据库包括`master`(存储服务器配置信息)、`model`(作为新数据库模板)、`tempdb`(临时工作区)等,它们对服务器的正常运行至关重要。 7. **数据库用户**:不同于登录...

    专题资料(2021-2022年)ASE 数据库服务器维护手册sybase公司.doc

    ASE 数据库服务器维护手册是针对Sybase公司的ASE(Adaptive Server Enterprise)数据库系统的一...通过对ASE数据库服务器的深入理解和实践,管理员可以确保系统的稳定运行,提升服务质量和用户体验,同时降低故障风险。

    Oracle向Sybase ASE迁移指南

    - **数据一致性检查**:对比源Oracle和目标Sybase ASE数据库中的数据,确保没有数据丢失或损坏。 - **功能测试**:执行一系列的功能测试来验证所有业务逻辑和功能是否仍然正确无误。 - **性能基准测试**:通过模拟...

    MySQL向Sybase ASE迁移指南

    - **代码调整**:修改应用代码中的数据库访问层,使其兼容Sybase ASE。 - **重写脚本**:对于依赖特定于MySQL语法的脚本,需要进行重写或调整。 - **测试**:全面测试调整后的应用程序,确保其功能完整且性能达标。 ...

    SYBASE 数据库ASE15.5管理指南

    ### SYBASE 数据库ASE15.5管理指南 #### 系统管理基础知识 **系统管理概述** 本章节主要介绍Adaptive Server Enterprise (ASE) 15.5版本中系统管理员的基本职责及其执行的关键任务。 ##### AdaptiveServer管理...

    Sybase ASE快速参考手册.pdf

    2.45 如何把表、索引等数据库对象的定义从数据库中导出来? 38 2.46 如何把整个数据库中所有用户表的数据全部导出来? 39 2.47 如何执行快速bcp操作? 39 2.48 如何查看当前数据库中的进程信息? 39 2.49如何...

    Sybase ASE 12.5 Performance and Tuning

    - **Sybase ASE 12.5简介**:首先介绍Sybase ASE 12.5的基本概念和技术特点,包括其在企业级应用中的优势。 - **性能监控**:介绍如何有效地监控Sybase ASE 12.5的性能指标,包括CPU使用率、内存消耗等,并提供了...

    sybase ase15系统管理第一卷(2)

    《Sybase ASE 15 系统管理第一卷(2)》是一份深入探讨Sybase Adaptive Server Enterprise(ASE)15版本系统管理的中文文档,旨在帮助IT专业人员理解和掌握ASE 15的关键管理和运维技巧。ASE是Sybase公司推出的高性能...

    SYBASE_12.0数据库维护快速参考手册

    1. 安装指导 3 1.1 ASE安装一般指导 3 1.2 ASE11.9.2简易安装...3.3.9 Replication Server 12.0如何支持字符集为eucgb的ASE数据库? 89 4. SYBASE培训服务 91 4.1 SYBASE培训概述 91 4.2 SYBASE主要数据库课程介绍 92

    sybase11.9.2中文版英文版集合.rar

    1. **Sybase ASE(Adaptive Server Enterprise)**:Sybase ASE是Sybase公司的旗舰产品,是一款高性能、高可用性的关系型数据库管理系统。它支持SQL标准,提供强大的事务处理能力,并具备优秀的数据安全性。 2. **...

Global site tag (gtag.js) - Google Analytics