24.10.2014, Vladimír Klaus, navštíveno 3750x
Někdy se může přihodit situace, kdy se k vám dostane velmi velká databáze, třeba mající přes 900 MB. Vzhledem k tomu, že při otevření takové databáze v aplikaci se většinou načtou i všechna data, může být pak obtížné s nimi ještě dále pracovat, protože často dochází k chybě "Out of Memory". Proto je někdy vhodné databázi, resp. tabulku rozdělit na polovinu.
Začněte tím, že si původní databázi zkopírujte do souborů Data1.mdb a Data2.mdb a otevřete si tu první kopii.
Nejprve se asi podíváte, kolik je v tabulce záznamů. Odhadnete polovinu - v tomto případě jde o to, že je tabulka/databáze moc velká, nikoliv o nějaké přesné určování poloviny. V našem případě má tabulka přes 110 000 záznamů.
A napíšete dotaz, který horních 55 tisíc smaže. Bude to chvilku trvat, ale rozhodně méně, než kdybyste si těch 55 tisíc vyfiltrovali, označili a stiskli DEL.
DELETE FROM
(SELECT TOP 55000 *
FROM Clanky
ORDER BY ID DESC)
Jak vidíte, i samotný Access má s takovým příkazem jisté obtíže.
Nakonec ale zobrazí onen potvrzovací dotaz.
Poté si zobrazíte tabulku a podíváte se na její poslední ID, což je v našem případě 56749.
Nyní si otevřete druhou databázi (Data2.mdb) a napište druhý mazací dotaz, který je už mnohem jednodušší.
DELETE FROM Clanky
WHERE ID<=56749
I zde budou zobrazeny výše uvedené dotazy, i když s jiným počtem.
Samozřejmě nezapomeňte na závěr obě databáze zkomprimovat (viz menu Soubor), protože bez toho budou na disku zabírat stále stejně velký prostor jako na začátku.