Mazání řádků na SQL serveru a uvolňování místa

Re:Mazání řádků na SQL serveru a uvolňování místa
« Odpověď #15 kdy: 17. 12. 2021, 19:43:11 »
Velmi záleží na objemu dat a toho, co se v daném sloupci vyskytuje za hodnoty, např. pokud budu mít 10000 záznamů jsou indexy v podstatě k ničemu. Naopak pokud mám 100mil záznamů, tak ano, ale pokud daný sloupec může být jen boolean, index postrádá smysl. Ale to jen tak na okraj. Bohužel hodně lidí si myslí, že více indexů, tím super rychlost...
I tohle je pravdivé jen částečně. Nezáleží na typu hodnota, ale na histogramu hodnot. Když budete mít tabulku se sto milionem záznamů, ale řádků s hodnotou true bude 100 a ty budete hledat, index se vám sakra vyplatí (zejména funkční, ve kterém budou jenom ty true hodnoty). I u těch desítek tisíc záznamů se může sloupec dost vyplatit, zejména pokud ta tabulka bude velká nebo dokonce data, která vás zajímají, vyčtete rovnou z indexu.

Podmíněnými indexy (alespoň takhle se to jmenuje vpg) můžete ty nezajímavé hodnoty odfiltrovat. Výsledný index bude výrazně menší - jen 100 hodnot, což má jen pozitivní efekty :)


_Jenda

  • *****
  • 1 600
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Mazání řádků na SQL serveru a uvolňování místa
« Odpověď #16 kdy: 17. 12. 2021, 22:57:25 »
(Tady je vidět, k čemu je alespoň základní IT vzdělání, tohle se bere na VŠ snad hned v prváku.)
Tak třeba na informatice na matfyzu byly databáze doporučené ve druháku a o vacuumu se tam nemluvilo (samozřejmě si to nemůžu s jistotou 7 let pamatovat, ale ve slidech se slovo vacuum nevyskytuje a slidy k tomuto předmětu jsou celkem verbose).

Re:Mazání řádků na SQL serveru a uvolňování místa
« Odpověď #17 kdy: 18. 12. 2021, 04:29:13 »
(Tady je vidět, k čemu je alespoň základní IT vzdělání, tohle se bere na VŠ snad hned v prváku.)
Tak třeba na informatice na matfyzu byly databáze doporučené ve druháku a o vacuumu se tam nemluvilo (samozřejmě si to nemůžu s jistotou 7 let pamatovat, ale ve slidech se slovo vacuum nevyskytuje a slidy k tomuto předmětu jsou celkem verbose).

To, o čem je zde řeč, je shrink. Většinou se o tom mluví v momentě, kdy se mluví o implementaci DELETE, který fyzicky nemaže záznamy ze souboru, a tudíž je zřejmé, že na shrinknutí musí být speciální operace - rebuild ať už podporovaný databází nebo ruční dump/load. Taky se o tom může mluvit, když se řeší, jak se fyzicky data ukládají na disk.