(edited)
Oracle 18c 10.7.1 EGDB:
I thought I'd share a test I did recently — for anyone who might be trying to decide between SDE.ST_GEOMETRY and SDO_GEOMETRY.
Select the startpoint X & Y from 14,000 single-part lines:
SDE.ST_GEOMETRY:
select
sde.st_x(sde.st_startpoint(shape)) as startpoint_x,
sde.st_y(sde.st_startpoint(shape)) as startpoint_y
from
sidewalks
STARTPOINT_X STARTPOINT_Y
------------ ------------
668287.112 4869366.88
...
Time: 20 seconds
SDO_GEOMETRY
select
sdo_util.get_coordinate(shape,1).sdo_point.x as startpoint_x,
sdo_util.get_coordinate(shape,1).sdo_point.y as startpoint_y
from
sidewalks
STARTPOINT_X STARTPOINT_Y
------------ ------------
668287.112 4869366.88
...
Time: 0.9 seconds
Result: Getting the startpoint XY from SDO_GEOMETRY is 20x faster than SDE.ST_GEOMETRY in this case.
That's consistent with the testing I've done over the last couple of years. I've found ST_GEOMETRY functions to be slower than SDO_GEOMETRY in general. Of course, there are benefits to ST_GEOMETRY too, such as it being easier to learn than SDO_GEOMETRY (in my experience).
I just thought I'd share those results in case they're useful to anyone.