sql >> Database teknologi >  >> RDS >> Oracle

Forsøger at finde ud af den maksimale længde af Rowid i Oracle

En fysisk ROWID har en fast størrelse i en given Oracle-version, den afhænger ikke af antallet af rækker i en tabel. Den består af nummeret på datafilen, nummeret på blokken i denne fil og nummeret på rækken i denne blok. Derfor er den unik i hele databasen og giver direkte adgang til blokken og rækken uden yderligere opslag.

Da tingene i IT-verdenen fortsætter med at vokse, er det sikkert at antage, at formatet vil ændre sig i fremtiden.

Udover volumen er der også strukturelle ændringer, såsom fremkomsten af ​​transportable tablespaces, som gjorde det nødvendigt at gemme objektnummeret (=interne nummer på bordet/partitionen/underafsnittet) inde i ROWID.

Eller fremkomsten af ​​Index organiserede tabeller (nævnt af @ibre5041), som ligner en tabel, men i virkeligheden kun er et indeks uden sådan en fysisk adresse (fordi tingene bevæger sig konstant i et indeks). Dette gjorde det nødvendigt at introducere UROWID'er, som kan gemme fysiske og indeksbaserede ROWID'er.

Vær opmærksom på, at en ROWID kan ændre sig, for eksempel hvis rækken flyttes fra en tabelpartition til en anden, eller hvis tabellen defragmenteres for at udfylde hullerne efter mange DELETEs.



  1. Oracle funktionsbaserede indekser

  2. python MySQLdb vil ikke indsætte i db

  3. Lagring af kalenderdata i MySQL

  4. PostgreSQL Update trigger