Informix Dynamic Server数据库分段存储

Informix Dynamic Server分段存储,也称之为分片存储,其原理是对数据表中的记录或索引有规则地分散存储在磁盘不同的区域,达到将数据存储在多个磁盘上,通过减少对磁盘I/O的竞争,来提高数据库的效率。与此相反的是基本存储原则,其鼓励将数据库表中的数据尽量连续地存放在一个存储设备上,在Informix Dynamic Server读出数据时,将数据批量读出,以提高数据库的效率。

分段存储主要是通过均衡磁盘 I/O,实现内部查询的并行操作、并行地扫描多个磁盘上的数据来提高查询效率,其使数据库性能的提高主要来自于I/O并行度的提高,而不是I/O性能的提高。实际上分段存储是对一些数据量较大的表在存储时提供的一个方法,用户可以选择分段存储也可以不选择分段存储。一个好的分段存储工具可以很好地提高查询效率。否则,不但数据库的查询效率得不到提高反而会降低。在实际应用中,Informix Dynamic Server并不会在意数据放在哪个具体的物理盘上,而是具体到相应的dbspace上,因为Informix Dynamic Server查询可并发执行的最小单位就是dbspace。

分段存储的原理

分段存储可以分为轮转法和基于表达式的方法。轮转法是使用Informix Dynamic Server内部定义的规则将表分段存储。在建表时,可以指定对数据的存储采用轮转法,其语法是:

CREATE TABLE tablename (aa integer …) FRAGMENT BY ROUND ROBIN IN dbspace1,dbspace2, ……dbspaceN。
基于表达式的方法是使用用户定义的规则将表或索引分段存储在不同的dbspace中。基于表达式的方法又可以分为范围规则和绝对规则,范围规则是用SQL的关系(>、<、>=、<=)或逻辑操作(and、or)定义表的数据分片的边界,一般用一个字段,也可以根据需要用2个或多个字段。范围规则的语法是:
CREATE TABLE tablename (a1integer....)
FRAGMENT BY EXPRESSION
a1 <= 0 IN dbspace1,
a1 >= 0 AND a1 <= 100000 IN dbspace2,
REMAINDER IN dbspace3;

绝对规则是用关系操作符(>、<、>=、<=)与逻辑操作符(and、or)对规则进行定义,可以是表中的多个字段参与分段。绝对规则的语法是:

CREATE TABLE tablename (a1 integer....)
FRAGMENT BY EXAMPLE
a1 = 100000 or a1=200000 IN dbspace1,
a1 = 300000 or a1=400000 IN dbspace2,
REMAIDER IN dbspace3;

由于轮转法采用的是Informix Dynamic Server内部定义的规则,所以在使用的过程中,比较简单和方便。基于表达式的方法,使用的是用户定义的规则,为了提高查询效率,就要减轻CPU的负荷,均衡磁盘的I/O操作。因此,用户在使用表达式定义分段规则时,应该遵循以下原则:

1.要使表达式尽可能的简单明了,避免在表达式中使用数据类型的转换,以便在informix Dynamic Server写入或读出数据时尽可能快地解析表达式;

2.为了减少表达式的计算量,在表达式中应该把限制性最强的部分放在前面;

3.在分段表达式中要避免有经常更新的字段,使得分段存储的数据有一个相对固定的位置;

4.对所存储的数据、查询语句进行分析,明确查询输出的结果,使被频繁访问的数据能均衡地分布在多个磁盘上。

分段存储设计的目标是为了给用户提供更好的响应时间,更好的并发性,更好而且更快的备份和恢复,还具有较好的可用性。但是分段存储无形中给数据库增加了管理成本,而且数据库的转移也不太方便。为了达到这样地目标,在对数据库进行分段设计时,就要考虑主机的硬件特性,如CPU个数、速度、磁盘的数目、磁盘控制器的数目、每个磁盘控制器连接的磁盘数目等,及操作系统的性能。在硬件特性和操作系统性能满足分段存储时,可以对一些数据存储量大的表进行分段存储,这样其性能将会有所提高。

时间: 2024-11-03 21:00:51

Informix Dynamic Server数据库分段存储的相关文章

Informix Dynamic Server数据压缩和存储优化

IDS存储优化如何工作 IDS存储优化会考虑整行和其中的所有列(除了作为字节串存储在行之外的列数据,比如BLOB数据).然后,IDS寻找重复出现的模式,把这些模式作为符号存储在压缩词典中,见图1. 图1. 作为符号存储在词典中的模式 在创建词典之后,IDS在词典存储库中存储它. 表的存储优化过程涉及四个步骤: 创建压缩词典. 压缩表或表片段中行中的数据. 重新组合表或片段行. 回收空闲的空间. 下面几节详细讨论每个步骤. 创建压缩词典 为了创建词典,IDS从现有的表中取样一些行并创建一个符号词典

Informix Dynamic Server数据批量读出

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   Informix Dynamic Server分段 存储 ,也称之为分片存储,其原理是对数据表中的记录或索引有规则地分散存储在磁盘不同的区域,达到将数据存储在多个磁盘上,通过减少对磁盘I/O的竞争,来提高数据库的效率.与此相反的是基本存储原则,其鼓励将数据库表中的数据尽量连续地存放在一个存储设备上,在Informix Dynamic Server读出数据时,将数

通过UPDATE STATISTICS充分利用Informix Dynamic Server优化器

通过 IBM Informix Dynamic Server(IDS)中的 UPDATE STATISTICS 语句充分利用数据库优化器.阅读本文对这个 SQL 语句的简述,了解如何用它解决各种不同的问题.发现更新统计信息的重要性,并了解如何收集统计信息.最后,浏览本文最后的 FAQ 小节,寻找您对这个重要的 SQL 语句所存疑问的答案. 简介 UPDATE STATISTICS 是一个专用 Informix SQL 命令,它通过分析数据并将该信息存储在系统编目中,更新关于每个表以及它的列的实际

使用Informix Dynamic Server的复制技术

IBM Informix Dynamic Server(IDS)一直以来都是一种具备强大复制技术的数据库.企业复制(Enterprise Replication,ER)和高可用性数据复制(High-Availability Data Replication,HDR)多年来为客户提供了可靠的服务.在较新的 IDS 版本 11.1 以及目前的 11.5 中,又添加了一些新的技术:远程独立(Remote Standalone)备用服务器和共享磁盘(Shared-Disk)备用服务器.本文将通过使用这些

使用基于Informix Dynamic Server的Server Studio JE

简介 Server Studio JE Server Studio JE (SSJE)是IBM Informix Dynamic Server (IDS)的独立的.基于Java的集成开发环境.Server Studio 帮助您管理数据库任务,比如存储管理.性能调优.进程和事件响应管理.另外,它还可以最小化易错.耗时.命令行驱动的管理任务.集成的图形化控制台将所有IDS数据库服务器的开发.管理和维护活动集于一体,为您提供一个集中控制点,不管数据服务器的位置在哪里,在您管理时都可以获得最大的可用性和

使用Rational Data Architect和Informix Dynamic Server进行数据建模

开始之前 本节解释本教程讲授什么内容,以及如何从中获得最大的收益. 关于本教程 本教程介绍 RDA 中的各种特性,讲解如何对IDS使用RDA.学习如何通过反向工程从数据库生成物理模型.把业务需求转换为(逻辑和物理)模型以及关联领域元素,从而帮助识别IDS数据库中的重要和机密信息. 目标 在本教程中,学习如何: 连接 IDS 服务器 通过反向工程从现有的数据库生成新的物理模型 从逻辑模型创建物理数据库模式 修改现有的逻辑模型并把修改应用于数据库 通过连接领域模型和数据库,保持数据的一致性和质量 先

将Mac OS X上的Informix ODBC应用程序与Informix Dynamic Server集成1

简介 最近发布的针对 Mac OS X 平台的 32 位 Informix Client-SDK 提供改进的 Open Database Connectivity (ODBC) 功能,因此能够无缝地把感知 ODBC 的应用程序与 Informix Dynamic Server (IDS) 集成起来. 在 Mac OS X 上以两种形式提供 ODBC 驱动程序,动态库和应用程序插件.通过应用程序直接调用 ODBC API 的开发人员可以使用动态库,而 Apple 的 ODBC 数据源管理实用程序使

SQL Server数据库中存储引擎深入探讨

本文是存储引擎结构的高级指南,推荐了配置参数,SQL Server的最佳硬件以及通过文件和文件组存储大量数据的创新方法.本文也概述了SQL Server 7.0存储引擎的新的动态特性. 概述 巧妙的规划是实现关系型数据库管理系统(RDBMS)的基础.要满足对更多存储容量的要求,对更快地取得信息的要求,它是唯一方法.想从Microsoft SQL Server 7.0中获得最多,要求组织机构了解它的关键部件--存储引擎--内在和外在. 介绍 十年前,数据库应用程序的开发要用数月或数年并不罕见.那时

使用JTA处理DB2 UDB和Informix Dynamic Server中的分布式事务

简介 在现代企业环境中,用多个数据库和多种品牌的数据库来存储公司数据已经不足为奇.最终,这些数据将会在不同数据库外进行比较.合并. 如果您有一个异构的数据库环境,并且计划将不同数据库中的数据收集到一个单独的应用程序中,那么您就应该可以使用传统技术执行该任务.在使用Java时,您将通过JDBC处理所有的数据库操作.清单1 展示了在Java应用程序中如何连接DB2 UDB和IDS的代码片断. 清单1. 使用JDBC建立到不同数据库的连接 1 try { // load JDBC drivers 2