sql >> Databáze >  >> RDS >> PostgreSQL

Sbíráte velké statistické soubory pomocí pg_stat_statements?

1.

z toho, co jsem četl, hashuje dotaz a udržuje jej v DB, přičemž text uloží do FS. Další obava je tedy očekávanější než přetížená sdílená paměť:

hash textu je mnohem menší než text, že si myslím, že byste se neměli starat o spotřebu paměti rozšíření ve srovnání s dlouhými dotazy. Zejména s vědomím, že rozšíření používá Query Analyzer (který bude fungovat pro KAŽDÉ dotaz JAKKOLI ):

Nastavení pg_stat_statements.max Věřím, že 10krát větší by měl zabírat 10krát více sdílené paměti. Růst by měl být lineární . V dokumentaci to není uvedeno , ale logicky by to tak mělo být.

Neexistuje odpověď, zda je bezpečné nebo ne nastavit nastavení na odlišnou hodnotu, protože neexistují žádná data o jiných konfiguračních hodnotách a HW, které máte. Ale protože růst by měl být lineární, zvažte tuto odpověď:„pokud to nastavíte na 5 kB a doba běhu dotazu se téměř nic nezvýšila, pak nastavení na 50 k prodlouží téměř nic krát deset“. BTW, moje otázka - kdo bude kopat 50 000 pomalých prohlášení? :)

2.

Toto rozšíření již vytváří předběžnou agregaci pro prohlášení „dis-valued“. Můžete si to vybrat rovnou v DB, takže přesunutí dat do jiné db a jejich výběr tam vám poskytne pouze výhodu uvolnění původní DB a načtení jiné. Jinými slovy ušetříte 50 MB za dotaz na originál, ale utratíte totéž za jiný. Dává to smysl? Za mě ano. To je to, co dělám já sám. Ale také ukládám prováděcí plány pro příkaz (který není součástí rozšíření pg_stat_statements). Věřím, že záleží na tom, co máte a co máte. Rozhodně to není potřeba jen kvůli řadě dotazů. Opět, pokud nemáte tak velký soubor, že přípona může




  1. Tipy k tabulce Microsoft Access – triky a pokyny, část 5

  2. Proč se kolo MySQL vznáší mnohem více, než se očekávalo?

  3. Jak přimět to_number ignorovat nečíselné hodnoty

  4. Problémy s datovým typem int(11) v MYSQL