Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Próbuję obliczyć maksymalną długość Rowida w Oracle

Fizyczny ROWID ma stały rozmiar w danej wersji Oracle, nie zależy od liczby wierszy w tabeli. Składa się z numeru pliku danych, numeru bloku w tym pliku i numeru wiersza w tym bloku. Dlatego jest unikalny w całej bazie danych i umożliwia bezpośredni dostęp do bloku i wiersza bez dalszego wyszukiwania.

Ponieważ rzeczy w świecie IT wciąż się rozwijają, można bezpiecznie założyć, że format zmieni się w przyszłości.

Oprócz objętości nastąpiły również zmiany strukturalne, takie jak pojawienie się przenośnych przestrzeni tabel, które spowodowały konieczność przechowywania numeru obiektu (=wewnętrznego numeru tabeli/partycji/podpartycji) wewnątrz ROWID.

Albo pojawienie się zorganizowanych tabel Index (wspomnianych przez @ibre5041), które wyglądają jak tabela, ale w rzeczywistości są tylko indeksem bez takiego fizycznego adresu (ponieważ rzeczy poruszają się stale w indeksie). To spowodowało konieczność wprowadzenia identyfikatorów UROWID, które mogą przechowywać identyfikatory ROWID fizyczne i oparte na indeksie.

Należy pamiętać, że ROWID może się zmienić, na przykład, jeśli wiersz zostanie przeniesiony z jednej partycji tabeli do drugiej lub jeśli tabela jest defragmentowana w celu wypełnienia dziur pozostawionych przez wiele DELETE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przenieść plik z jednego katalogu do drugiego za pomocą PL SQL?

  2. Jak w SQL*Plus zmienić monit tak, aby wyświetlał połączonego użytkownika i bazę danych?

  3. Jak wykonać FULL OUTER JOIN w Oracle za pomocą operatora „+”?

  4. Używanie instrukcji case w ograniczeniu sprawdzającym

  5. ORACLE Connect by równoważna klauzula w SQL Server