sql >> Databáze >  >> RDS >> Sqlserver

Jaká je výhoda varbinárního pole v samostatné tabulce 1-1?

Neexistuje žádná výkonnostní ani provozní výhoda. Od SQL 2005 jsou typy LOB již uloženy pro vás motorem v samostatné alokační jednotce, samostatném b-stromu. Pokud si prostudujete Organizace tabulek a indexů SQL Server, uvidíte, že každý oddíl má až 3 alokační jednotky:data, LOB a přetečení řádku:


(zdroj:s-msft.com )

Pole LOB (varchar(max), nvarchar(max), varbinary(max), XML, CLR UDT a také zastaralé typy text, ntext a image) bude mít v samotném datovém záznamu, v seskupeném indexu, pouze velmi malé rozměry:ukazatel na alokační jednotku LOB, viz Anatomie záznamu .

Uložením LOB explicitně do samostatné tabulky nezískáte absolutně nic . Jen přidáte nepotřebnou složitost, protože dřívější atomové aktualizace se nyní musí samy rozdělit do dvou samostatných tabulek, což komplikuje aplikaci a strukturu transakcí aplikace.

Pokud je obsahem LOB celý soubor, možná byste měli zvážit upgrade na SQL 2008 a použití FILESTREAM .



  1. Jak používat příkaz 'LIKE' s řetězci unicode?

  2. Použití Dapper s Oracle

  3. jak zkontrolovat všechna omezení na stole v oracle

  4. Omezte hodnotu datového typu MySQL na určitý rozsah (nejlépe ne ENUM)