Informix数据库培训教程下Word格式.docx

上传人:b****8 文档编号:22250716 上传时间:2023-02-03 格式:DOCX 页数:57 大小:56.62KB
下载 相关 举报
Informix数据库培训教程下Word格式.docx_第1页
第1页 / 共57页
Informix数据库培训教程下Word格式.docx_第2页
第2页 / 共57页
Informix数据库培训教程下Word格式.docx_第3页
第3页 / 共57页
Informix数据库培训教程下Word格式.docx_第4页
第4页 / 共57页
Informix数据库培训教程下Word格式.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

Informix数据库培训教程下Word格式.docx

《Informix数据库培训教程下Word格式.docx》由会员分享,可在线阅读,更多相关《Informix数据库培训教程下Word格式.docx(57页珍藏版)》请在冰豆网上搜索。

Informix数据库培训教程下Word格式.docx

数据的均匀分布、最高的数据可用性、没有了对表达式进行求值的过程从而可得到最高的数据装载效率。

 

◆数据分割的原则

1、对DSS重点是数据的分割

2、对OLTP重点是索引的分割

3、对顺序扫描读的表采用循环方式进行分割

4、分割表达式应尽量简单、

5、尽量将最可能满足的表达式放在前面

6、避免在表达式中有类型转换操作

7、不要针对经常改变的字段进行分割

◆Chunk的影响

Chunk加到系统中的顺序也会影响系统的性能。

因为在系统检查点期间,给Chunk分配清页线索是根据Chunk加到系统中的顺序进行的。

◆临时空间的建立

如果系统支持DSS查询,就需要频繁的创建和使用临时表和排序文件,那么临时数据空间的位置对性能的影响是很大的,此时应考虑建立一个或多个临时空间,并且不同的临时空间应尽量分布在不同的磁盘上,道理同Chunk顺序。

4。

磁盘布局地监控

◆onstat--giof命令监控磁盘活动。

◆使用UNIX工具sar--d15显示磁盘利用率。

5.磁盘布局的改变

用ALTERFRAGMENT语句改变现有磁盘布局。

该语句可以重新设置新的分割策略,可以增加、删除、修改一个分片,可以将几个结构相同的表合并或将一个表分成几个结构相同的表。

●正确地调整影响I/O性能的几个参数

1.缓冲区参数的设置

◆OLTP环境下,应将共享内存的大部分分配到驻留部分。

◆DSS环境下,应将共享内存的大部分分配到虚拟部分。

2.NUMAIOVPS参数的设置

◆KAIO(核心异步I/O)和AIO的概念以及两者的区别。

Onstat--gath监测系统是否使用SAIO。

◆配置NUMAIOVPS参数

1、对于使用KAIO并且所有chunk都是原始设备的Online系统,

只需把NUMIOVPS设为1或2。

2、对于不使用KAIO的Online系统,应把AIOvp的数目设置成存放数据库表的磁盘的数目。

3、对于同时使用了核心AIO和操作系统文件设备的Online系

统,应把AIOvp的数目设置成与使用操作系统文件设备来做chunk以存放数据库表的磁盘的数目。

◆监控I/O队列长度

使用onstat--gioq命令列出有关I/O请求队列长度的信息。

3.LRU队列参数据的设置

◆LRU(最少最近使用)队列的作

用来管理工共享内存缓冲区。

◆如何配置LRU队列的数目(由参数LRUS决定)

配置LRU队列的数目的目的是减少LRU队列的长度!

1、对大型多处理系统,一般将LRUS设成CPUvp的数量。

2、对单处理机系统或小型多处理系统,将LRUS设为4。

3、LRU队列数的取值范围是4---32个。

◆配置LRU百分比的原则

1、LRU_MAX_DIRTY和LRU_MIN_DIRTY参数。

2、百分比设得过高时。

3、百分比设得过低时。

◆监控LRU队列

onstat--R命令显示LRU队列中FLRU和MLRU所占的百分比。

4.有关检查点活动参数的设置

◆检查点的概念

◆检查点持续时间和间隔的概念

510152025

检查点持续时间性检查点间隔

◆影响检查点持续时间的因素

1、有多少脏页需要从缓冲写到磁盘上。

缓冲池的大小

LRU参数

2、脏页能够写多快。

磁盘的数量和速度

磁盘布局

清页线索的数量

◆影响检查点间隔的因素

1、CHPTINTVL参数

2、物理日志的大小

3、系统中的写操作。

4、一些系统的管理操作。

5、Online系统管理员强制执行。

5.清页线索的监控

◆Online缓冲区写操作的类型

1、Chunk写

2、LRU写

3、前台写

◆监控清页线索的活动

1、清页线索活动的发生。

2、清页线索的数目是通过CLEANERS参数来确定的。

3、使用命令onstat--F显示关于清页线索活动的详细信息。

4、对于面向批处理的系统应把LRU的百分比定的高一些。

◆检查点间隔中和检查点期间的页清理活动的区别

1、检查点期间是chunk写,比较有效,而检查点间隔中是LRU写。

2、检查点间隔中的页清理活动不引起其它用户进程等待,而检查点期间的页清理活动正好相反。

6.合理调整日志缓冲区

为获得优化的性能,应把物理和逻辑日志缓冲区配置的足够大,以尽量减少把物理日志和逻辑日志写到磁盘上所需的物理I/O的数量。

使用命令onstat--l的输出信息来判断日志缓冲区的大小是否是优化的。

(bufsize和pgaes/io两个参数。

7.预读的配置

◆预读的概念

◆预读参数:

RA_PAGES和RA_THRESHOLD

◆监控预读:

onstat--p

●数据库性能策略

1.数据库日志模式和性能的关系

缓冲日时局模式:

数据库先将事务记录发送到一内存缓冲区内,当缓冲区满时写到磁盘上。

非缓冲日志模式:

数据库也是先将事务记录发送到一内存缓冲区内,但一旦有一个事务提交,内存缓冲区马上被写到磁盘上。

2.添加索引对系统性能的影响

◆B+树的概念

节点

内存缓冲区

◆索引的填充度(参数FILLFACTOR决定)的概念

12182430

节点

◆监控索引的填充度

oncheck--pTdatabase:

table

◆有效的使用BLOB

大型的BLOB数据应放在blobspace上。

由于BLOB数据占据的空间比较大,可能占据缓存中的几个页,和其它数据一起存放会降低整个Online系统的缓存命中率。

BLOB页的大小应设置成在blobspace中的BLOB数据的平均长度。

●合理配置CPUvps

1.CPUvp类将所有密集CPU活动的操作放在其中的进程上运行,从而使这些进程总保持工作而较少睡眠。

要想提高系统性能,应尽量使该类VP保持忙碌。

2.监测CPUvp的使用

onstat-gglo显示正在运行的vp的CPU使用情况的信息。

Onstat-grea用来监测就绪队列中的项目情况。

3.合理调整CPUvps

◆对单或双处理器系统

1、临界区的概念。

2、SINGINE_CPU_VP=1,避免了很多的临界区调用。

3、MULTIPROCESSOR=0

◆对于多处理器系统,调整该参数将对性能产生显著影响,但应遵循以下原则:

1、一次只增加一个CPUvp.

2、CPUvp的数量不要越过硬件处理器的数量。

3、应随时检查系统处理器的使用率。

●正确使用内存

1.Online系统中共享内存的三个部分

驻留部分:

包含缓冲区缓存和其它系统信息。

虚拟部分:

包含会话和线索所使用的各种内存池。

消息部分:

包含消息缓冲区。

2.Online中使用内存的主要部分

◆Online系统内存

1、缓冲池

2、存储过程缓冲池

◆会话内存

1、排序

2、杂凑连接

3、中间文件

3.内存管理

OLTP和DSS对内存的需要情况

1、对OLTP纯环境

2、对DSS纯环境

3、OLTP和DSS混合环境(参数DS_TOTAL_MEMORY)

4.影响内存使用的几个参数

SHMMAX:

共享内存的最大尺寸。

SHMSEG:

每个进程能访问的共享内存段数。

SHMTOTAL:

限制共享内存的总空间。

BUFFERS:

调整缓冲区池的大小。

DS_TOTAL_MEMORY:

限制DSS查询的内存空间。

5。

监控共享内存的使用

onstat-gseg命令,确定动态服务器分配到的和使用的内存数量。

Onmode-F命令,用来释放不再使用的共享内存段。

●对C/S结构和分布式通讯调整网络配置参数

1.数据库服务器与客户应用位于同一台机器上时

只要CPU的利用率不接近100%,并且有足够的内存可用于运行所有的进程,而不需要额外的换页,则就可以在同一台机器上运行应用进程和数据库服务器。

此时可使用共享内存或TCP/IP来通讯。

2.数据库服务器与客户应用不在同一台机器上时

◆对要多次使用的SQL语句实现做好Prepare.

◆对于把多个SQL语句作为一组来执行的任务,就使用存储过程。

◆当传送大量的行,特别是一行的数据量很大时,可通过增加环境变量FET_SIZE的值以减少网络通讯量。

3.对于有大量客户的系统

◆监测网络负载

使用netstat-I2命令来监测网络负载。

◆poll(探询)线索和listen(侦听)线索的作用。

1、应有足够的poll线索处理接收消息。

可通过在参数NETTYPE的第四个域中指定为NET,poll线索将在它们自己vp的上运行,若指定为CPU,则poll线索将在CPUvp上运行。

2、应有足够的listenx线索处理同时连接。

在文件$INFORMIX/etc/sqlhosts和$INFORMIX/etc/onconfig中设定。

第一十二章informix_sql语言简介

一、重要的数据库术语

关系模型:

描述数据库和数据模型。

表:

表是数据项的阵列,以行和列组织。

所有的数据都是以表的形式存在的,表由行和列组成。

行:

表中每一行代表了表的主题的一个实例。

列:

表中一个列代表了一个属性。

表、行、列:

表=实体一个表代表了数据库对一个主体或一类事物所知道的信息。

列=属性一个列代表了对表的主体的为真的一个特性、特征或事实。

行=实列一个行代表了表的主体的一个单独的实例。

对表的操作:

选择:

表中满足特定条件的行的水平子集

投影:

选定某些符合条件的列的垂直子集

连接:

通过连接几个相关的表获得更多个实体的信息

二、INFORMIX数据库实用程序介绍

1、Dbaccess

用来输入、执行SQL查询语句或者将查询结果输出;

选择、生成、删除数据库;

生成、修改、删除或者查询数据库中表的各种信息等。

下面详细介绍各个菜单及其功能:

Query_Language使用数据库的结构化查询语言对数据库进行操作

New允许输入一组新的语句作为当前语句

Run执行当前的语句

Modify修改当前语句

Use_editor允许用户使用系统编辑程序vi对当前语句进行编辑

Output将执行当前语句的结果进行输出

Printer将查询结果输出到打印机

New_file将查询结果输出到一个新文件

Append_file将查询结果追加的一个存在的文件中

To_pipe将查询结果送到其它程序的标准输入中

Exit退出output菜单

Choose选择当前目录下以.sql为后缀的SQL语句文件

Save存放当前语句到某一SQL文件。

其后缀为。

sql

Info显示当前数据库中某个表的信息

Drop从数据库中删除某个SQL文件

Exit退出Query_Language菜单

Database用来选择、生成或删除一个数据库

Select设置某数据库为当前工作数据库

Create创建新数据库并使其成为当前工作数据库

Drop从系统中删除某数据库

Exit退出数据库Database菜单,返回到上级菜单

Table用来生成、修改或删除一个数据库中的表

Create生成一个新表

Alter修改一个已经存在的表的结构

Info查询一个已经存在的表的信息

Drop删除一个已经存在的表

Exit退出一个已经存在的表

2、Isqlrf(有的系统为:

isql)

Form可以执行、创建、修改、编译屏幕格式或删除已存在的屏幕格式

Run执行某一已经存在的屏幕格式

Modify修改指定的已经存在的屏幕格式

Generate为指定的表创建一个缺省的屏幕格式

Compile编译一个制定的屏幕格式

New创建特定的用户屏幕格式

Drop删除某已经存在的格式文件

Exit退出Form菜单

Report可以执行、建立、修改、编译、或删除报表

Run执行某一报表

Modify修改指定的报表

Generate为某一个表建立一个缺省的报表

New建立一个用户指定的报表

Compile编译指定的报表

Drop删除一个指定的已经存在的报表

Exit退出Report菜单

Query_Language详见实用程序说明:

dbaccess

User_menu可以执行、建立或修改用户建立的菜单

Run执行当前数据库的用户菜单

Modify允许用户建立或修改用户菜单

Exit退出User_menu菜单

Database详见实用程序说明:

dbaccess

Table详见实用程序说明:

Exit通出实用程序isqlrf(或isql)

三、简单的SELECT语句

SELECT语句是最重要也是最复杂的SQL语句,它和insertupdate和delete语句一起用于数据操作,主要用于:

●从数据库中检索数据

●作为INSERT语句的一部分产生新的行

●作为UPDATE语句的一部分更新信息

1.SELETE语句的简要介绍

●构成:

SELECT子句指定要查询的表

FROM子句指定要查询的列

WHERE子句选择特定的列或创建一个新的连接条件

ORDERBY子句改变数据产生的次序

INTOTEMP子句把结果以表的形式存放起来,供以后使用

其中SELECT、FORM子句是必选的。

●权限

查询数据库必须对该数据库具有connect权限以及对表具有SELECT权限,这些权限通常作为默认值赋给用户。

与数据库的操作权限有关的grant和revoke语句将在后面讲到。

●关系操作

选择:

在表中满足特定条件的行的水平子集。

这一类型的SELECT子句返回表中的一部分行的所有列。

选择是通过SELECT语句的WHERE子句来实现的。

例:

SELECT*

FROMcustom

WHEREstate=”NJ”

显示结果如下:

customer_num107

fnameCharles

lnameReam

companyAthleticSupplies

addressl41JordanAvenue

address2

cityPaloAlto

stateCA

zipcode94304

phone415-356-9876

投影:

在表中一些列的垂直子集,子集包含了表中这些列的所有行。

这样的SELECT语句返回表中所有行的一些列。

投影是通过在SELECT语句中的SELECT子句的选项来实现的。

SELECTUNIQUEcity,state,zipcode

FROMcustomer

查询结果包含了与customer表中的相同数目的行,但仅投影了列的一个子集

citystatezipcode

BartlesvilleOK74006

BlueIslandNY60406

BrightonMA02135

CheeyHillNJ08002

DenverCO80219

JacksonvilleFL32256

LosAltosCA94022

MenloParkCA94025

MoutainViewCA94040

MoutainViewCA94063

OaklandCA94609

PaloAltoCA94303

PaloAltoCA94304

PhoenixAZ85008

SELECT语句在大多数情况下同时使用选择和投影,查询返回表中的一些行和一些列。

SELECTUNIQUEcity,state,zipcode

CherryHillNJ08002

PrincetonNJ08540

连续:

将两个或多个表通过一个或多个相同的列联系起来成为一个新的结果表

例:

SELECTUNIQUEcity,state,zipcode,sname

FROMcustomer,state

WHEREcustomer,state=state.code

citystatezipcodesname

BartlesvilleOK74006Oklahoma

BlueIslandNY60406NewYork

BrightonMA02135Massachusetts

CherryHillNJ08002NewJersey

DenverCO80219Colorado

JacksonvilleFL32256Florida

LosAltosCA94022california

MenloParkCA94025california

MountainViewCA94040california

MountainViewCA94063california

OaklandCA94609california

PaloAltoCA94303california

PaloAltoCA94304california

PhoenixAZ85008Arizona

2.单表SELECT语句

●检索所有的行和列使用*号:

星号代表所有的列的名字。

FROMmanufact

manu_codemanu_namelead_time

SMTSmith3

ANZAnza5

NRGNorge7

HSKHusky5

HROHero4

SHMShimara30

KARkarsten21

NKLNikolus8

PRCProCycle9

●选择特定的列

SELECTUNIQUEcustomer_numFORMorders

注:

此处关键字UNIQUE或它的同义词DISTINCT来抑制重复的行

显示结果如下:

customer_num

101

104

106

●排序

◆列排序:

可以通过改变选项表中列的次序来改变各列在显示时的次序。

SELECTmanu_name,manu_code,lead_time

manu_namemanu-codelead_time

SmithSMT3

AnzaANZ5

NorgeNRG7

HuskyHSK5

HeroHRO4

ShimaraSHM30

KarstenKAR21

NikolusNKL8

ProCyclePRC9

◆行排序:

可以通过SELECT语句中加入ORDERBY子句来要求

系统按某各指定次序对数据进行排序。

SELECTmanu-code,manu_name,lead_time

ORDERBYlead_time

以lead_time的次序显示manufact表中的每一行和列。

manu_namemanu_codelead_time

SmithSMT3

缺省时检索所得的数据排序后按升序显示。

升序对CHARACTER数据类型而言是从大写A到小写z,对数字类型而言是从最小值到最大值,DATE和DATETIME类型的数据从早到晚的顺序排序,INTERVAL数据按持续时间从最短到最长排序。

在列名后接关键字DESC表明检索所得数据按降序排序。

SELECT*

DESC

SHMShimara30

KARKarsten21

可以实现按照多列排序,人而建立一个组排序,缺省仍为升序,在ORDERBY子句中列首位得列优

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1