You cannot turn off logging for a single table, unless you convert it to
raw. Raw tables cannot have indexes. You can make the process more efficient
by disabling the indexes you don't require for the update and re-enable them
afterwards. Other than that, here are some alternatives that require
exclusive use of the table during the update:
1) Write all the records to a temp table. Make sure that the updated version
of any record that is changed gets written to the temp table, rather than
the original. Include all unchanged records in the copy too. Afterwards drop
the original table, recreate it and reload it. Of course this approach is
far riskier. If the engine crashes during building the new table then you
are going to be in trouble.
2) Create a new table, same as original and all the same indexes and use HPL
to load it [assuming you can figure a select that will provide the correct
updated values along with the unchanged records]. Drop original and rename
the new table afterwards.
3) As with 2, use a raw table instead and whatever program you have for
performing updates. Drop original table at the end, rename this one and add
all the indexes you need.
Mark
----- Original Message -----
From: "Pantelis Magos" <pas (AT) logifer (DOT) gr>
To: <ids (AT) iiug (DOT) org>
Sent: Monday, September 15, 2003 07:08
Subject: Turn off logging for a single table [1871]
Quote:
Hi all
Informix IDS 7.3 or 9.2 / Unix
Database Non-ANSI mode, Unbuffered logging.
Is it possible to turn off logging, temporarily, for a specific DB table
only
in order to speed up subsequent updates over this?
The table has 1 millon rows and 85% will be affected by the updates.
(Table has indexes but not in fields for update)
P.Magos |
sending to informix-list