Oracle
 sql >> база данни >  >> RDS >> Oracle

Опитвам се да разбера максималната дължина на Rowid в Oracle

Физическият ROWID има фиксиран размер в дадена версия на Oracle, той не зависи от броя на редовете в таблицата. Състои се от номера на файла с данни, номера на блока в този файл и номера на реда в този блок. Поради това е уникален в цялата база данни и позволява директен достъп до блока и реда без допълнително търсене.

Тъй като нещата в ИТ света продължават да се развиват, е безопасно да се предположи, че форматът ще се промени в бъдеще.

Освен обема има и структурни промени, като появата на преносими таблични пространства, което наложи съхраняването на номера на обекта (=вътрешен номер на таблицата/дяла/подраздела) вътре в ROWID.

Или появата на организирани таблици с индекс (споменато от @ibre5041), които изглеждат като таблица, но в действителност са само индекс без такъв физически адрес (защото нещата се движат постоянно в индекс). Това наложи въвеждането на UROWID, които могат да съхраняват физически и базирани на индекс ROWID.

Моля, имайте предвид, че ROWID може да се промени, например ако редът се премести от един дял на таблица в друг или ако таблицата е дефрагментирана, за да запълни дупките, оставени от много ИЗТРИВАНИЯ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обяснение на BLOB и CLOB

  2. Как мога да върна CSV низ от PL/SQL тип таблица в Oracle

  3. Моят TO_DATE изглежда не функционира правилно

  4. Филтър за месец и година на CriteriaQuery

  5. Oracle SQL Часове Разлика между датите в ЧЧ:ММ:СС