一、硬件层面优化
二、操作系统级优化
/etc/sysctl.conf,优化内存与I/O相关参数:vm.overcommit_memory=2(避免内存过度分配)、vm.swappiness=10(降低swap倾向)、fs.file-max=65536(增加文件描述符上限);调整I/O调度器为deadline或noop(echo deadline > /sys/block/sdX/queue/scheduler),减少I/O等待时间。noatime,nodiratime选项(禁用访问时间更新,减少磁盘写操作);用tune2fs调整文件系统日志参数(如data=writeback,提升写入性能)。三、数据库配置优化
ONCONFIG关键参数:BUFFERS设置为物理内存的25%-40%(缓存数据页,减少磁盘I/O);LRUS(缓冲池数量)设为CPU核心数的1.5-2倍(提升并发缓存访问);SHMVIRTSIZE(共享内存初始大小)设为物理内存的10%-20%(避免频繁扩展共享内存)。numcpuvps(如4核CPU设为4-8),启用多处理器支持(multiprocessor=1);对关键表空间使用裸设备(RAW设备),绕过文件系统层,提升I/O性能。vpclass参数替代onlyovp(如vpclass io,num=2),合理分配I/O线程,提升磁盘利用率。四、存储空间管理优化
COMPRESS(行级压缩,减少表/分片存储空间,压缩率可达30%-70%)、REPACK(将表末尾行移至前端空闲空间,释放末尾碎片)、SHRINK(释放表末尾空闲空间,缩小表大小)、DEFRAGMENT(合并小extent,减少extent数量,提升空间利用率)。df -h查看磁盘整体使用情况,du -sh *分析目录/文件大小(定位大文件);用onstat -d2监控chunk剩余空间(避免空间耗尽导致数据库崩溃);定期清理无用文件(如旧日志、临时文件,用find / -name "*.log" -mtime +30 -exec rm {} \;删除30天以上日志)。lvextend -L +100G /dev/vg_informix/lv_data),避免物理磁盘空间不足问题。五、索引与查询优化
WHERE、JOIN、ORDER BY子句中的列创建索引(如主键、外键);使用复合索引(覆盖多个列,如(customer_id, order_date)),提升多条件查询性能;避免在索引列上使用函数(如WHERE UPPER(name) = 'JOHN'),防止索引失效。UPDATE STATISTICS HIGH更新表统计信息(帮助优化器选择最优执行计划);避免全表扫描(通过EXPLAIN分析查询计划,添加缺失索引);优化SQL语句(如用JOIN替代子查询、限制结果集大小LIMIT 100)。六、监控与维护
onstat(如onstat -g ses查看会话、onstat -g sql查看SQL语句、onstat -p查看性能指标)、iostat(监控磁盘I/O利用率、等待时间)、vmstat(监控内存、CPU使用情况)定期检查系统性能,及时发现瓶颈。UPDATE STATISTICS HIGH);每月重建碎片化索引(ALTER INDEX idx_name REBUILD);每季度清理日志文件(如onlog日志,用onclean工具);每年进行存储容量规划(根据业务增长调整chunk大小或添加新磁盘)。