ArcMap is not comparing each geometry with every geometry, just those identified by the spatial index as being "nearby," but that's enough. There does not appear to be any way to control how the program flow operates from outside the tool.
I whipped up a shapefile with 100k circles 1.0 degrees in diameter and randomly distributed, snapped to a 0.25 degree grid, with an ATTR1 string attribute
containing one of the first 10 letters of the alphabet, randomly selected. I then ran Find Identical against the shapefile, and it took 3.6 minutes to execute. I then built an index on the ATTR1 field, and re-executed, and this also took 3.6 minutes.
I then copied the shapefile to a file geodatabase and repeated the procedure, with runtimes of 4 minutes (with and without attribute index).
Then I loaded the data into a PostgreSQL database with SDE.ST_GEOMETRY storage and again repeated Find Identical, and execution took 14.5 minutes.
Then I executed the query:
FROM circles100k025 a, circles100k025 b
WHERE st_equals(b.shape,a.shape) = 't' AND
b.attr1 = a.attr1 AND
b.objectid > a.objectid
and this executed in one minute. Changing the order of the ST_EQUALS and "b.ATTR1 = a.ATTR1" WHERE terms had no impact on performance, nor did dropping the attribute index (though it is not safe to assume that all database optimizers will be equally clever).
From this I conclude that you could improve on performance by using a method other than Find Identical with this dataset. Among potential solutions are:
- Use PostgreSQL with a variant of the above query
- Split the table into multiple feature classes by COA attribute, then run Find Identical on the subsets
- Write your own nested query in Python (or ArcObjects), where you'll have control over search constraints
Specifying the SHAPE_LENGTH and SHAPE_AREA attributes is not going to improve the results, or the query performance, so I recommend you leave them out of your search procedure.