Re: "Transaction too long", but no logging
Posted in 1996
Topics: Data Types & Schema Design, Logging & Checkpoints
Monika Huk wrote:
>
> I have the following problem:
>
> I want to create an index on a table which contains 25.000.000 rows.
> The index is of the type "varchar" with a max. length of 60 bytes.
>
> Because I got a "transaction too long" error, I turned logging off.
> Nevertheless I got the same error again (error-no. 458).
> > The statement:
> isql $DATABASE - <<!
> CREATE INDEX titel_desk ON titel_worte (desk) IN dbs_4; > !
>
> By the way: the creation on an index for a "smallint"-field worked
> fine for the same table. There also already exists a unique composit Index
> consisting of the above mentioned varchar "desk" and the a.m.
> "smallint"-field, which was created when the table was created.
>
> There should be enough space for the index in dbs_4 (3GB).
>
> The sysmaster-table has "unbuffered logging", but I think that's not
> important.
>
> I use Informix-Onl v7.12, Operating-System is SINIX 5.42
>
> I can't really experiment with this one because of the size of the
> table (and actually the size of the whole database).
Data Definition statements are still logged. Your logical logs are too small.
However, I would seriously re-consider creating an index on a VARCHAR(60).
If you think about it logically, a SMALLINT is 2 bytes, against 61 for the
VARCHAR. So work out how much more space you need.
Cheers,
--
Mark.
+-------------------------------------------------------------------------+
|Mark D. Stock - The West Solutions Group http://www.west.co.za |
| The Informix FAQ is at http://www.iiug.org |
|mailto:marks@west.co.za +------------------------------------------------+
|Tel: +27 11 803 2151 |If it doesn't work... force it! |
|Fax: +27 11 803 2189 |If it breaks... it needed replacing anyway! |
|Cell: +27 83 250 2325 |Well, that's how I code anyway! |
+------------------------+------------------------------------------------+