it-swarm-eu.dev

Jaké jsou rozdíly mezi listovými a nelistovými stránkami?

Spouštím některé zprávy o používání indexu a snažím se získat definici Leaf a Non-leaf. Zdá se, že existují listy i listy, aktualizace, mazání, sloučení stránek a přidělení stránek. Opravdu nevím, co to znamená, nebo jestli je jeden lepší než ten druhý.

Pokud by někdo mohl dát každému jednoduchá definice, a také vysvětlit, proč záleží na Leaf nebo Non-leaf, bylo by to oceněno!

18
meltdownmonk

Přemýšlejte o tom takto: stránky na úrovni listů jsou konec silnice pro vyhledávání dat prostřednictvím struktury B stromu indexu. Obsahují data definovaná v definici indexu (nebo v případě seskupeného indexu, všechna data tabulky) a lokátor řádků k datovému řádku (v případě neextrikovaného indexu).

Stránky bez listů na úrovni obsahují "cestovní mapu" na stránkách/datech na úrovni listů zahrnutím hodnoty klíče a ukazatele na jinou stránku bez listů (v závislosti na B-stromu) hloubka a umístění mezilehlé stránky) nebo výsledné stránky na úrovni listů (stránka indexu pro nekluzový index a stránka dat pro seskupený index).

Upravit: Zde je dobrý obrázek, který dá obrázek nápadu.

enter image description here

22
Thomas Stringer
  • leaf = V seskupeném indexu, kde jsou všechna data řádků. V indexu bez klastrů jsou sloupce tvořící index, plus všechny zahrnuté sloupce a klíč klastrovaného indexu (pokud tabulka obsahuje klastrovaný index)
  • non-leaf = interní indexový uzel (obsahuje pouze data sloupců, která jsou součástí indexu)

Každý index se skládá z jednoho kořenového uzlu, případně několika vrstev středních interních uzlů stromu a jedné vrstvy listových uzlů.

V seskupeném indexu jsou listové uzly účinně tabulkou. V indexu bez klastrů obsahují listové uzly data sloupců, všechny zahrnuté sloupce a klíče seskupeného indexu.

Základy indexování serveru SQL

4
Mitch Wheat