As I think Daniel noted in another message, you can pre-supply the extent
(which is what I assume is taking a long time). The better solution would
be for me to override the OGR OCI driver's GetExtent() logic to use the
USER_SDO_GEOM_METADATA as you suggest. I kind of thought I had done that,
but looking through the code I see the generic logic is used which involves
reading the complete table.
Feel free to submit that as an enhancement request in the GDAL/OGR
bugzilla.
While a great deal of work went into optimization of the OCI driver for
loading Oracle with data, the read side was not nearly as well optimized
since that was not the focus of the funding project.