RE: Informix Transaction Logging
Posted in 2000
Without an explicit BEGIN WORK and COMMIT WORK, your SQL command is
treated as one transaction. I.E. There is an implied BEGIN WORK
before the SQL statement and an implied COMMIT WORK afterwards.
You indicate that both tables have 50,000 rows.
Do they also have the same row size, number of indexes, and
same index key sizes? All of these factor into the amount of data
which is being logged.
To get your delete operation to complete, you need to break the
unconditional DELETE command into multiple DELETE commands by using a
WHERE clause to delete a smaller number of rows at once.
Or you can increase your logical log space.
Rick
-----Original Message-----
From: Mike Bloom [mailto:mbloom@erols.com]
Sent: Saturday, July 08, 2000 08:18
To: informix-list@iiug.org
Subject: Informix Transaction Logging
I have a question about transaction logging in Informix Dynamic Server
7.3 Our database is in unbuffered logging mode. When I issue an SQL
command in dbaccess, such as "DELETE FROM table1", I soon get an SQL 458
error message - "Long Transaction aborted". There are about 50,000 rows
in this table. I am not issuing a BEGIN WORK statement, so I am curious as
to why transaction logging is still occuring.
To make matters more confusing, we have another database instance (also
in unbuffered logging mode) on our machine and when I issue a "DELETE FROM
table1" command in dbaccess in the other instance, it works fine. The table
in this other instance still has 50,000 rows in it. However, the
transaction log files do not appear to be growing in size when issuing this
command in the second instance. This is the behavior I would expect if I do
not issue a BEGIN WORK statement.
Can somebody shed some light on this as to why I may be getting this
long transaction error message when I have not specified a BEGIN WORK
statement? Thanks.
- Mike Bloom
mbloom@erols.com