|
IDS Forum
Re: TEMPDBSPACE HELP
Posted By: Martin Fuerderer Date: Monday, 29 March 2004, at 7:03 a.m.
In Response To: TEMPDBSPACE HELP (Preetinder Dhaliwal )
Hi,
I don't think that this is a problem of default size for temporary tables.
Most probably what happens is, that for the sort one table is created in one of the two temp dbspaces. As the sort proceeds, this one table grows bigger and bigger, eventually filling this temp dbspace. At this point the error is issued, because even more space would be needed.
This is a known problem (not sure what version of IDS you're using). Once a temp table has been created, it "sits" in the temp dbspace where it was created. It can't move to another temp dbspace and it can't utilize space from another temp dbspace. When that table (with the "help" of other temp tables or by its own) outgrows the space in that temp dbspace, then the client will get the error you are seeing. Of course immediately afterwards the space is freed (it's a temp table after all), and thus you might not see in "onstat -d" output that one of the temp dbspaces was full.
[ Multiple temp dbspaces are used in a kind of round-robin fashion, i.e. each time a new temp table needs to be created a different temp dbspace is used. This might not be the optimal choice regarding space utilization, especially when the temp dbspaces are of different sizes. But often it is not known at temp table creation time, how big the table will grow. Therefore multiple temp dbspaces are utilized best when several temp tables are needed concurrently, which will distribute them over the configured temp dbspaces, e.g. for multiple users running similar queries. ]
For sorting, a different mechanism can be used by setting environment variable PSORT_DBTEMP in the environment of the client (in your case the 4gl application). This can be a dbspace or even a file system directory. Please see the manual (one of the three SQL manuals) for more information on this environment variable and possible settings.
With this environment variable temporary sorting space can be handled individually for applications and even for users. This is quite useful in your situation, because you have one specific report that needs much more temp space than usual operation. Therefore you do not need to allocate huge space in (permanently configured) temp dbspaces, but you can utilize space in file system(s) as needed, i.e. just for the report.
Regards, Martin -- Martin Fuerderer IBM Informix Development Munich Data Management Solutions
"Preetinder ...." <preetinder.dhaliwal@dhl.com> Sent by: forum.subscriber@iiug.org 29.03.2004 08:09
To ids@iiug.org cc
Subject TEMPDBSPACE HELP [2758]
Hi,
We have an informix 4gl report ( does not create any tables explicitly ) which has an order by clause on 7 to 8 fields. The record being output to report is very big.
We have our DBSPACETEMP variable exported to "DBSPACETEMP=ibs_tmpdbs1:ibs_tmpdbs2" , output of onstat -c and onstat -d are attached( are text files).
When we run this report for lot of data, we get this error - sqlca.sqlcode = -271 , ISAM ERROR CODE = -136 ( no more extents ).
The tempdbs spaces show enough space , and there are no tables created within the program.
It looks like the default extent size used by informix to create temp tables for sorting is not big enough. any way we can override this ?
Also the problem occurs if I run the same report from two sessions. Are they trying to use same informix temp table??
Rgds Preetinder
=======================
------------------------------------------------------------------------
Informix Dynamic Server Version 7.31.UD6W4 -- On-Line -- Up 07:00:22 -- 712016 Kbytes
Dbspaces address number flags fchunk nchunks flags owner name 9bdae158 1 1 1 1 N informix ibs5_rootdbs 9bdd92a0 2 1 2 1 N informix ibs5_logdbs1 9bdd9360 3 2001 3 1 N T informix ibs5_tmpdbs1 9bdd9420 4 1 4 1 N informix ibs5_tmpdbs2 9bdd94e0 5 1 5 1 N informix ibs5_cydbs1 9bdd95a0 6 1 6 2 N informix ibs5_egdbs1 9bdd9660 7 1 8 7 N informix ibs5_cydbs3 9bdd9720 8 1 19 6 N informix ibs5_cydbs2 9bdd97e0 9 1 21 5 N informix ibs5_egdbs2 9bdd98a0 10 1 15 2 N informix ibs5_cydbs4 9bdd9960 11 1 47 1 N informix ibs5_logdbs2 11 active, 2047 maximum
Chunks address chk/dbs offset size free bpages flags pathname 9bdae218 1 1 0 128000 106845 PO- /dev/infdev/ibs5_rootdbs.1 9bdaf220 2 2 0 256000 45947 PO- /dev/infdev/ibs5_logdbs1.1 9bdaf328 3 3 0 256000 255447 PO- /dev/infdev/ibs5_tmpdbs1.1 9bdaf430 4 4 0 256000 254397 PO- /dev/infdev/ibs5_tmpdbs2.1 9bdaf538 5 5 0 1024000 793864 PO- /dev/infdev/ibs5_cydbs1.1 9bdaf640 6 6 0 1024000 1023447 PO- /dev/infdev/ibs5_egdbs1.1 9bdaf748 7 6 0 1024000 1023997 PO- /dev/infdev/ibs5_egdbs1.2 9bdaf850 8 7 0 1024000 352127 PO- /dev/infdev/ibs5_cydbs3.1 9bdaf958 9 7 0 1024000 389725 PO- /dev/infdev/ibs5_cydbs3.2 9bdafa60 10 7 0 1024000 829088 PO- /dev/infdev/ibs5_cydbs3.3 9bdafb68 11 7 0 1024000 1023881 PO- /dev/infdev/ibs5_cydbs3.4 9bdafc70 12 7 0 1024000 1021773 PO- /dev/infdev/ibs5_cydbs3.5 9bdafd78 13 7 0 1024000 1023997 PO- /dev/infdev/ibs5_cydbs3.6 9bdafe80 14 7 0 1024000 1023997 PO- /dev/infdev/ibs5_cydbs3.7 9bdd8430 15 10 0 1024000 15139 PO- /dev/infdev/ibs5_cydbs4.1 9bdd8538 16 10 0 1024000 122510 PO- /dev/infdev/ibs5_cydbs4.2 9bdd8640 19 8 0 1024000 12021 PO- /dev/infdev/ibs5_cydbs2.1 9bdd8748 20 8 0 1024000 25 PO- /dev/infdev/ibs5_cydbs2.2 9bdd8850 21 9 0 1024000 242 PO- /dev/infdev/ibs5_egdbs2.1 9bdd8958 22 9 0 1024000 590446 PO- /dev/infdev/ibs5_egdbs2.2 9bdd8a60 23 9 0 1024000 1023997 PO- /dev/infdev/ibs5_egdbs2.3 9bdd8b68 24 9 0 1024000 1023997 PO- /dev/infdev/ibs5_egdbs2.4 9bdd8c70 25 9 0 1024000 1023997 PO- /dev/infdev/ibs5_egdbs2.5 9bdd8d78 47 11 0 1024000 18947 PO- /dev/infdev/ibs5_logdbs2.1 9bdd8e80 48 8 0 1024000 908684 PO- /dev/infdev/ibs5_cydbs2.3 9bdd8f88 49 8 0 1024000 1023997 PO- /dev/infdev/ibs5_cydbs2.4 9bdd9090 50 8 0 1024000 1023997 PO- /dev/infdev/ibs5_cydbs2.5 9bdd9198 51 8 0 1024000 1023997 PO- /dev/infdev/ibs5_cydbs2.6 28 active, 2047 maximum
------------------------------------------------------------------------
Informix Dynamic Server Version 7.31.UD6W4 -- On-Line -- Up 07:00:14 -- 712016 Kbytes
Configuration File: /usr/informix_7.31/etc/onconfig.ibs5 #************************************************************************** # # INFORMIX SOFTWARE, INC. # # Title: onconfig.std # Description: Informix Dynamic Server Configuration Parameters # #**************************************************************************
# Root Dbspace Configuration
ROOTNAME ibs5_rootdbs # Root dbspace name ROOTPATH /dev/infdev/ibs5_rootdbs.1 # Path for device containing root dbspace ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes) ROOTSIZE 256000 # 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 ibs5_rootdbs # Location (dbspace) of physical log PHYSFILE 40000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 63 # Number of logical log files LOGSIZE 20000 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /usr/informix/logs/ibs5_srv.log # System message log file path CONSOLE /dev/console # System console message path ALARMPROGRAM /usr/informix_7.31/etc/log_full.sh # Alarm program path SYSALARMPROGRAM /usr/informix_7.31/etc/evidence.sh # System Alarm program path TBLSPACE_STATS 1
# System Archive Tape Device
TAPEDEV /dev/null # Tape device path TAPEBLK 512 # Tape block size (Kbytes) TAPESIZE 80000000 # Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
LTAPEDEV /dev/null # Log tape device path LTAPEBLK 512 # Log tape block size (Kbytes) LTAPESIZE 8000000 # Max amount of data to put on log tape (Kbytes)
# Optical
STAGEBLOB # Informix Dynamic Server/Optical staging area
# System Configuration
SERVERNUM 21 # Unique id corresponding to a Dynamic Server instance DBSERVERNAME ibs5_srv # Name of default database server DBSERVERALIASES # List of alternate dbservernames NETTYPE soctcp,2,350,NET # Configure poll thread(s) for nettype DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env. RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor NUMCPUVPS 4 # Number of user (cpu) vps SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
NOAGE 1 # Process aging AFF_SPROC 0 # Affinity start processor AFF_NPROCS 0 # Affinity number of processors
# Shared Memory Parameters
LOCKS 500000 # Maximum number of locks BUFFERS 200000 # Maximum number of shared buffers NUMAIOVPS 30 # Number of IO vps PHYSBUFF 256 # Physical log buffer size (Kbytes) LOGBUFF 128 # Logical log buffer size (Kbytes) LOGSMAX 100 # Maximum number of logical log files CLEANERS 30 # Number of buffer cleaner processes SHMBASE 0x0 # Shared memory base address SHMVIRTSIZE 256000 # initial virtual shared memory segment size SHMADD 64000 # Size of new shared memory segments (Kbytes) SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited CKPTINTVL 1200 # Check point interval (in sec) LRUS 128 # Number of LRU queues LRU_MAX_DIRTY 5 # LRU percent dirty begin cleaning limit LRU_MIN_DIRTY 2 # 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 /usr/informix_7.31/etc/dr.lostfound # DR lost+found file path
# CDR Variables CDR_LOGBUFFERS 2048 # size of log reading buffer pool (Kbytes) CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional) CDR_DSLOCKWAIT 5 # 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_NUMCONNECT 16 # 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 /usr/informix/logs/bar_act.log # ON-Bar Log file - not in /tmp please BAR_DEBUG_LOG /usr/informix/logs/bar_dbug.log # ON-Bar Debug Log - not in /tmp please BAR_MAX_BACKUP 0 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 # Number of pages to attempt to read ahead RA_THRESHOLD # 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 ibs5_tmpdbs1,ibs5_tmpdbs2 # 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 /infdump # 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 10 # Maximum allowed pdqpriority DS_MAX_QUERIES 500 # Maximum number of decision support queries DS_TOTAL_MEMORY 120000 # Decision support memory (Kbytes) DS_MAX_SCANS 256 # 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 0 # 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
Messages In This Thread
- TEMPDBSPACE HELP
Preetinder Dhaliwal -- Monday, 29 March 2004, at 1:09 a.m.
- Re: TEMPDBSPACE HELP
Martin Fuerderer -- Monday, 29 March 2004, at 7:03 a.m.
- RE: TEMPDBSPACE HELP
NormaJean.Sebastian@tellabs.com -- Monday, 29 March 2004, at 8:18 a.m.
IDS Forum is maintained by Administrator with WebBBS 5.12.
|
|