sql >> Database >  >> RDS >> Oracle

INSERT met ORDER op Oracle

Je kunt niet betrouwbaar controleren in welke volgorde Oracle de rij van een tabel ophaalt zonder een ORDER BY .

Verder, zonder de /*+APPEND*/ hint, Oracle zal de rijen fysiek opslaan in een heap-tabel waar ruimte is, die mogelijk niet aan het einde van de tafel is! U denkt misschien dat Oracle ze opeenvolgend invoegt, maar elke DML of gelijktijdige activiteit (2+ sessies invoegen) kan een andere fysieke organisatie opleveren.

U kunt een INDEX ORGANIZED-tabel gebruiken om de rijen in de volgorde van de PK op te slaan. De meeste eenvoudige zoekopdrachten daarna op die tabel zullen een gesorteerde reeks rijen produceren. Dit zou echter niet garanderen dat orakel de rijen in die volgorde selecteert als u geen ORDER BY opgeeft (afhankelijk van de zoekopdracht en het toegangspad kunnen de rijen in willekeurige volgorde staan).

U kunt ook een weergave gebruiken met een bestelling op, dit is waarschijnlijk uw beste gok als u de toepassing niet kunt aanraken (hernoem de tafel, maak een weergave met de naam van de tafel, laat de toepassing denken dat deze de tabel doorzoekt). Ik weet niet of het in jouw geval haalbaar is.



  1. Caching van tijdelijke objecten van SQL Server

  2. Oracle JDeveloper 12c gebruiken met Oracle Database, deel 1

  3. Galera-cluster bewaken voor MySQL of MariaDB - Metrics begrijpen (bijgewerkt)

  4. Galera Cluster Cloud-aanbiedingen vergelijken:deel twee Google Cloud Platform (GCP)