Ibm Informix Placement Papers - Ibm Informix Interview Questions and Answers updated on 20.Apr.2024

The most common page size used is 2KB, though some systems uses 4KB page.

If a table is designed without specifying extent sizes, Informix uses a default of 16 pages for the first and 8 pages for each subsequent extent. Extent sizing is done when the table is initially created.

  • DIRTY READ: Reads the data without checking if it’s committed or not. No locks are held during the read
  • COMMITTED READ: Reads only the committed data. No locks held
  • REPEATABLE READ: Reads only the committed data. A shared lock is held on the rows. Other sessions can obtain shared locks on those rows, but no one can get an exclusive lock.
  • CURSOR STABILITY

  • onparams -p -s -d -y
  • onmonitor utility
  • in newer IDS versions, use the SQL API to alter the plog location

If Informix is still online, you can get a new onconfig with:

onstat -c >onconfig

If Informix is offline, you can retrieve the settings from the database with:

oncheck -pR
or
oncheck -pP 1 1

INNER JOIN, LEFT / RIGHT OUTER JOIN, FULL OUTER JOIN, CROSS JOIN

A DBA can use directives mostly to change / test / evaluate the execution plan (costs / benefits) for a query, by forcing an index / change join order / etc.

Informix IDS provide following modes:-

  1. Online mode: This is the normal operating mode of the database server.
  2. Offline mode?: The database server is not running. Shared memory is not allocated.
  3. Quiescent mode: This is the normal operating mode of the database server.

    Administrators use this mode to perform maintenance functions that do not require the execution of SQL and DDL statements. Only the administrator (user informix) can access the database server.

  4. Single-User mode: This mode is an intermediary mode between Quiescent mode and Online mode?

    Administrators use this mode to perform any maintenance task, including tasks requiring the execution of SQL and DDL statements. Administrators can also perform all other functions available in Online mode. You can see the current database server mode by executing the onstat - utility from the command.

Informix Universal Server was the brand name given to the 9.X versions of the product; the upgrade from the Informix Dynamic Server (IDS) 7.X products, skipping the XPS 8.X release numbers. The 9.X server contained a number of functional advances (data type extensibility, DataBlades etc), as well as improvements to the storage manager and SQL processing. The most recent versions of the Informix line -- 10.X -- are an evolutionary progression over the 9.X engine.

  • Index (along with database and table) consistency can be verified with oncheck -cDI database_name:table_name. Preferably with the instance put in quiescent mode.
  • If just the index is corrupted (and not fixable by oncheck), an option will be to recreate the index.

If the DBA has a query inside a script / program that connects to an Informix instance through an ODBC connection, and running the query results in an error, then he can use the TRACE functionality, and return DBINFO(sqlca.sqlerrd[1,2]).

The database server uses a concept called key-value locking to lock the deleted row. When the database server deletes a row, key values in the indexes for the table are not removed immediately. Instead, each key value is marked as deleted, and a lock is placed on the key value. One of the most important uses for key-value locking is to assure that a unique key remains unique through the end of the traction that deleted it.

  • The DBA can use:
  • The onmonitor utility
  • oncheck -pe | egrep “DBspace Usage Report|” | more
  • A query joining sysdbspaces and sysdatabases tables located in the sysmaster database

  • Running update statistics will update the system catalog information about the database.
  • This information is used by the Informix optimizer to calculate costs and execution pl for day to day queries. Lack of up-to-date information about data distributions may result in severely bad pl.

You may ask questions about Perl, DBI and DBD::Informix, but only if an IBM or Informix database is involved, somehow -- it is not a general forum for arbitrary questions about Perl. However, there are alternative forums that you should also use, described in the product. 

The informix-list@iiug.org mailing list is a bi-directional gateway to the comp.databases.informix (c.d.i) UseNet news group. Messages posted to the news group are forwarded by mail to subscribers of the mailing list; responses sent to the informix-list@iiug.org email address are also posted to the news group; and the gateway manages to keep track of things so that postings do not repeat themselves. The mailing list is 'closed' in that you cannot post directly to the list unless you also subscribe to the list. However, you can always post to the news group instead; that is fully open and unmoderated.

By setting PDQ PRIORITY the DBA can change the query execution priority and increase the number of internal threads spawned by Informix to satisfy the query. Also, some memory allocation strategies differ upon setting PDQPRIORITY.

  • Fragment elimination appears when the following conditions are all satisfied:
  • A table is fragmented
  • The fragmentation formula doesn’t create overlapping ? asta oricum nu e permis (overlapping)
  • A query uses equality filter on a column used in the fragmentation formula
  • If the above conditions are met, the Informix engine can skip fragments (data is not searched there) that don’t comply with the query filter

 

IBM released Informix

In Informix, the smallest unit containing data is the “page”. A continuous group of pages form an extent

A collection of informix processes in charge of:

  • Informix shared memory structures
  • Receive user session connection, and puts them in contact with the data
  • Gather data statistics
  • Allow backup / recovery actions
  • Interact with the user sessions
  • At the OS level, an instance can be “seen” as one ore more oninit processes + memory structures + disk / persistence structures

An Informix instance is a single connection to shared memory. It is represented by one or more on init processes. When Informix is started or stopped, these processes appear and disappear. Informix used to use the term "server" when referring to an instance, hence the environment variable DBSERVERNAME.

We can use the SQLCA structure to get the ISAM Error.

sqlca.sqlerrd[1] holds the ISAM error return code.

We can also use the rgetlmsg() and rgetmsg() library functions to obtain ISAM error message text.

Yes, you can start Informix in verbose mode:

oninit -v (this works on NT as well)

Informix will print everything that happens.

To close the verbose mode: start a second terminal session (UNIX) or command prompt (NT) and execute:

onmode -ky

N.B. Don't close your terminal session (UNIX) or command prompt (NT) while in verbose mode. This will take Informix offline immediately.

A chunk is a physical portion of disk on which Informix stores its data. A chunk can be either a raw partition or a file system file. Informix suggests that a chunk's name be a symbolic link to the actual chunk. For example, if you are using /dev/rdsk/c6t0d0s1 as a chunk, you could create a symbolic link named /dev/informix/chunk1 that points to /dev/rdsk/c6t0d0s@That way, if there are ever any problems with that disk, you could replace the disk with another one and just change the symbolic link.

  • ONLINE : instance is up & running, allowing connections from all the users (that have the necessary grants)
  • OFFLINE: instance is down. No connections to the database allowed
  • SINGLE USER: instance is up & running, but only user informix can access the database. Useful when DBA wants to close all the user sessions, perform some task and bring the instance in multi user mode
  • QUIESCENT: Similar with SINGLE USER mode, useful for maintenance task (recovery / recovery of a corrupt or offline dbspace chunk)

 

Light sc occur under the following conditions: The optimizer chooses a sequential scan of the table. The number of pages in the table is greater than the number of buffers in the buffer pool. The isolation level obtains no lock or a shared lock on the table: Dirty Read (including non logging databases) isolation level Repeatable Read isolation level if the table has a shared or exclusive lock Committed Read isolation if the table has a shared lock

foreground writes (FG) should always be zero. A foreground write is caused when a session needs to have a page from disk placed into the buffer pool, but there are no clean/free buffers available. In this case, the sqlexec thread will pick a page off the least recently used side of an LRU queue, write it out, and mark the page as clean. This process is time consuming for a session and should be avoided.

A light scan may occur when Informix internal optimizer decides that the best execution plan will be a sequential scan (bad query selectivity, lack of indexes…). In this case, if the optimizer further decides that the data set resulting from the query will not fit in the buffer pool, it will bypass it. The result is a light scan.

The “chunk” is a file containing informix database data (or a subset of that data). In can be a file on a internal disk (cooked file) or a raw device (from a SAN platform or internal disks/arrays).

  • On a platform with fast cpus, write low performance and compresable data, the ontape output may be piped and compressed before getting on disk (less IO write operations).
  • With onbar, greater backup speeds can be achived by:
  • Increase the number of onbar threads -> BAR_MAX_BACKUP
  • Increase the buffers used by onbar (if memory is available) ? BAR_NB_XPORT_COUNT
  • Use a fast storage for the storage pool (We use onbar + IBM Tivolli Storage Manager)
  • Consider taking incremental backups

  • You are still using 9.4 ? It’s out of support for 3 years … . We upgraded from 10.00FC6 to 11.50FC7 last year.
  • The first Informix database I started to administrate was IDS 10.00FC@So my best guess is that 9.4 introduced partially non blocking checkpoints (fuzzy checkpoints ?), these being superseded in the latter versions.
  • The checkpoint is the moment when Informix will flush the contents from the bufferpool to disks.

Whenever Informix sqlexec process searches for a free / clear buffer in order to read a page from the disk into that buffer is called foreground write operation. The performance penalty appears when there are no free / clean buffers left, and sqlexec has to search for a less used buffer, write its content to disk, clean the buffer and reuse the buffer for a foreground write operation – having the disadvantage of NOT being asynchronous (as chunk writes/lru writes)

None; this is a news group! That is, there are no rules enforced by the software. There are periodically discussions on c.d.i about what should and should not be said. This is my FAQ, so it gets my spin on the rules that should be followed.

* Format: HTML postings are strongly discouraged; so are MIME postings. Both cause problems with many frequently used news readers. That me that attachments aren't encouraged either. Also, sending the same information twice, once in HTML and once in plain text, is downright wasteful.

  • A dbspace can have one or more partitions. Each partition has a special “header” info in the first extent.
  • The partition header keeps a list of the partition’s extents. If the object holding the space in the partition (table / index) has a great number of extents, the header may not be able to keep the full list.
  • Workarounds:
  • increase first / next extent size and recreate the object
  • change the page size -> will result in a lower number of extents
  • recreate the index in a dbspace having a larger page size

Yes, but you need to install version 7.30 TC 6 or higher.

  • Any object for whom its binary data file can be stored and restored with success into a database can be considered a BLOB.
  • As an example, an ecommerce site can store the product photos and videos inside a database. But that’s not a best practice.

 

A binary large object, also known as a blob, is a collection of binary data stored as a single entity in a database management system. Informix invented an alternative backronym, Binary Large Object. Blobs are typically images, audio or other multimedia objects, though sometimes binary executable code is stored as a blob.

  • Monitor impact on system’s CPU:
  • Instance sys vcpu + Instance user vcpu
  • Locks requests / waits
  • Active locks
  • Monitor impact on system’s storage (IO) / memory:
  • Buffer reads / writes / waits
  • Page reads / writes /
  • Disk reads / writes
  • Logical contention:
  • lock requests / waits
  • deadlocks
  • eventually rollbacks
  • Monitor instance health & status
  • Dbspaces total / used / free space
  • Checkpoint intervals & duration
  • Sequential sc number
  • Number of not yet backup-ed logical logs
  • Number of active sessions
  • And of course the instance online log.

 

The Informix database management system was conceived and designed by Roger Sippl in the late 1970s. Informix was founded in 1980, went public in 1986, and for a period during the 1990s Informix was the second most popular database system, after Oracle.

  • EXECUTE FUNCTION task(“ha sds primary”,”srv_slave”);
  • If it is HDR and the secondary becomes the new standalone server: onmode -d standard