Informix动态服务器表分片策略的计划和调整

“数据分片”允许在表一级对数据存储进行控制。“表分片”是INFORMIX数据库的一个特征。用户可以对表中的记录或索引进行分组,并且存储在不同的位置,这样可以将数据存储到多个磁盘上,从而减少对磁盘I/O的竞争。数据分片的方案以及分片数据所存放的一组dbspace构成了“分片策略”。数据分片有两种基本类型:基于轮转分片“和 ”基于表达式分片”,对于“基于轮转法分片”,正如其名字一样,数据是根据轮转法方式存入表中的。“基于表达式分片”则根据表中的一个或多个字段对分片的规则进行定义。一般在预知查询条件时采用这种方式,从而避免查询中对某些分片的扫描。

对“表中的数据”和"索引"进行分片主要是为了提高应程序的效率,由于INFORMIX动态服务器可以并行地扫描多个磁盘上的数据,从而实现内部查询的并行操作,因此采用”分片“技术可以提高查询效率。内部查询的并行化有助于减少对一个复杂查询的响应时间。”表分片“技术与并行数据查询(PDQ)特征联系在一起使用,这样INFORMIX服务器可以分配多条线索。从所有数据分片上并行地选取数据。此外,还可以仅仅对包含“目标数据”的数据分片进行扫描。从而大幅度地提高了整个系统效率。“DATASKIP"这一个特征还允许用户跳过那些出现故障或者不包含“目标数据”的数据分片,当某些数据所在的盘出现故障时,就可以体现出高度的“数据可获得性” 我们通过大量的数据分片将数据分布在许多的磁盘上,也实现了外部查询的并行操作。这样在大量用户对同一个表进行访问时,可以减少I/O的竞争,每秒钟完成的事务数(系统吞吐能力)也得到了提高。“表分片”技术还通过对存储在dbspace上的数据分片进行备份/恢复操作。

分片方案

在“创建表”和“创建索引”时候均可以用到分片方案。索引可以附加在与其相关联的数据上,或与数据分离存放。一个索引如果出现在对表数据的分片方案中,就可以认为索引已经附加在数据上。另外一个方面,如果索引的分片方案与数据不同,就称为索引与数据分离。这种情况下,索引存放在指定的dbspace上。

“数据分片”方式主要有两种:“基于轮转法”和“基于表达式”的方案,

转法方案

轮转法(PR)所使用的分片规则是系统内部定义的。使用这种方案,新追加的记录被存放在轮转法方式指定的下一个数据分片。记录所插入的第一个数据分片也是随机选定,例如,下列语法用于创建一个名为xyz的表:

CREATE TABLE xyz FRAGMENT BY ROUND ROBIN 
IN dbspace1,dbspace2......dbspaceN

INFORMIX不支持用轮转法方式创建索引,因为这样会降低系统性能。轮转法方案的优点在于各数据分片上数据量是比较均匀的,对记录进行更新时,并不需要对记录进行转移。然而轮转法有一个缺陷,在进行一个查询时,要扫描所有的数据分片 。因此,轮转法方案不支持DATASKIP,不允许INFORMIX动态服务器越过某个数据分片。如果不支持DATASKIP,同时又有一个数据分片出现错误,那么整个查询将会失败,因为不能确定出现故障的数据分片上是否有符合条件的数据记录存在。轮转法方案适用的情况是:用户需要快速加载数据,用户预先不知道数据访问的方式。用户的数据经常更新,或者是用户对于数据分布方式未知。

“基于表达式”的分片方式

对于“基于表达式的分片方案“,用户可以用下面两种规则对数据进行分片”

◆范围规则

◆绝对规则

范围规则

范围规则用SQL的关系或逻辑操作定义表的数据分片的边界。范围规则可以包含关系操作符,比如 >;,<,>;=,<=,还可以包含一些逻辑操作符,比如AND。范围规则最好根据表的某一个字段进行分片,但也可以根据两个或者多个字段进行分片。下面的分片实例运行效率并不很高,因为向表中插入一行时候需要进行太多的运算。所有不符合表达式条件的记录将 存放在REMAINDER dbspace中。基于“范围表达式”的分片方案可以确保只对包含目标数据的数据分片进行扫描。

下面是一个采用“基于范围表达式分片方案”创建表的例子:

CREATE TABLE xyz (aa integer....)
FRAGMENT BY EXPRESSION
aa<=100 IN dbspace1
aa>;1000 AND aa<2000 IN dbspace2
REMAINDER IN dbspace3

时间: 2025-01-01 09:14:09

Informix动态服务器表分片策略的计划和调整的相关文章

Informix动态服务器里面几个关键技术

Informix动态服务器的核心体系结构的设计从根本上就是为了提供内置的多线索和并行处理能力. 多线索 在数据库服务器中,Informix动态服务器使用了一个可调节的数据库服务器进程池,称为'虚处理器',用来对用户的请求进行规划和管理.用户请求是通过一种称为'线索'的轻巧的机制来表达的,线索是一个单一的连贯的控制流,用来表达数据库服务器进程中的一个独立的任务. 当一个线索在等待资源时,虚处理器可以处理其它的线索,由于提供了这样的灵活性,只需少量的操作系统进程就可以对大量的用户进行管理,因为每一个

配置Informix动态服务器里面CPU虚处理器

在动态服务器中,CPUVP(cpu虚拟处理器)是多线索的进程,它一直在处理器上运行除非发生以下的情况: 1.CPUVP没有任务可以做,例如就绪队列中没有等待执行的线索. 2.操作系统强迫CPUVP让出CPU给其它的进程使用. 为了优化吞吐量考虑,需要将NUMCPUVPS设置为能够正常处理任务的最小的一个数,这个数目应该小于或者等于系统中的CPU数目,建议不要将CPUVP的数目设置大于可用的CPU数目,如果CPUVP的数目不能满足要求,这就表示需要提高CPU的性能来解决问题.只有存在另外的CPU,

Informix动态服务器onstat选项

Onstat-D INFORMIX-OnLineVersion7.22.UC1--On-Line--Up00:00:38--423064Kbytes Dbspaces addressnumberflagsfchunknchunksflagsownername ad5c1001111Ninformixrootdbs ad5dc282121Ninformixdbs7 ad5dc983131Ninformixdbs8 3activ

Informix OnLine动态服务器运行模式管理

管理INFORMIX-OnLine动态服务器的操作模式 1. OnLine的操作模式 off-Line(离线模式) Quiescent(静态模式) On_Line(联机模式) Shutdown(关闭模式) Recovery(恢复模式) OnLine系统有以下几种工作模式 脱机模式: OnLine没有运行,共享内存没有分配 初始化模式: 一种过渡模式,发生在OnLine进行初始化,脱机模式到静态模式转换过程中. 静态模式: oninit进程正在运行,共享内存资源已经分配,但是系统不允许数据库用户对

Informix Online数据库的查询优化策略

Informix-Online 动态服务器(IDS,Informix-Online Dynamic Server)作为Informix数据库产品技术的核心,以其动态可伸缩体系结构,高效的并行处理能力.共享内存技术及易管理性等特点,将硬件资源发挥得淋漓尽致.当前IDS V7正广泛地应用于我国金融.邮政.电信等行业的关键系统中,随着应用的不断深入,数据的积累,查询的复杂化,查询速度会变慢,致使响应时间过长.许多用户将其归结为硬件的原因,于是升级改造,或重新投资,数据库的调优并没有引起足够的重视.这其

学习动态性能表 第三篇-(1)-v$sql

  学习动态性能表 第三篇-(1)-v$sql  V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息. 例1: 这里介绍以下child cursor user A: select * from tbl user B: select * from tbl 大家认为这两条语句是不是一样的啊,可能会有很多人会说是一样的,但我告诉你不一定,那为什

移动监视IBM Informix数据库服务器

本文还将介绍如何设置 Mobile OAT,如何将它连接到您常规的 OpenAdmin Tool for Informix 安装,并给出一些在使用 Mobile OAT 时建议采用的安全最佳实践. 如果曾经希望从移动设备上监视您的 IBM Informix 数据库服务器,那么这种等待可以结束了.IBM Mobile OpenAdmin Tool for Informix 现在可免费用于 http://www.aliyun.com/zixun/aggregation/5541.html">A

学习动态性能表 第七篇--V$PROCESS

  学习动态性能表 第七篇--V$PROCESS  本视图包含当前系统oracle运行的所有进程信息.常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系.在某些情况下非常有用: 1.         如果数据库瓶颈是系统资源(如:cpu,内存),并且占用资源最多的用户总是停留在某几个服务进程,那么进行如下诸项: l         找出资源进程 l         找出它们的session,你必须将进程与会话联系起来. l         找出为什么sessio

学习动态性能表 第十五篇--V$ROLLSTAT

  学习动态性能表 第15篇--V$ROLLSTAT  本视图自启动即保持并记录各回滚段统计项.在学习本视图之前,我们先来了解一下回滚段(rollback segment)的相关概念: 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息. 回滚段的作用 1.事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户