Det hade ingenting att göra med ODP.NET-leverantören. Problemet var att biblioteket vi använder för att skapa anslutningar åt oss (som naturligtvis inte används av Oracle SQL Developer, och som jag inte använde när jag provade Microsoft-leverantören) alltid körde följande satser innan jag gjorde något:
ALTER SESSION SET NLS_COMP = LINGUISTIC
ALTER SESSION SET NLS_SORT = BINARY_CI
Dessa gör Oracle skiftlägesokänslig. Men de gör också alla konventionella index värdelösa. Eftersom vi frågade från en vy hade den inbyggd ordning. Och eftersom vi inte äger databasen kan vi inte göra indexen språkliga för att åtgärda prestandaproblemet.
Att tillhandahålla ett sätt att inte köra dessa uttalanden i detta (sällsynta) scenario löste problemet.