是不是我的INFORMIX有问题,请帮忙看下.
我机器OpenSUSE10.3CPU E6XXX 内存2G硬盘是SATA的..320G 8M..
机器做测试用(写后台程序)
INFORMIX版本
IBM Informix Dynamic Server Version 7.31.UD8 -- On-Line -- Up 21:55:33 -- 729184 Kbytes
过程如下:
我从一个文本数据库转数据到INFORMIX.
十万的表有三个.(这应该很轻松的吧) 其他的都一二万.
其中一个表有三十列.
我反复的导入,删表,再建再删.
大量测试查询..只是测个速度.
结果是写入很慢.(本来想用事务的,结果程序报错,说什么不是事务数据库)
但是,我建库的时候,记得很清楚,用的是WITH LOG
上述的所有数据写入要一分种.
八万的表,全查询.要5-8秒左右..(局域网,网络应该不是问题所在.)(为什么DBACCESS不到一秒搞定??)
程序层面上已经尽力优化了,哪位仁兄有经验,还望指教..用的是ESQL
本来接触INFORMIX时间短..原来是搞DB2的..很多不懂..
请各位指教..如何才能提高查询的响应时间..
我从网上看了各种配置的文章..
里面,有一个让我很在意
onstat -p
第二个%一直很低,,这正常吗?
我原来一直是0,后来导两次数据变成40%左右..但是网上说至少要到80%..是我配置有问题吗?
请赐教..万分感谢..
IBM Informix Dynamic Server Version 7.31.UD8 -- On-Line -- Up 22:09:09 -- 729184 Kbytes
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
29631 574821 925781899.68 315934 958666 567924 44.37
isamtotopen start read write rewritedelete commit rollbk
12267626 400390 264063 2597977257655 30 294 257424 6
gp_readgp_write gp_rewrt gp_del gp_alloc gp_freegp_curs
0 0 0 0 0 0 0
ovlock ovuserthread ovbuff usercpusyscpu numckpts flushes
0 0 0 165.43 28.00 80 532
bufwaits lokwaits lockreqs deadlksdltoutsckpwaits compress seqscans
12 0 28410620 0 0 5 5948 1531
ixda-RAidx-RA da-RA RA-pgsused lchwaits
4 0 3508 3512 2260
onconfig如下:
#**************************************************************************
#
# INFORMIX SOFTWARE, INC.
#
#Title: onconfig.std
#Description: Informix Dynamic Server Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace name
ROOTPATH /opt/informix/dbs/rootdbs
# Path for device containing root dbspace
ROOTOFFSET 256 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 2048000 # Size of root dbspace (Kbytes)
# Disk Mirroring Configuration Parameters
MIRROR 0 # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH # Path for device containing mirrored root
MIRROROFFSET 0 # Offset into mirrored device (Kbytes)
# Physical Log Configuration
PHYSDBS phydbs # Location (dbspace) of physical log
PHYSFILE 1016000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 6 # Number of logical log files
LOGSIZE 2000 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /opt/informix/logs/online.log # System message log file path
CONSOLE /dev/console # System console message path
ALARMPROGRAM /opt/informix/etc/log_full.sh # Alarm program path
SYSALARMPROGRAM /opt/informix/etc/evidence.sh # System Alarm program path
TBLSPACE_STATS1
# System Archive Tape Device
TAPEDEV /dev/null # Tape device path
TAPEBLK 16 # Tape block size (Kbytes)
TAPESIZE 10240 # Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
LTAPEDEV /dev/null # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)
# Optical
STAGEBLOB # Informix Dynamic Server/Optical staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a Dynamic Server instance
DBSERVERNAME IDS731 # Name of default database server
DBSERVERALIASES IDS_TCP # List of alternate dbservernames
NETTYPE ipcshm,1,80,NET # Configure poll thread(s) for nettype
NETTYPE soctcp,1,20,CPU # Configure poll thread(s) for nettype
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
RESIDENT 1 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR0 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 1 # Number of user (cpu) vps
SINGLE_CPU_VP 1 # If non-zero, limit number of cpu vps to one
NOAGE 0 # Process aging
AFF_SPROC 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors
# Shared Memory Parameters
LOCKS 200000 # Maximum number of locks
BUFFERS 300000
NUMAIOVPS 2 # Number of IO vps
PHYSBUFF 64 # Physical log buffer size (Kbytes)
LOGBUFF 256 # Logical log buffer size (Kbytes)
LOGSMAX 12 # Maximum number of logical log files
CLEANERS 4 # Number of buffer cleaner processes
SHMBASE 0x44000000 # Shared memory base address
SHMVIRTSIZE 80000 # initial virtual shared memory segment size
SHMADD 32768 # Size of new shared memory segments (Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 300 # Check point interval (in sec)
LRUS 4 # Number of LRU queues
LRU_MAX_DIRTY 70 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit
LTXHWM 50 # Long transaction high water mark percentage
LTXEHWM 60 # Long transaction high water mark (exclusive)
TXTIMEOUT 0x12c # Transaction timeout (in sec)
STACKSIZE 32 # Stack size (Kbytes)
# System Page Size
# BUFFSIZE - Dynamic Server no longer supports this configuration parameter.
# To determine the page size used by Dynamic Server on your platform
# see the last line of output from the command, 'onstat -b'.
# Recovery Variables
# OFF_RECVRY_THREADS:
# Number of parallel worker threads during fast recovery or an offline restore.
# ON_RECVRY_THREADS:
# Number of parallel worker threads during an online restore.
OFF_RECVRY_THREADS 10 # Default number of offline worker threads
ON_RECVRY_THREADS 1 # Default number of online worker threads
# Data Replication Variables
# DRAUTO: 0 manual, 1 retain type, 2 reverse type
DRAUTO 0 # DR automatic switchover
DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)
DRTIMEOUT 30 # DR network timeout (in sec)
DRLOSTFOUND /opt/informix/etc/dr.lostfound # DR lost+found file path
# CDR Variables
CDR_LOGBUFFERS2048 # size of log reading buffer pool (Kbytes)
CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)
CDR_DSLOCKWAIT5 # DS lockwait timeout (seconds)
CDR_QUEUEMEM 4096 # Maximum amount of memory for any CDR queue (Kbytes)
CDR_LOGDELTA 30 # % of log space allowed in queue memory
CDR_NUMCONNECT16 # Expected connections per server
CDR_NIFRETRY 300 # Connection retry (seconds)
CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)
# Backup/Restore variables
BAR_ACT_LOG /opt/informix/logs/bar_act.log # ON-Bar Log file - not in /tmp please
BAR_DEBUG_LOG /opt/informix/logs/bar_dbug.log
# ON-Bar Debug Log - not in /tmp please
BAR_MAX_BACKUP0
BAR_RETRY 1
BAR_NB_XPORT_COUNT 10
BAR_XFER_BUF_SIZE 31
# Informix Storage Manager variables
ISM_DATA_POOL ISMData # If the data pool name is changed, be sure to
# update $INFORMIXDIR/bin/onbar.Change to
# ism_catalog -create_bootstrap -pool <new name>
ISM_LOG_POOL ISMLogs
# Read Ahead Variables
RA_PAGES 128 # Number of pages to attempt to read ahead
RA_THRESHOLD 64 # Number of pages left before next group
# DBSPACETEMP:
# Dynamic Server equivalent of DBTEMP for SE. This is the list of dbspaces
# that the Dynamic Server SQL Engine will use to create temp tables etc.
# If specified it must be a colon separated list of dbspaces that exist
# when the Dynamic Server system is brought online.If not specified, or if
# all dbspaces specified are invalid, various ad hoc queries will create
# temporary files in /tmp instead.
DBSPACETEMP tmpdbs # Default temp dbspaces
# DUMP*:
# The following parameters control the type of diagnostics information which
# is preserved when an unanticipated error condition (assertion failure) occurs
# during Dynamic Server operations.
# For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No.
DUMPDIR /tmp # Preserve diagnostics in this directory
DUMPSHMEM 1 # Dump a copy of shared memory
DUMPGCORE 0 # Dump a core image using 'gcore'
DUMPCORE 0 # Dump a core image (Warning:this aborts Dynamic Server)
DUMPCNT 1 # Number of shared memory or gcore dumps for
# a single user's session
FILLFACTOR 90 # Fill factor for building indexes
# method for Dynamic Server to use when determining current time
USEOSTIME 0 # 0: use internal time(fast), 1: get time from OS(slow)
# Parallel Database Queries (pdq)
MAX_PDQPRIORITY 100 # Maximum allowed pdqpriority
DS_MAX_QUERIES # Maximum number of decision support queries
DS_TOTAL_MEMORY # Decision support memory (Kbytes)
DS_MAX_SCANS 1048576 # Maximum number of decision support scans
DATASKIP off # List of dbspaces to skip
# OPTCOMPIND
# 0 => Nested loop joins will be preferred (where
# possible) over sortmerge joins and hash joins.
# 1 => If the transaction isolation mode is not
# "repeatable read", optimizer behaves as in (2)
# below.Otherwise it behaves as in (0) above.
# 2 => Use costs regardless of the transaction isolation
# mode.Nested loop joins are not necessarily
# preferred.Optimizer bases its decision purely
# on costs.
OPTCOMPIND 2 # To hint the optimizer
ONDBSPACEDOWN 2 # Dbspace down option: 0 = CONTINUE, 1 = ABORT, 2 = WAIT
LBU_PRESERVE 0 # Preserve last log for log backup
OPCACHEMAX 0 # Maximum optical cache size (Kbytes)
# HETERO_COMMIT (Gateway participation in distributed transactions)
# 1 => Heterogeneous Commit is enabled
# 0 (or any other value) => Heterogeneous Commit is disabled
HETERO_COMMIT 0
# Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS
OPT_GOAL -1
# Optimizer DIRECTIVES ON (1/Default) or OFF (0)
DIRECTIVES 1
# Status of restartable restore
RESTARTABLE_RESTORE on
请各位多指教.
另外再次,感谢liaosnet上两次都是他帮的忙. 又是我..:mrgreen: :mrgreen: :mrgreen:
你的数据量很小,速度应该比较快的...至于使用esql慢(你说了dbaccess方式快,也就是说比较正常的.)..这个我不熟悉...没办法.
你说建表用了with log,那应该就是使用了日志方式..当然你可以从sysdatabases表中查询到相关信息.onmonitor也可以..
onstat -p中输出的write %cached 从你的操作来看,可以忽视了...你太多的insert操作,是不可能有高写cached的,同时从onstat -p输出看数据库还是在很不错的状态下(当然是因为你上而没跑业务,显得很空.:mrgreen: ) :mrgreen:
PS:找了下,好像偶没有7.31 for linux版的IDS,有空传份copy给偶..SN/KEY不用,偶有..
可以用9.40,10.0的换.
:mrgreen: :em17: 我QQ
26273826
现在外网,很差..今天就可以试.不行的话,明后天,,我回去再给你传.风速很快.
回复 #4 du51 的帖子
改天吧,现在网速慢...:em17: :em17:
页:
[1]