Hilfy

Why is there a severe performance difference using deleteSearchedRows?

Discussion created by Hilfy on Mar 27, 2014
Latest reply on Apr 1, 2014 by ldonahue
Hi Everyone,

We got no bites on this issue over on GIS Stack Exchange, so we're trying here.

The issue we are having involves two versioned tables.  A function deletes 48
rows from Table A and 48 rows from Table B using deleteSearchedRows.
However, the delete from Table A takes roughly 4 seconds while the delete
from table B takes roughly 67 seconds. 

The query filter for both deletes is a single number field that has been
indexed in the table, objectID indexed as well.  Table A has roughly 45,000
records and Table B 60,000 records.  Both tables also have cascade deletes
set to No, so that the only data being deleted would be that table's.

Table structures are very similar.  Table A has OID field + 3 Long integer
fields, 2 short integer fields and a date field.  Table B has OID, 3 long
integer, 1 Text, and a date field.  Running the delete query from SQL Plus
is very quick for both tables, so it's probably not a drive efficiency, or Oracle tuning issue.

We broke apart the select and delete sections to see if the search was slow.
We used the Search(queryFilter, false) and it returns instantly, but looping
and deleting every IRow.Delete takes slightly over a second per row for
Table B.
 
We are at a loss on what the difference could be to cause such a severe
performance difference in two tables. 
Any ideas/debug methods are appreciated.

Using ArcGIS 10.0 with an Oracle database

Thanks in advance, Hilfy and company

Outcomes