informix数据库调优

原创 2016年05月30日 11:32:13

调优思路整理如下

一、PDQ

即利用infomix提供的PDQ(并行数据库查询)功能,并结合Power8处理器的SMT特性来提高SQL查询效率

PDQ允许数据库服务器将查询一个方面的某个工作分发给几个处理器。例如:如果查询要求聚集,则数据库服务器可以将聚集工作分发给几个处理器。而这次比赛的第二个题目,刚好用到了时间序列的AggregateRange 聚集函数,特别适用PDQ查询的场景。

SMT命令

Linux Power8服务器设置SMT命令如下:
1、查看smt

[root@loofweek ~]# ppc64_cpu --smt

2、关闭smt

[root@loofweek ~]# ppc64_cpu --smt=off

3、设置smt

[root@loofweek ~]# ppc64_cpu --smt=8

使用PDQ

使用PDQ时,首先要申明所做的操作是PDQ操作,通过执行:set pdqpriority high可以打开PDQ开关。执行完以后,应关闭PDQ开关:set pdqpriority low;其次,为了更好的发挥PDQ技术,应该对操作的数据表进行数据分割;最后运用PDQ技术应该选择多CPU的机器。当使用如下操作时,将不能启动 PDQ:
(1)查询使用了”cursor stablility”的隔离等级;
(2)查询使用了update游标或者游标定义为”with hold”;
(3)查询使用了嵌套子查询;
(4)查询中使用了存储过程;
(5)查询中不包含scan,join,sort,group,aggregate。

PDQ监控

使用onstat -g mgm可以监控PDQ使用情况。

二、CPU VP参数设置

NUMCPUVPS

NUMCPUVPS设置为能够处理承接任务的最小的数,这个数目小于或等于系统中可利用的CPU数,建议不要将CPU VP数设置成大于可用CPU数目。通常对于联机事务处理(OLTP)应用:NUMCPUVPS=实际CPU数量-1(对于单CPU系统,该参数应为1);对于联机分析处理(OLAP)应用:NUMCPUVPS=实际CPU数量。

通过ONCONFIG文件配置NUMCPUVPS

NUMAIOVPS

AIO,负责磁盘I/O任务;(KAIO),通过ONCONFIG文件进行配置NUMAIOVPS参数,一般配置为CHUNK的个数,当使用KAIO时,配置为2个即可;

其它
PIO,负责物理日志写任务,系统自动分配1~2个VPS;
LIO,负责逻辑日志写任务, 系统自动分配1~2个VPS

监控命令

1、onstat -g rea

/usr/informix >onstat -g rea 
Informix Dynamic Server Version 9.30.FC5 -- On-Line -- Up 36 days 00:22:32 - 
- 5352416 Kbytes 
Ready threads: 
tid tcb rstcb prty status vp-class name

命令说明:
onstat -g rea监控了就绪队列中的线程数目。包括准备运行而且在等待资源的线程。理想的状态下是输出极少的条目或者不显示任何条目。如果输出的某种 VP 类条目持续增长, 那么就要考虑在该类中添加VP。

2、onstat-g ioq

onstat -g ioq 监控AIO队列,监控I/O请求队列LEN和MAXLEN来观察AIO的情况。
onstat -g ioq指令的输出中,最需要关注的列是len列。len列的值应该总是为 0 或接近于 0。如果该列的值很高并持续增长,那么我们可能需要添加另一个 AIO/KAIO 虚拟处理器来减少磁盘 I/O 负载。

三、内存使用效率的参数调整和监控

Informix IDS 使用的内存部分被数据库服务器线程以及其他用户和虚拟进程共享,所以这部分的内存叫做共享内存,共享内存减少磁盘 I/O, 提供了最快地进行进程间通信的方法,还可以使数据库服务器减少总的内存使用。

Informix IDS共享内存分为四个部分:驻留部分、虚处理部分、消息部分和虚拟扩展区部分,其中消息部分只有在客户机和服务器采用共享内存方式连接时才有,而且尺寸很小。虚拟扩展区也极小,它包含了用于 DataBlade 模块的线程 heaps 和其他在用户定义的虚拟处理器中运行的用户定义例程。

命令 onstat -p是监控内存的另一个命令。其输出结果中的两个%cache显示了读写高速缓存比例的百分比,一般在80%到90%之间,如果低于80%,要调节BUFFERS参数值。ovlock 字段表明 IDS 在使用了最大数量的锁之后尝试过再使用锁的次数,如果该数字非零,可能需要提高配置文件中 LOCKS 参数的值。ovbuf 字段表明 IDS 在使用了最大数量的缓冲区之后尝试过再使用缓冲区的次数。如果该数字很大,比如说超过 100000,就需要提高 BUFFERS 参数,以便用户在需要从磁盘访问数据时不必等待缓冲区。在监控内存的使用情况时还可以采用Unix系统命令vmstat。

写这篇文章最直接原因是完成Power8实验室极限算法挑战赛物联网智能家居时间序列分析中调优部分的任务,由于时间及服务器资源紧张问题,并未在实际中进行参数调优及比较,实在有些小遗憾。

参阅资料如下:

1、论如何开发优质高效的Informix数据库应用程序

2、Informix调优

版权声明:本文为博主原创文章,未经博主允许不得转载。

Informix SQL 语句性能调优最佳实践

SQL 执行计划 关于执行计划,我们可以把它简单的理解成 SQL 语句执行时访问数据的方式。执行计划的优劣是影响 SQL 执行效率的重要因素。它包括:查询优化器认为最优的数据访问路径,返回记录数的估...
  • ltt4172406
  • ltt4172406
  • 2014年07月24日 17:08
  • 2429

informix性能调整(1)

1。dbspaces位置logdbs, phydbs, tmpdbs, blobdbs, datadbs不要与rootdbs放在一起。最好将各日志放在不同的硬盘上,以提高读写效率。对服务器来说,一盘多...
  • vinep
  • vinep
  • 2006年11月05日 14:01
  • 1095

informix的性能优化

informix的性能优化 以下是我用INFORMIX DATABASE的一点体会,分享给大家,欢迎大家一起探讨!   1. 日志缓冲    如果不怕丢失几个事务则最好用缓冲日志,这样可以得到更好的...
  • zhengfeng2100
  • zhengfeng2100
  • 2013年07月29日 11:54
  • 1621

informix数据库常用操作

转载至:http://dcrpp.iteye.com/blog/714774  根据个人工作经验的以及网上找的资料整理汇总,感谢网上网友提供的资料。     查看数据库实例名: dbacce...
  • om001om
  • om001om
  • 2011年12月05日 14:28
  • 15043

Informix常用操作方法命令

1. 相关文件 l  informix配置文件: informix配置文件定义数据库的各种参数设置,通过环境变量$ONCONFIG指定,存放在informix用户的etc目录下,如$ONCONFI...
  • konglongaa
  • konglongaa
  • 2016年07月09日 16:53
  • 2569

informix数据库基础

公司正在做的项目使用了informix作为数据库,用下来,感觉比SQL Server难用多了,也没有完整的帮助文档。在网上搜索了N多帖子,才汇聚成下面的文章,谢谢http://bbs.chinauni...
  • wx0553
  • wx0553
  • 2006年09月26日 19:20
  • 3271

informix数据库锁表处理步骤

时间:2016/5/3   1、onstat -ks|grep HDR+X   //查询是那个表被锁 address  wtlist   owner  lklist   type    tbls...
  • zhangzenghua
  • zhangzenghua
  • 2016年05月03日 15:26
  • 2072

Java 程序连接 Informix 数据库方法实例介绍

Java 程序连接 Informix 数据库方法实例介绍 Informix 是一种应用广泛的关系型数据库服务器,支持多种类型的客户端连接程序,包括 .Net、Java、PHP 等。对于 Jav...
  • konglongaa
  • konglongaa
  • 2016年07月18日 09:10
  • 1572

C#操作Informix数据库

在做开发的过程中,有时会向数据库中插入大批量数据,比如几十万条记录。由于这次使用的是Informix,这个数据库的客户端都不怎么好用,导入数据总是出问题,于是干脆自己写个程序,把记录从文件中读出来,插...
  • Crystal_oscillator
  • Crystal_oscillator
  • 2013年07月26日 23:15
  • 2117
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:informix数据库调优
举报原因:
原因补充:

(最多只允许输入30个字)