sql >> Database >  >> RDS >> Oracle

Proberen de maximale lengte van Rowid in Oracle te achterhalen

Een fysieke ROWID heeft een vaste grootte in een bepaalde Oracle-versie, deze is niet afhankelijk van het aantal rijen in een tabel. Het bestaat uit het nummer van het databestand, het nummer van het blok binnen dit bestand en het nummer van de rij binnen dit blok. Daarom is het uniek in de hele database en geeft het directe toegang tot het blok en de rij zonder verder te zoeken.

Aangezien de zaken in de IT-wereld blijven groeien, is het veilig om aan te nemen dat het formaat in de toekomst zal veranderen.

Naast volume zijn er ook structurele veranderingen, zoals de komst van verplaatsbare tablespaces, die het noodzakelijk maakten om het objectnummer (=intern nummer van de tabel/partitie/subpartitie) in de ROWID op te slaan.

Of de komst van door Index georganiseerde tabellen (vermeld door @ibre5041), die eruitzien als een tabel, maar in werkelijkheid slechts een index zijn zonder zo'n fysiek adres (omdat dingen constant in een index bewegen). Dit maakte het noodzakelijk om UROWID's te introduceren die fysieke en op index gebaseerde ROWID's kunnen opslaan.

Houd er rekening mee dat een ROWID kan veranderen, bijvoorbeeld als de rij van de ene tabelpartitie naar de andere gaat, of als de tabel wordt gedefragmenteerd om de gaten te vullen die door veel DELETE's zijn achtergelaten.



  1. Hoe u de laatste dag van de maand in MySQL kunt krijgen

  2. De opgegeven sleutel was niet aanwezig in het woordenboek. met mysql

  3. Langdurige 'COMMIT'-query's met de status 'inactief' in pg_stat_activity

  4. Maximale uitvoeringstijd instellen in MYSQL / PHP