Informix_SQL跟踪
informix数据库SQL学习
简单的SELECT语句SELECT语句是最重要也是最复杂的SQL语句,它和insert update和delete 语句一起用于数据操作,主要用于:●从数据库中检索数据●作为INSERT语句的一部分产生新的行●作为UPDATE语句的一部分更新信息1.S ELETE语句的简要介绍●构成:SELECT 子句指定要查询的表FROM 子句指定要查询的列WHERE子句选择特定的列或创建一个新的连接条件ORDER BY子句改变数据产生的次序INTO TEMP子句把结果以表的形式存放起来,供以后使用其中SELECT、FORM子句是必选的。
●权限查询数据库必须对该数据库具有connect权限以及对表具有SELECT权限,这些权限通常作为默认值赋给用户。
与数据库的操作权限有关的grant 和revoke语句将在后面讲到。
●关系操作选择:在表中满足特定条件的行的水平子集。
这一类型的SELECT 子句返回表中的一部分行的所有列。
选择是通过SELECT语句的WHERE子句来实现的。
例:SELECT *FROM customWHERE state=”NJ”显示结果如下:customer_num 107fname Charleslname Reamcompany Athletic Suppliesaddressl 41 Jordan Avenueaddress2city Palo Altostate CAzipcode 94304phone 415-356-9876投影:在表中一些列的垂直子集,子集包含了表中这些列的所有行。
这样的SELECT 语句返回表中所有行的一些列。
投影是通过在SELECT语句中的SELECT子句的选项来实现的。
例:SELECT UNIQUE city, state,zipcodeFROM customer查询结果包含了与customer 表中的相同数目的行,但仅投影了列的一个子集显示结果如下:city state zipcodeBartlesville OK 74006Blue Island NY 60406Brighton MA 02135Cheey Hill NJ 08002Denver CO 80219Jacksonville FL 32256Los Altos CA 94022Menlo Park CA 94025Moutain View CA 94040Moutain View CA 94063Oakland CA 94609Palo Alto CA 94303Palo Alto CA 94304Phoenix AZ 85008SELECT语句在大多数情况下同时使用选择和投影,查询返回表中的一些行和一些列。
Informix数据库dbaccess工具执行SQL语句操作说明
【文档名称】:Informix数据库dbaccess工具执行SQL语句操作说明【背景说明】部分工程经常要对数据库进行操作,而各省客服及驻点同事对相关操作不熟悉,现整理一份实用的操作说明。
【适用范围】适用设备:Informix-9.4,Informix-11.5【文档正文】1)用informix账户登录操作系统,在开始菜单中打开“ol_实例名”。
2)直接输入dbaccess并回车。
选择Connection,然后选择Connect。
3)选择数据库实例。
一般只有一个,直接回车即可。
4)输入用户名informix,回车。
5)输入数据库密码,回车。
6)下方提示已连接。
7)直接按回车,然后选择Exit回车。
8)选择第一个Query-language回车。
9)选择Use-editor回车。
10)直接回车,默认用记事本打开编辑器。
11)将SQL语句粘贴到记事本。
12)关闭,选择保存,然后选择Run,回车,查看返回结果是否成功。
常用SQL语句:1、导出某张表。
(需注意当前用户对该目录是否有写入权限,否则会导出失败)unload to 'C:\_analarmtype' select * from _analarmtype; 导出_analarmtype表并保存到C盘根目录。
2、删除某张表。
delete from _analarmtype;3、导入某张表。
load from 'C:\ _analarmtype ' insert into _analarmtype;4、查询某张表的条目数。
select count(*) from analarmhis; 查询历史告警条目数select count(*) from ancurrentalarm; 查询当前告警条目数DBACCESS基本讲解.doc。
Informix SQL 语句详解
Informix SQL 语句详解Informix SQL 语句详解(1)1. 创建数据库:CREATE DATABASE database_name [WITH LOG IN “pathname”]database_name:数据库名称。
“pathname”:事务处理日志文件。
创建一database_name.dbs目录,存取权限由GRANT设定,无日志文件就不能使用。
BEGIN WORK等事务语句(可用START DATABASE 语句来改变)。
可选定当前数据库的日志文件。
如:select dirpath form systables where tabtype = “L”; 例:create databse customerdb with log in “/usr/john/log/customer.log”;2. 选择数据库:DATABASE databse-name [EXCLUSIVE]database_name:数据库名称。
EXCLUSIVE:独占状态。
存取当前目录和DBPATH中指定的目录下的数据库,事务中处理过程中不要使用此语句。
例:dtabase customerdb;3. 关闭当前数据库:CLOSE DATABASEdatabase_name:数据库名称。
此语句之后,只有下列语句合法:CREATE DATABASE;DATABASE;DROP DATABSE;ROLLFORWARD DATABASE;删除数据库前必须使用此语句。
例:close database;4. 删除指定数据库:DROP DATABASE database_namedatabase_name:数据库名称。
用户是DBA或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数据库);事务中处理过程中不能使用此语句,通过ROLLBACK WORK 也不可将数据库恢复。
例:drop databse customerdb;5. 创建表或临时表:CREATE [TEMP] TABLE table-name (column_name datatype [NOT NULL], …) [IN “pathname”]table-name :表名称。
InformixSQL语句详解
Informix SQL 语句详解(1)1. CREATE DATABASE database_name [WITH LOG IN “pathname”]创建数据库。
database_name:数据库名称。
“pathname”:事务处理日志文件。
创建一database_name.dbs目录,存取权限由GRANT设定,无日志文件就不能使用BEGIN WORK等事务语句(可用START DATABASE语句来改变)。
可选定当前数据库的日志文件。
如:select dirpath form systables where tabtype = “L”;例:create databse customerdb with log in “/usr/john/log/customer.log”;DA TABASE databse-name [EXCLUSIVE]选择数据库。
database_name:数据库名称。
EXCLUSIVE:独占状态。
存取当前目录和DBPATH中指定的目录下的数据库,事务中处理过程中不要使用此语句。
例:dtabase customerdb;3. CLOSE DA TABASE关闭当前数据库。
database_name:数据库名称。
此语句之后,只有下列语句合法:CREATE DATABASE;DATABASE;DROP DA TABSE;ROLLFORWARD DA TABASE;删除数据库前必须使用此语句。
例:close database;4. DROP DA TABASE database_name删除指定数据库。
database_name:数据库名称。
用户是DBA或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数据库);事务中处理过程中不能使用此语句,通过ROLLBACK WORK 也不可将数据库恢复。
例:drop databse customerdb;5. CREATE [TEMP] TABLE table-name (column_name datatype [NOT NULL], …)[IN “pathname”]创建表或临时表。
Informix错误代码中文解释
所有错误可以用finderr+错误代码查到,英文的,这里中文注释便于理解。
-100 错误的描述:C—ISAM错误;向具有唯一索引的字段加入一个重复值。
系统的操作:该语句不被处理。
更正的方法:检查是否用iswrite,isrewrite,isrewcurr或isaddindex的方法,向一个具有唯一索引的字段加入一重复值。
-101 错误的描述:C-ISAM错误;文件没有打开。
系统的操作:该语句不被处理。
更正的方法:检查C-ISAM错误:C-ISAM文件是否已用isopen调用打开,或者是否向一个以只读打开的C-ISAM文件中执行写操作。
-102 错误的描述:C—ISAM错误:C—ISAM函数含有非法参数系统的操作:该语句不被处理更正的方法:检查C—ISAM调用的第一个参数,是否超出相应的值域-103 错误的描述:C—ISAM错误;非法的关键字说明(太多的分量或太长)系统的操作:该语句不被处理。
更正的方法:检查组成该关键字说明的一个或多个元素,是否超出相应的值域。
(每个关键字的说明最多允许8个分量和120个字符)-104 错误的描述:C—ISAM错误:打开文件太多系统的操作:该语句不被处理。
更正的方法:在UNIX系统中(以及多数DOS系统中),每个进程打开文件夹的最大个数为20。
-105 错误的描述:C—ISAM错误:C—ISAM文件格式有误。
系统的操作:该语句不被处理。
更正的方法:C—ISAM文件的格式已被破坏,对该文件运行bcheck程序,修复被破坏了的索引。
如果bcheck不能修复该文件,须从后援存储介质上重新装入数据。
-106 错误的描述:C—ISAM错误;非互斥访问。
系统的操作:该语句不被处理。
更正的方法:当要增加或删除一个索引时,必须以互斥访问打开文件。
-107 错误的描述:C—ISAM错误:记录被锁住。
系统的操作:该语句不被处理。
更正的方法:由该调用请求的文件或记录不能被访问,这是因为该文件被其它用户锁住。
Informix SQL性能跟踪优化
复杂 , 数据量也飞快增长 。然而 , 与之对应的应用 系 统吞吐量却很难提 高, 甚至逐步下 降。在实 际应用 系统 中, 经常会 出现系统 资源 的负载不 高 ,P 、 CU 内 存等使用率很低 , 不到 5 %。 同时查看 i o i 0 n r x的 fm 检查 点 ( h c p it 的时 间也很 短 , C ek on) 一般 在 1 s ~2 之 内, 最大不超过 5。而前台业务操作 却速度慢 , s 响
冲区 , 锁和用户的情况 , 见表 1 。
表 1 如 : n tt—u moe ¥o sa I r
这里 着 重 关 注 ned ras和 n fe 列 。这 两 列 表 w ts i
行分析。在实际 中, 由于同一个数据库 s v 上可 ee rr
能有很多的线程 , 可以利用 S E L H L 对命令的输 出进 行简化。对 ned 值对进行排序 , ras 直接找到 I O最高 的线程。
2 9 b s 2 7 7 0 7 oc pg 9 3 6 4 bs 1740 5 c p 87 3 3 3 3 e p 84 9 1 8 3 2 b s 4 9 6 2 3 1
3 2 c p 84 7 5 2 7 2 b s 4 0 77 5 9
利用 os t—U命令输 出 的 s s ( nt a e i 会话标 识 sd 号) 。取道线程的 i 号 , 列 d 然后可以利用 os t—g nt a
示线 程 已执 行 的读 调 用 数 ( r d ) 写 调 用 数 n as 和 e ( wis 。如果 ned 值较大 , 初步怀疑可能存 n re) t r s a 就
在顺序扫描。然后需要进一步对这个数据库线程进
第 l 期 2
基于Informix数据库典型低效率SQL语句的分析及优化方法
Gu  ̄ u .  ̄ c / z se e cn
基 于 Ifr x数 据 库 典 型 低 效 率 S omi n QL语 句 的 分 析 及 优 化 方 法
郑 添 健 索 红敏
( 中国人寿保险股份有限公司 黔南分公司信息技术部 都匀 5 8 0 ; 50 0 贵州 民族学 院 贵 阳 5 0 2 ) 5 05
摘
要 : 本文从跟踪 S L性能的方法和 I om x应用调优 的原 则 , If mi Q r ri f 对 no x典型低 效率 S数
据库 系统 实际应用方面提 出了提 高 I om x n r i 数据库运行效 率的方法, f 旨在 为 I omx数据 库维护人 员和程序设 计人 员提供有 r ri f
t a p l ai n o f r x d tb s O a o p o i e u eu ee e c s fr t o e w o man an a d d s n t e i — il a p i t fi omi aa a e S s t r v d s f lr f r n e o h s h i t i n e i h n e c o n g
Ba e n I o m i t ba e s d o nf r x Da a s
Z E inj n 一 S O n — n H NB Ta - a i U Ho gmi
( C i i srneC m a y S uh G i o rnh D y n u h u5 8 0 ,C ia G i o ol e o hn L e nua c o p n , ot u h uB a c , u u ,G i o 5 0 0 h ; u h uC lg fr a fI z z n z e N t n li , u ag, u h u5 0 2 , hn ) ai aie G i n G i o 5 0 5 C i o ts y z a
sql数据库跟踪使用方法
sql数据库跟踪使用方法SQL数据库跟踪是一种用于记录数据库操作、数据更改和用户活动的自动化工具。
它可以用于许多不同的应用程序中,包括数据管理、实时监控、安全性和性能分析等。
以下是SQL数据库跟踪的一般使用方法和扩展。
## 使用方法要使用SQL数据库跟踪,您可以按照以下步骤进行操作:1. 安装SQL数据库跟踪软件。
您可以从Microsoft官方网站或其他可靠的软件下载网站下载SQL数据库跟踪软件。
2. 启动SQL数据库跟踪软件。
软件将自动启动并开始监视您的数据库。
3. 配置SQL数据库跟踪软件。
您可以根据需要配置SQL数据库跟踪软件以监视特定类型的活动,例如表更改、查询更改和连接更改等。
4. 监视数据库。
SQL数据库跟踪软件将监视您的数据库,并记录任何更改和活动。
您可以使用 SQL 查询语句来查看数据库中存储的所有更改和活动。
## 扩展以下是一些有关SQL数据库跟踪的高级主题和扩展:### 1. 配置SQL数据库跟踪软件在开始使用SQL数据库跟踪之前,您需要配置SQL数据库跟踪软件。
这包括选择要监视的活动类型、配置监视设置、设置报告输出等。
您可以通过在SQL跟踪软件的控制台中输入命令来查看有关配置SQL 数据库跟踪软件的信息。
### 2. 使用SQL数据库跟踪进行实时性能分析SQL数据库跟踪可以用于实时性能分析,以便您能够立即了解数据库的性能情况。
您可以使用 SQL 查询语句来监视数据库的性能,并使用 SQL 更新语句来更改数据库设置以优化性能。
### 3. 使用SQL数据库跟踪进行安全性分析SQL数据库跟踪可以用于安全性分析,以帮助您识别潜在的安全问题。
您可以使用 SQL 查询语句来查看数据库中存储的所有更改和活动,并使用 SQL 更新语句来更改数据库设置以增强安全性。
### 4. 使用SQL数据库跟踪进行数据分析SQL数据库跟踪可以用于数据分析,以便您能够分析数据库中的数据趋势和变化。
您可以使用 SQL 查询语句来查看数据库中存储的所有更改和活动,并使用 SQL 更新语句来更改数据库设置以增强数据分析能力。
INFORMIX查询标准表结构SQL
-- 规范SQLselecta.tabname as tabname_en,'' tabname_cn,b.colno,b.colname as colname_en,'' colname_cn,case b.coltypewhen '0'then 'varchar2('||collength||')'when '1'then 'integer'when '2'then 'integer'when '3'then 'float'when '4'then 'float'when '5'then 'decimal('||trunc(collength/256)||','||mod(collength,256)||')'when '6'then 'integer'when '7'then 'date'when '8'then 'money'when '9'then 'null'when '10'then 'datetime'when '11'then 'byte'when '12'then 'text'when '13'then 'varchar2('||collength||')'when '14'then 'interval'when '15'then 'varchar2('||collength||')'when '16'then 'varchar2('||collength||')'when '17'then 'int8'then 'serial8'when '19'then 'set'when '20'then 'multiset'when '21'then 'list'when '22'then 'unnamed row'when '40'then 'varchar2(4000)'when '41'then 'clob'when '43'then 'blob'when '44'then 'boolean'when '256'then 'varchar2('||collength||')'when '257'then 'integer'when '258'then 'integer'when '259'then 'float'when '260'then 'real'when '261'then 'decimal('||trunc(collength/256)||','||mod(collength,256)||')' when '262'then 'serial'when '263'then 'date'when '264'then 'money'when '266'then 'datetime'when '267'then 'byte'when '268'then 'text'when '269'then 'varchar'then 'interval'when '271'then 'varchar2('||collength||')'when '272'then 'varchar2('||collength||')'when '273'then 'int8'when '274'then 'serial8'when '275'then 'set'when '276'then 'multiset'when '277'then 'list'when '278'then 'unnamed row'when '296'then 'lvarchar'when '297'then 'clob'when '298'then 'blob'when '299'then 'boolean'when '4118'then 'named row'end as coltypename,casewhen c.idxtype='U'then 'Y'else 'N'end as KEY_TYPE,casewhen b.coltype>=256then 'N'else 'Y'end as NULL_TYPEfromsystables aleft joinsyscolumns bona.tabid=b.tabidleft joinsysindexes cona.tabid=c.tabidand b.colno in (c.part1,c.part2,c.part3,c.part4,c.part5,c.part6,c.part7,c.part8) and idxtype='U'wherea.tabid>99and a.tabtype='T'AND a.tabname = ‘test’order bya.tabname,b.colno。
INFORMIX数据库操作及SQL语法
编号:TN-070101001TIENON数据库培训教程INFORMIX基本操作及SQL语法2007年1月,V 1.00目录1、引言 (4)1.1、读者对象 (4)1.2、内容简介 (4)1.3、课程时间 (4)1.4、课程目标 (4)2、数据库基本概念...................................................... 错误!未定义书签。
2.1、从身边的例子了解数据库......................................................... 错误!未定义书签。
2.2、数据库系统概述......................................................................... 错误!未定义书签。
2.2.1、数据库的产生.................................................. 错误!未定义书签。
2.2.2、数据库系统组成................................................ 错误!未定义书签。
2.2.3、与数据库相关的软件系统........................................ 错误!未定义书签。
2.2.4、数据库系统特点................................................ 错误!未定义书签。
2.2.5、数据库系统的历史.............................................. 错误!未定义书签。
2.2.6、数据库系统的发展趋势.......................................... 错误!未定义书签。
2.2.7、数据库的分类.................................................. 错误!未定义书签。
INFORMIX数据库系统日常监控操作技术手册
IBM Informix数据库系统日常监控操作技术手册1.监控数据库系统软件的逻辑日志文件是否正常被备份,防止出现当逻辑日志文件满了而没备份导致数据库停机;使用onstat –l 命令监控逻辑日志的使用,监控输出中的Flag标志字段,注意第位,如果是‘-’,则表明此逻辑日志没有备份。
该标识位的详细描述如下:Describes the status of the Logical Log using the following coded values:Position 1: A Newly addedF Free logU Used logPosition 3:B Backed upPosition 5: C Currently active logPosition 7:L Contains last checkpoint record如果数据库系统采用Onbar进行系统的备份和恢复,也可以直接监控$INFORMIXDIR/etc/ixbar.servernum日志文件,观察目前备份的状态。
2.监控数据库的数据库磁盘空间;IBM Informix数据库系统的数据存储空间成为dbspace,每个dbspace可以包括多个chunks。
使用如下命令可以监控到某个dbspacece中chunk的空间使用情况:oncheck –pe dbspace_name输出入下:DBspace Usage Report: dataspace Owner: informix Created: 09/29/2005Chunk Pathname Size Used Free8 /home/informix/IDS940/datachk1 500 53 447Description Offset Size------------------------------------------------------------- -------- ------------------------------------------------RESERVED PAGES 0 2CHUNK FREELIST PAGE 2 1testzeng:'informix'.TBLSpace 3 50FREE 53 447Total Used: 53Total Free: 447Chunk Pathname Size Used Free10 /home/informix/IDS940/datachk2 5000 3 4997Description Offset Size------------------------------------------------------------- -------- ------------------------------------------------------RESERVED PAGES 0 2CHUNK FREELIST PAGE 2 1FREE 3 4997Total Used: 3Total Free: 4997通过监控dbspace中每个chunk的Total Used和Total Free,可以知道目前数据库系统实际对磁盘空间的占用情况。
InformixSQL函数的详细用法
InformixSQL函数的详细⽤法⼀、内部函数 1、内部合计函数 1)COUNT(*) 返回⾏数 2)COUNT(DISTINCT COLNAME) 返回指定列中唯⼀值的个数 3)SUM(COLNAME/EXPRESSION) 返回指定列或表达式的数值和; 4)SUM(DISTINCT COLNAME) 返回指定列中唯⼀值的和 5)AVG(COLNAME/EXPRESSION) 返回指定列或表达式中的数值平均值 6)AVG(DISTINCT COLNAME) 返回指定列中唯⼀值的平均值 7)MIN(COLNAME/EXPRESSION) 返回指定列或表达式中的数值最⼩值 8)MAX(COLNAME/EXPRESSION) 返回指定列或表达式中的数值最⼤值 2、⽇期与时间函数 1)DAY(DATE/DATETIME EXPRESSION) 返回指定表达式中的当⽉⼏号 2)MONTH(DATE/DATETIME EXPRESSION) 返回指定表达式中的⽉份 3)YEAR(DATE/DATETIME EXPRESSION) 返回指定表达式中的年份 4)WEEKDAY(DATE/DATETIME EXPRESSION) 返回指定表达式中的当周星期⼏ 5)DATE(NOT DATE EXPRESSION) 返回指定表达式代表的⽇期值 6)TODAY 返回当前⽇期的⽇期值 7)CURRENT[first to last] 返回当前⽇期的⽇期时间值 8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定单位数 9)MDY(MONTH,DAY,YEAR) 返回标识指定年、⽉、⽇的⽇期值 10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的⽇期时间值 11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值 12)EXTEND(DATE/DATETIME EXPRESSION,[first to last])返回经过调整的⽇期或⽇期时间值 例⼦1、和UNITS合⽤,指定⽇期或时间单位(year,month,day,hour,minute,seond,fraction): let tmp_date = today + 3 UNITS day 例⼦2、let tmp_date = MDY(10,30,2002) -- 2002-10-30 例⼦3、let tmp_date = today + interval(7) day to day --当前时间加上7天; 注:该功能与1相似; 例⼦4、EXTEND转换⽇期或⽇期时间值 let tmp_inthour = extend(datetime1,hour to hour) 3、代数函数 1)ABS(COLNAME/EXPRESSION): 取绝对值 2)MOD(COLNAME/EXPRESSION,DIVISOR) 返回除以除数后的模(余数) 3)POW(COLNAME/EXPRESSION,EXPONENT) 返回⼀个值的指数冥 例⼦:let tmp_float = pow(2,3) --8.00000000 4)ROOT(COLNAME/EXPRESSION,[index]) 返回指定列或表达式的根值 5)SQRT(COLNAME/EXPRESSION) 返回指定列或表达式的平⽅根值 6)ROUND(COLNAME/EXPRESSION,[factor])返回指定列或表达式的圆整化值 7)TRUNC(COLNAME/EXPRESSION,[factor])返回指定列或表达式的截尾值 说明:上两者中FACTOR指定⼩数位数,若不指定,则为0;若为负数,则整化到⼩数点左边; 注:ROUND是在指定位上进⾏4舍5⼊;TRUNC是在指定位上直接截断; let tmp_float = round(4.555,2) --4.56 let tmp_float = trunc(4.555,2) --4.55 4、指数与对数函数 1)EXP(COLNAME/EXPRESSION) 返回指定列或表达式的指数值 2)LOGN(COLNAME/EXPRESSION) 返回指定列或表达式的⾃然对数值 3)LOG10(COLNAME/EXPRESSION) 返回指定列或表达式的底数位10的对数值 5、三⾓函数 1)COS(RADIAN EXPRESSION) 返回指定弧度表达式的余弦值 2)SIN(RADIAN EXPRESSION) 正弦 3)TAN(RADIAN EXPRESSION) 正切 4)ACOS(RADIAN EXPRESSION) 反余弦 5)ASIN(RADIAN EXPRESSION) 反正弦 6)ATAN(RADIAN EXPRESSION) 反正切 7)ATAN2(X,Y) 返回坐标(X,Y)的极坐标⾓度组件 6、统计函数 1)RANGE(COLNAME) 返回指定列的最⼤值与最⼩值之差 = MAX(COLNAME)-MIN(COLNAME) 2)VARIANCE(COLNAME) 返回指定列的样本⽅差; 3)STDEV(COLNAME) 返回指定列的标准偏差; 7、其他函数 1)USER 返回当前⽤户名 2)HEX(COLNAME/EXPRESSION) 返回指定列或表达式的⼗六进制值 3)LENGTH(COLNAME/EXPRESSION) 返回指定字符列或表达式的长度 4)TRIM(COLNAME/EXPRESSION) 删除指定列或表达式前后的字符 5)COLNAME/EXPRESSION || COLNAME/EXPRESSION 返回并在⼀起的字符;⼆、IDS内部函数 1、DBSERVERNAME 返回数据库服务器名 let tmp_char=DBSERVERNAME 2、SITENAME 返回数据库服务器名 let tmp_char=SITENAME 说明:两者功能相同; 3、DBINFO(‘SPECIAL_KEYWORD') 返回只关键字值 例⼦1:返回数据中每个表的DBSPACE名称 select dbinfo('dbspace',partnum),tabname from systables where tabid>99 and tabtype='T' (OK) 例⼦2:返回任何表中插⼊的最后⼀个SERIAL值 select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1 例⼦3:返回最后⼀个SELECT,INSERT,UPDATE,DELETE或EXECUTE PROCEDURE语句处理的⾏数; select dbinfo('sqlca.sqlerrd2') from systables where tabid=1;字符串函数和操作符本节描述了⽤于检查和操作字符串数值的函数和操作符.在这个环境中的字串包括所有类型 character, character varying,和 text 的值.除⾮另外说明,所有下⾯列出的函数都可以处理这些类型,不过要⼩⼼的是,在使⽤ character 类型的时候,它的⾃动填充的潜在影响.通常这⾥描述的函数也能⽤于⾮字串类型,我们只要先把那些数据转化为字串表现形式就可以了。
Informix11.5SQLTracing(基础篇)
5
2009 IBM Corporation
5
Information Management – Informix
跟踪SQL语句: 收集的信息(续)
§ 隔离级别. § 统计信息,包括:
§ Number of buffer reads and writes § Number of page reads and writes § Number of sorts and disk sorts § Number of lock requests and waits § Number of logical log records § Number of index buffer reads § Estimated number of rows § Optimizer estimated cost § Number of rows returned
14 2009 IBM Corporgement – Informix
跟踪SQL语句: 跟踪的方法(续)
15 15
2009 IBM Corporation
Information Management – Informix
跟踪SQL语句: 跟踪的方法(续)
针对某个Session打开Tracing功能:
EXECUTE FUNCTION task("set sql user tracing on", session_id); EXECUTE FUNCTION task("set sql user tracing on“);
12
2009 IBM Corporation
4
2009 IBM Corporation
4
Information Management – Informix
Informix常用监控命令和维护工作
Informix常用监控命令和维护工作一、监控工具onstat命令介绍onstat是由informix提供的监控工具,可查看数据库运行的各个方面的信息,下面介绍一些常用的onstat命令:onstat –p 这个命令用来查看数据库运行的整体状况,其中主要注意一下读写命中率、deadlock个数、seqscan数、预读状况的相关数据。
onstat –l 查看逻辑日志和物理日志使用状况,以及逻辑日志的备份状况,备份过的逻辑日志都会有U—B的状态,如果出现很多逻辑日志都是U——的状态,说明逻辑日志备份出了问题,必须尽快处理。
onstat –d 查看数据库空间使用状况,需要注意一个是chunk的状态有无是PD的,这表明chunk处于down状态,需要特别处理,另外可以根据chunk的free值统计dbspace空间使用状况,以及时做好扩容准备。
onstat –u 查看数据库的连接数以及每个数据库连接的读写量,可用来查找占用资源较多的用户连接。
onstat –k 查看数据库锁的使用状况,可在发生锁表的情况下使用,以寻找锁表的session。
onstat –m 查看数据库消息日志的情况。
onstat –g sql sid查看某特定sesssion正在执行的sql语句,可用来分析sql执行的效率。
onstat –g dri 查看HDR的状态。
onstat还有很多选项,可通过onstat -- 看到所有的选项及相关说明。
●SMI(System-Monitoring Interface)表Informix提供了一系列SMI表供用户查询数据库运行状况,这些表都位于sysmaster数据库中,可通过sql进行查询,下面介绍一些常用的SMI表Sysdatabases,systabnames:存放所有的database和table的信息。
Sysprofile:存放onstat –p看到的信息的对应数据Sysdbspaces,syschunks:存放dbspace和chunk的信息。
Informix数据表结构分析资料整理之字段类型说明和查询SQL语句
Informix数据表结构分析资料整理之字段类型说明和查询SQL语句查询所有Informix数据表字段类型SQL语句:select a.tabname,b.colname,b.coltype,case b.coltypewhen '0' then 'CHAR'when '1' then 'SMALLINT'when '2' then 'INTEGER'when '3' then 'FLOAT'when '4' then 'SMALLFLOAT'when '5' then 'DECIMAL'when '6' then 'SERIAL'when '7' then 'DATE'when '8' then 'MONEY'when '9' then 'NULL'when '10' then 'DATETIME'when '11' then 'BYTE'when '12' then 'TEXT'when '13' then 'VARCHAR'when '14' then 'INTERVAL'when '15' then 'NCHAR'when '16' then 'NVARCHAR'when '17' then 'INT8'when '18' then 'SERIAL8'when '19' then 'SET'when '20' then 'MULTISET'when '21' then 'LIST'when '22' then 'Unnamed ROW'when '40' then 'LVARCHAR'when '41' then 'CLOB'when '43' then 'BLOB'when '44' then 'BOOLEAN'when '256' then 'CHAR'when '257' then 'SMALLINT'when '258' then 'INTEGER'when '259' then 'FLOAT'when '260' then 'REAL'when '261' then 'DECIMAL'when '262' then 'SERIAL'when '263' then 'DATE'when '264' then 'MONEY'when '266' then 'DATETIME'when '267' then 'BYTE'when '268' then 'TEXT'when '269' then 'VARCHAR'when '270' then 'INTERVAL'when '271' then 'NCHAR'when '272' then 'NVARCHAR'when '273' then 'INT8'when '274' then 'SERIAL8'when '275' then 'SET'when '276' then 'MULTISET'when '277' then 'LIST'when '278' then 'Unnamed ROW'when '296' then 'LVARCHAR'when '297' then 'CLOB'when '298' then 'BLOB'when '299' then 'BOOLEAN'when '4118' then 'Named ROW'end as coltypename, b.colno from systables a left join syscolumns b on a.tabid=b.tabid where a.tabid>99 and a.tabtype='T' order by a.tabname,b.colno;informix的字段类型如下:字段类型描述字段长度及其缺省值char(size)⽤于保存定长(size)字节的字符串数据。
informix错误代码及解决方案
更正的方法:删除非法字符(通常为不可打印的控制字符)或重写语句。
-203 错误的描述:在语句中发现非法整数
系统的操作:包含的错误语句不被处理。
更正的方法:整数必须在-2,147,483,647到2,147,483,647之间。检查是否带有小数部分或超出值域,以及数字中是否含有字母(例如:12593代替了125b3)。
-222 错误的描述:不能新表table-name的临时文件中写信息。
系统的操作:含有错误的语句不被处理。
更正的方法:盘空间可能溢出。检查C—ISAM错误信息以找出问题的原因。
-223 错误的描述:在FROM子句中出现重复的表名table-name。
系统的操作:含有错误的语句不被处理。
-106 错误的描述:C—ISAM错误;非互斥访问。
系统的操作:该语句不被处理。
更正的方法:当要增加或删除一个索引时,必须以互斥访问打开文件。
-107 错误的描述:C—ISAM错误:记录被锁住。
系统的操作:该语句不被处理。
更正的方法:由该调用请求的文件或记录不能被访问,这是因为该文件被其它用户锁住。请稍等一会儿,再提出请求。
-118 错误的描述:不能读事务日志记录。
系统的操作:包含的错误语句不被处理。
更正的方法:运行dblog程序确定哪个记录有问题
-119 错误的描述:不能打开日志文件。
系统的操作:包含的错误语句不被处理。
更正的方法:确定文件是否存在,所使用的路径名是否正确,以及是否具有使用文件适当权限。
系统的操作:包含的错误语句不被处理。
更正的方法:检查数据库管理转换内存空间
-124 错误的描述:没有找到BEGIN WORK。
Informix[1]5SQL语句性能监控方法及实现
Informix[1]5SQL语句性能监控方法及实现本方法及实现,希望能够使大家有一个比较全面的了解。
我们知道,在数据库应用系统中,SQL语句的性能好坏至关重要。
如果SQL语句性能很差,可能会导致整个数据库应用系统的性能也非常差。
那么,如何监控数据库系统中SQL语句的性能,导致SQL语句性能差的原因是什么?SQL语句运行过程中对系统资源的使用情况如何?系统资源存在哪些瓶颈?在Informi某11.5中,主要提供了两个工具来解决上述问题。
一个是ete某plain命令,我们可以通过查看数据库的查询计划来分析导致SQL语句性能差的原因并给予相应的调整,另一个是SQL下钻查询特性,通过它,我们可以分析系统中哪些SQL语句执行比较慢、SQL语句执行的时间是多少、SQL语句运行时对资源的占用情况及系统存在的瓶颈是什么并及时进行相应的调整。
下面,我们具体来看一下这两种监控工具的具体使用方法,希望对大家能有所帮助。
SETE某PLAIN命令当我们发现系统中某一个或一组SQL语句性能比较差时,我们往往会使用ete某plain命令来查看一下SQL语句的查询计划,看看SQL语句性能差的原因是什么并进行相应的调整。
在Informi某中,查询计划主要包括访问计划(acceplan)及表连接计划(joinplan)。
访问计划是指Informi某数据库是通过什么方法来读取磁盘上的数据。
一般来讲,Informi某主要提供以下几种访问计划:顺序扫描(Sequentialcan):数据库服务器按照物理顺序读取表中的所有记录。
索引扫描(Inde某can):数据库服务器读取索引页,并通过相应的ROWID来读取相关的记录。
键值扫描(Key-onlyinde某can):如果读取的相关数据包含在索引节点中,数据库服务器就只需读取索引,不需要再去读取相应的数据页。
键优先扫描(Key-firtinde某can):键优先扫描是一种索引扫描,它首先使用索引键过滤器来减少查询读取的数据量。
Informix SQL性能跟踪优化
Informix SQL性能跟踪优化
宋祖全;赵红
【期刊名称】《甘肃科技》
【年(卷),期】2011(27)12
【摘要】从大数据量数据库表中检索数据时,如果存在顺序扫描,将会严重影响查询性能.通过跟踪、分析判断是否存在顺序扫描及相应的解决办法,来提高SQL语句的执行性能.
【总页数】3页(P16-17,3)
【作者】宋祖全;赵红
【作者单位】兰州大学信息科学与工程学院,甘肃兰州730000;中国人寿保险股份有限公司甘肃省分公司,甘肃兰州730030;西北师范大学数学与信息科学学院,甘肃兰州730070
【正文语种】中文
【中图分类】TP392
【相关文献】
1.SQL查询优化技术在Informix数据库的应用 [J], 杜波;左爱群
2.用INFORMIX--ESQL/C实现SQL的嵌入 [J], 王爱冬
3.谈谈INFORMIX与INFORMIX—SQL共享硬盘 [J], 刘昌斌;施少强
4.浅谈INFORMIX SQL优化 [J], 帅哲明
5.基于Informix数据库典型低效率SQL语句的分析及优化方法 [J], 郑添健;索红敏
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
70000005036e9c8 Y--P---1706testcar - 700000091253708 0 2 0 0
提示:多次运行onstat –u观察重复出现的进程,使用onstat -g sql pid命令查看该进程ID对应的SQL
3.找到该SQL后,查看SQL的执行计划
set explain on;
select * from prpcmain ;
set explain off;
二、监控脚本
1.运行onstat –z清零profile
/home/testcar$onstat–z
Informix Dynamic Server Version 9.40.FC1 -- On-Line -- Up 1 days 12:51:15 -- 1034560 Kbytes
4.使用more查看px.sh生成的文件
/home/testcar$more PX-10312059.out
2.2 db_prof.sh
1..运行db_prof.sh脚本,运行该脚本后会生成db_prof*.out文件
/home/testcar$sh db_prof.sh
2.查看已经生成的文件名
/home/testcar$ls -lrt |grep db
2.运行px.sh脚本,运行该脚本后会生成px_*.out文件
/home/testcar$sh px.sh
3.使用ls–lrt|grep PX查看生成的文件名
/home/testcar$ls -lformix 0 Nov 1 14:45 PX-11011445.out
SELECT COUNT(*) FROM SYSTABLES
Last parsed SQL statement :
update PRPJFPAYEXCHSUB set AGENTCODE=?, BUSINESSNATURE=?, CERTITYPE=?,
COMCODE=?, CONTRACTNO=?, CURRENCY=?, FLAG=?, INSUREDCODE=?,
LICENSENO=?, operateTimeForHis=?, PAYNO=?, PAYREASON=?, PLANDATE=?,
REMARK=?, RISKCODE=?, STARTDATE=?, SUMPREMIUM=?, synchronouscode=? where
CERTINO=? and EXCHANGENO=? and SERIALNO=?
2.用onstat -g sql pid命令显示与进程对应的sql
/home/testcar$onstat -gsql1706
Informix Dynamic Server Version 9.40.FC1 -- On-Line -- Up 19:19:23 -- 952640 Kbytes
Sess SQL Current Iso Lock SQL ISAM F.E.
Informix SQL
一、
1.用onstat –u命令显示系统正在运行的进程
/home/testcar$onstat -u
Informix Dynamic Server Version 9.40.FC1 -- On-Line -- Up 19:18:34 -- 952640 Kbytes
Userthreads
-rw-r--r-- 1 testcar informix 6710 Oct 31 21:01 db_prof-10312100.out
3.查看生成的文件
/home/testcar$more db_prof-10312100.out
Id Stmt type Database Lvl Mode ERR ERR Vers Explain
1706 SELECT ims2100 CR Not Wait 0 0 9.03 Off
Current statement name : _ifxc0000000000001
Current SQL statement :