PostgreSQL pro vývoj nepoužíval interní cache rubrika: Databáze: SQL

6 milan.matejcek
položil/-a 19.12.2014

Dobrý den,
prosím Vás potřebuji pro vývoj ladit sqlka a postgre a jiné databáze májí luxusní vlastnost si to napoprvé uložit do keše a na podruhé to tahat z ní.

Potřeboval bych toto chování vypnout. Je na to něco?

Mám Ubuntu a toto mi nefunguje

echo 1 > /proc/sys/vm/drop_caches


EDIT

Tak jsem se spletl funguje to je potřeba postgre vypnout, provést příkaz a zase zapnout. :) Ale i tak by mě zajímalo něco lepšího.

odkaz
9 pavel.stehule
odpověděl/-a 19.12.2014

Toto samozřejmě nefunguje, bo PostgreSQL cache - shared_buffers je naprosto nezávislá na systémových cache.

Teoreticky by bylo možné napsat extenzi, která by shared buffers vyčistila - ale o žádné takové nevím. Můžete restartovat Postgres, a to je tak asi všechno

Komentáře

  • Vašek Ch. : Restartovat PostgreSQL a zároveň vyčistit systémové keše. Jo. 19.12.2014
  • milan.matejcek : Nakonec to funguje jak píše @Vašek Chromický. Jinak restart servru bez zápisu do drop_caches neudělá nic. 19.12.2014
  • pavel.stehule : @milan.matejcek - pokud máte relativně malá data, tak lehce může dojít k double bufferingu - tj. jsou jak v shared_buffers, tak v cache file systemu. 19.12.2014
  • milan.matejcek : Tabulka má cca 6,5 milionu řádků. Postgre na vývojovém stroji mám defaultně nastavené konkrétně 9.1. Takže pokud to správně chápu tak by mělo stačit zvednout shared_buffers a pak vždy po restartu postgre tato cache se vyprázdní? 20.12.2014
  • pavel.stehule : @milan.matejcek: proč chcete zvedat shared buffers? 20.12.2014

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.