Vysvětlení statistik

Dokončeno

Když se dotaz spustí, musí vytvořit plán, aby se rozhodl, jak získat přístup k datům. Pokud například dotaz SELECT vrátí každý řádek, není použití indexu přínosné a bylo by efektivnější prohledat celou tabulku. V tomto scénáři je jednoduché naplánovat dotaz, ale většina plánů dotazů není tak jednoduchá.

Představte si scénář, ve kterém spouštíte dotaz, který hledal každou objednávku mezi 10,00 a 20,00 USD. Zpočátku nevíme, jestli dotaz vrátí všechna data v tabulce nebo jen malou podmnožinu. Tato neznámá znesnadňuje plánování strategie dotazu, dokud neuvidíme data. Pokud víme, že tabulka obsahuje objednávky, které mají nákupní cenu mezi 1,00 USD a 800,00 USD, může být index použit k vyhledání malé podmnožina dat. Stále však nemusí existovat dostatek informací pro vygenerování správného plánu dotazu. V tomto příkladu mají objednávky nákupní cenu mezi 1,00 USD a 800,00 USD, 95 % objednávek je mezi 10,00 USD a 20,00 USD a kontrola dat je ve skutečnosti nejúčinnějším plánem.

U scénářů, jako je předchozí příklad, potřebuje PostgreSQL podrobné statistiky, aby bylo možné použít optimální plán dotazů.

Pokud chcete monitorovat statistiky plánování a provádění, existuje rozšíření PostgreSQL označované jako pg_stat_statements. pg_stat_statements je ve výchozím nastavení povolená ve službě Azure Database for PostgreSQL a umožňuje členům role pg_read_all_stats dotazovat se na statistiky pomocí více zobrazení pg_stat. Následující dotaz vrátí aktivitu dotazu pomocí zobrazení pg_stat_activity :

SELECT * FROM pg_stat_activity;

Snímek obrazovky s dotazem pg_stat_activity

Vypnutí pg_stat_statements

Pokud jsou vaše dotazy jedinečné a neopakujete stejný dotaz pravidelně, jsou historická data dotazů méně užitečná. Pokud také nepoužíváte zobrazení pg_stat , neposkytují žádné výhody. Při údržbě pg_stat_statements je režijní náklady, což může být až 50 % a sledování pg_stat_statements můžete v těchto scénářích vypnout.

Pokud chcete sledování pg_stat_statements vypnout, proveďte následující kroky:

  1. Přejděte na web Azure Portal a vyberte server Azure Database for PostgreSQL.

  2. Vyberte parametry serveru a přejděte do nastavení pg_stat_statements.track .

    Snímek obrazovky s příkazem pg_statements

  3. Pokud chcete sledování vypnout, vyberte ŽÁDNÉ.

  4. Přesnější sledování zobrazíte tak, že vyberete VŠE.

  5. Výchozí nastavení je TOP.

  6. Zvolte Uložit.