Přejít na obsah


Fotka

VACUUM databáze

geoget

  • Pokud chcete vložit odpověď, přihlašte se
11 odpovědí na toto téma

#1 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 539 příspěvků(y)
  • LocationKladno

Publikováno 21 říjen 2014 - 11:33

Mám databázi na disku d: nicméně pokud spustím VACUUM databáze, tak se něco o velikosti databáze ukládá kamsi na disk C: - nepodařilo se mi najít kde tento soubor vzniká - všechny adresáře měly pořád stejnou velikost, pouze ubývalo volné místo na disku. Přišel jsem na to náhodou, když se mi c: trochu víc zaplnilo nějakým balastem a VACUUM skončilo s chybou, že nemá volné místo. Teď si chci pořídit nový SSD disk a tak bych rád tento vytvářený soubor přesměroval na jiný disk, aby se mi ten SSD disk zbytečně neopotřebovával. Hledal jsem i na stránkách SQLite, ale nikde se mi nepodařilo nic najít.

Takže mám dvě otázky:

1. co a kde to vzniká na tom disku c: při provádění VACUUM databáze

2. jak to přesměrovat na jiný disk (pokud to nelze žádným parametrem přesměrovat, tak když budu znát odpověď na první otázku, tak mohu danou složku namapovat na jiný disk)

 

Předem děkuji za případné rady od odborníků na SQLite.


  • 0
A kdo netuší nic o Kreténské organizaci, tak zde se dozví víc

#2 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

Publikováno 21 říjen 2014 - 13:04

Vsechny docasne soubory si Sqlite dela v TEMP adresari, takze zalezi na tom, kam ti ukazuji promenne systemu TMP nebo TEMP.


  • 0

#3 MaFa

MaFa

    Advanced Member

  • Members
  • PipPipPip
  • 1 369 příspěvků(y)

Publikováno 21 říjen 2014 - 13:34

Pokud si hodis databazi primo na ten SSD, tak zadny VACUUM nemusis resit. Mam to tak udelany a je to vyrazne rychlejsi nez z disku. Opotrebovani SSD se normalni uzivatel opravdu bat nemusi. SSD snese nekolik tisic prepsani, takze i kdyby jsi prepsal cely SSD kazdy den, tak ti par let vydrzi.


  • 0
MaFa

#4 Arne1

Arne1

    Advanced Member

  • Members
  • PipPipPip
  • 4 290 příspěvků(y)

Publikováno 21 říjen 2014 - 18:36

Pokud si hodis databazi primo na ten SSD, tak zadny VACUUM nemusis resit. Mam to tak udelany a je to vyrazne rychlejsi nez z disku. Opotrebovani SSD se normalni uzivatel opravdu bat nemusi. SSD snese nekolik tisic prepsani, takze i kdyby jsi prepsal cely SSD kazdy den, tak ti par let vydrzi.

Jeden z důvodů, proč jsem si pořizoval SSD :-)
Ale mám tam jiný problém - a sice že mi část drahého SSD prostoru zbytečně zabírají bezpečnostní kopie archivních databází. Tady bych uvítal, kdyby se dalo nastavit aby se u vyjmenovaných databází nedělala bezpečnostní kopie (tedy nejlépe další parametr v "Přidružené nastavení") ale do toho se HaLuMovi nechce.

Tento příspěvek byl upraven od Arne1: 21 říjen 2014 - 18:36

  • 0

#5 Arne1

Arne1

    Advanced Member

  • Members
  • PipPipPip
  • 4 290 příspěvků(y)

Publikováno 21 říjen 2014 - 18:39

Pokud si hodis databazi primo na ten SSD, tak zadny VACUUM nemusis resit.

Téhle formulaci moc nerozumím - VACUUM dělám proto, abych fyzicky zlikvidoval smazané záznamy. Jde to ještě nějak jinak ?
  • 0

#6 ProKesTom

ProKesTom

    Advanced Member

  • Members
  • PipPipPip
  • 848 příspěvků(y)

Publikováno 21 říjen 2014 - 18:46

 SSD snese nekolik tisic prepsani, takze i kdyby jsi prepsal cely SSD kazdy den, tak ti par let vydrzi.

cca 10 tisíc. To u těch pomalejších, trvanlivějších. Ale podstatné je, že do některých míst (záleží na typu filesystému) se zapisuje při zápisu jakéhokoli souboru. Takže k tomu, aby byl disk nefunkční, rozhodně zdaleka nemusíš přepisovat denně celý disk.


  • 0

#7 Arne1

Arne1

    Advanced Member

  • Members
  • PipPipPip
  • 4 290 příspěvků(y)

Publikováno 21 říjen 2014 - 18:54

cca 10 tisíc. To u těch pomalejších, trvanlivějších. Ale podstatné je, že do některých míst (záleží na typu filesystému) se zapisuje při zápisu jakéhokoli souboru. Takže k tomu, aby byl disk nefunkční, rozhodně zdaleka nemusíš přepisovat denně celý disk.

No ale k zabránění tohoto jevu by SSD měl mít algoritmy které ten počet zápisů vyrovnávají.
  • 0

#8 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

Publikováno 21 říjen 2014 - 18:54

cca 10 tisíc. To u těch pomalejších, trvanlivějších. Ale podstatné je, že do některých míst (záleží na typu filesystému) se zapisuje při zápisu jakéhokoli souboru. Takže k tomu, aby byl disk nefunkční, rozhodně zdaleka nemusíš přepisovat denně celý disk.

 

Coz je uplne jedno, protoze dneska kazde SSD ma WearLeveling. To je tam prave proto, aby tebou popsany problem neexistoval. I kdyz budes dokolecka prepisovat jen jeden blok, Wearleveling zpusobi, ze ten jeden blok bude postupne mapovan na jine fyzicke bunky a cela pamet se tak opotrebovavala rovnomerne.

 

Dneska uz tim oplyvaji treba SD karty, nebo i treba ty interni flashpameti v Garminech.


  • 0

#9 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

Publikováno 21 říjen 2014 - 19:03

Téhle formulaci moc nerozumím - VACUUM dělám proto, abych fyzicky zlikvidoval smazané záznamy. Jde to ještě nějak jinak ?

 

To mas jednoduche, kvuli tomu to vubec nedelej! Hodi se to jen ve trech pripadech:

  1. potrebujes defragmentovt databazi
  2. potrebujes opravit mirne nakopnutou databazi
  3. smazal jsi z databaze opravdu mnoho dat a potrebujes z praktickeho hlediska smrsknout databazovy soubor.

Pri bezne cinnosti zadne misto uvolnovat nemusis. Smazane kusy byly v databazovem souboru oznaceny jako volne, a jakmile bude neco chtit do databaze pridat nova data, zapise se to do tech existujicich volnych bloku. Vyuziti stavajiciho mista je rychlejsi, nez zvetsovani velikosti souboru. Krom toho, ze to zvetsovani velikosti souboru se malokdy povede udelat tak, aby nevznikala fragmentace.


  • 0

#10 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 11 450 příspěvků(y)

Publikováno 21 říjen 2014 - 19:24

Pro predstavu: SSD, ktere uz tri roky (cisteho provozniho casu!) nijak nesetrim, bydli na nem TEMP i SWAP, zpracovavam na nem data... tak ten se stacil prepsat 47x. Odhadovanou zivotnost mi to ukazuje do roku 2021. ;)

 

Takze - lidi, neblaznete!


  • 1

#11 Arne1

Arne1

    Advanced Member

  • Members
  • PipPipPip
  • 4 290 příspěvků(y)

Publikováno 21 říjen 2014 - 19:28

To mas jednoduche, kvuli tomu to vubec nedelej! Hodi se to jen ve trech pripadech:


  • potrebujes defragmentovt databazi
  • potrebujes opravit mirne nakopnutou databazi
  • smazal jsi z databaze opravdu mnoho dat a potrebujes z praktickeho hlediska smrsknout databazovy soubor.
Pri bezne cinnosti zadne misto uvolnovat nemusis. Smazane kusy byly v databazovem souboru oznaceny jako volne, a jakmile bude neco chtit do databaze pridat nova data, zapise se to do tech existujicich volnych bloku. Vyuziti stavajiciho mista je rychlejsi, nez zvetsovani velikosti souboru. Krom toho, ze to zvetsovani velikosti souboru se malokdy povede udelat tak, aby nevznikala fragmentace.

Tomu se ani neprotivím... Já dělám VACUUM pouze na přenosové databázi do aDrake, protože mi to připadá jednodušší než ji pokaždé smazat a vytvářet znovu. A pak na archívech když z nich něco významného odmažu.
  • 0

#12 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 539 příspěvků(y)
  • LocationKladno

Publikováno 22 říjen 2014 - 10:33

Takže díky Halumovi za odpověď, že za to mohou proměnné TMP či TEMP. Jejich přesměrování na jiný disk zafunguje. Nicméně jak jsem si ověřil praktickým pokusem je rychlejší mít TMP na jiném disku než je komprimovaná databáze, než když TMP ukazuje na stejný disk. Takže nebudu řešit zbytečné opotřebení disku C: kam defaultně ukazuje TMP. Pohrával jsem si totiž i s myšlenkou, že když se vytvoří tmp soubor na stejném disku, že by jeho přejmenování mohlo být rychlejší, když bude na stejném disku, než když se musí přesouvat z disku jiného.


  • 0
A kdo netuší nic o Kreténské organizaci, tak zde se dozví víc





Také označené jedním nebo více z těchto klíčových slov:geoget

0 uživatel(ů) prochází toto téma

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

Reklama