sql >> Databáze >  >> RDS >> Oracle

Snažím se zjistit maximální délku Rowid v Oracle

Fyzický ROWID má v dané verzi Oracle pevnou velikost, nezávisí na počtu řádků v tabulce. Skládá se z čísla datového souboru, čísla bloku v tomto souboru a čísla řádku v tomto bloku. Proto je jedinečný v celé databázi a umožňuje přímý přístup k bloku a řádku bez dalšího vyhledávání.

Vzhledem k tomu, že věci ve světě IT neustále rostou, lze s jistotou předpokládat, že se formát v budoucnu změní.

Kromě objemu došlo také ke strukturálním změnám, jako je nástup přenosných tabulkových prostorů, kvůli kterým bylo nutné ukládat číslo objektu (=interní číslo tabulky/oddílu/podčásti) uvnitř ROWID.

Nebo příchod indexovaných organizovaných tabulek (zmíněných @ibre5041), které vypadají jako tabulka, ale ve skutečnosti jsou jen indexem bez takové fyzické adresy (protože věci se v indexu neustále pohybují). Proto bylo nutné zavést UROWID, které mohou ukládat fyzické ROWID a ROWID založené na indexech.

Uvědomte si prosím, že ROWID se může změnit, například pokud se řádek přesune z jednoho oddílu tabulky do jiného nebo pokud je tabulka defragmentována, aby zaplnila díry, které zůstaly po mnoha DELETE.



  1. Core Error Entity Framework:Při připojení k databázi '' na serveru 'localhost' došlo k chybě

  2. Kdy budou odstraněna data v dočasné tabulce relace Oracle?

  3. Mysql - Jak porovnat dva objekty Json?

  4. Jak získat kategorie a podkategorie Query Builder v Laravelu