Hi!

 

I need to delete a considerable number of rows from a table, and it is taking too long.  The operation takes equally long from ij, so I think it is independent of my application code.

 

So for instance in the case below, it took about 23 seconds to execute the delete statement, which was deleting 156112 rows out of 380600:

 

ij> select count(*) from listhit;

1

-----------

380600

 

ij> delete from listhit where listresultid = 11501573;

156112 rows inserted/updated/deleted

 

23 seconds

 

The definition of the table is as follows:

 

create table ListHit (

    LISTRESULTID int,

    INDX int,

    HIT blob,

    TAG varchar(250),

    ATTS blob );

 

CREATE INDEX listhit_listresultid ON listhit(listresultid);

CREATE INDEX listhit_listresultid_indx ON listhit(listresultid,indx);

 

And from ij:

 

ij> describe listhit;

COLUMN_NAME         |TYPE_NAME|DEC&|NUM&|COLUM&|COLUMN_DEF|CHAR_OCTE&|IS_NULL&

------------------------------------------------------------------------------

LISTRESULTID        |INTEGER  |0   |10  |10    |NULL      |NULL      |YES

INDX                |INTEGER  |0   |10  |10    |NULL      |NULL      |YES

HIT                 |BLOB     |NULL|NULL|21474&|NULL      |NULL      |YES

TAG                 |VARCHAR  |NULL|NULL|250   |NULL      |500       |YES

ATTS                |BLOB     |NULL|NULL|21474&|NULL      |NULL      |YES

 

5 rows selected

 

ij> show indexes;

TABLE_NAME   |COLUMN_NAME  | NON_U&|TYPE|ASC&|CARDINA&|PAGES

----------------------------------------------------------------------------------------

LISTHIT                |LISTRESULTID          |1     |3   |A   |NULL    |NULL

LISTHIT                |LISTRESULTID          |1     |3   |A   |NULL    |NULL

LISTHIT                |INDX                           |1     |3   |A   |NULL    |NULL

 

 

Any ideas?

 

Thanks for your help,

 

Monica



Accelrys Limited (http://accelrys.com)
Registered office: 334 Cambridge Science Park, Cambridge, CB4 0WN, UK
Registered in England: 2326316