Informix数据库培训教程下Word格式.docx
- 文档编号:22250716
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:57
- 大小:56.62KB
Informix数据库培训教程下Word格式.docx
《Informix数据库培训教程下Word格式.docx》由会员分享,可在线阅读,更多相关《Informix数据库培训教程下Word格式.docx(57页珍藏版)》请在冰豆网上搜索。
数据的均匀分布、最高的数据可用性、没有了对表达式进行求值的过程从而可得到最高的数据装载效率。
◆数据分割的原则
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子句中列首位得列优
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Informix 数据库 培训 教程