Looking for tips to improve performance when selecting rows from a database based on an incoming set of features.
For example, say I have 150 points going into an initiator port on a FeatureReader that then reads 4 tables/features from an Oracle SDE database.
Scenario 1: Spatial Filter is set to "Initiator Intersects Result"
While this does greatly improve performance over reading everything from all 4 tables/features, What else can I do to improve performance here?
Is there a way to send all of the features at once? OR generate a set of search envelopes to send to the featureReader?
(I tried creating a BoundingBoxAccumulator, but if the points are not close together, this will select too many of the 4 features)
Here is an example of the kind of output in the log file for each of the 150 points that are sent to the FeatureReader (note, I've change the lat/long):
Notice - Performing envelope query on the `GEODATABASE_SDE' reader, post-filtering spatial predicate in FME
2018-08-02 16:17:18| 56.1| 0.0|INFORM|The minimum (x,y) and maximum (x,y) bounds, respectively, of the search envelope being used are: (-50.0001, 10.0000) , (-50.00001, 10.0000)
Scenario 2: Select using unique IDs
In this case, each of the 150 points has a matching Unique ID in the 4 features to select from.
Does anyone have a smart way to build out long SQL queries to prefetch all of the features with matching unique IDs at the same time?