Scénáře použití úložiště dotazů

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server

Důležité

Jednoúčelový server Azure Database for PostgreSQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for PostgreSQL?

Úložiště dotazů můžete použít v nejrůznějších scénářích, ve kterých je důležité sledovat a udržovat předvídatelný výkon úloh. Zvažte následující příklady:

  • Identifikace a ladění nejčastějších drahých dotazů
  • Testování A/B
  • Udržování stabilního výkonu během upgradů
  • Identifikace a vylepšení ad hoc úloh

Identifikace a ladění drahých dotazů

Identifikace nejdéle běžících dotazů

Pomocí zobrazení Query Performance Insight na webu Azure Portal můžete rychle identifikovat nejdéle běžící dotazy. Tyto dotazy obvykle spotřebovávají značné množství prostředků. Optimalizace nejdéle běžících otázek může zvýšit výkon uvolněním prostředků pro použití jinými dotazy běžícími ve vašem systému.

Cílové dotazy s rozdíly výkonu

Úložiště dotazů rozdělí data o výkonu do časových oken, abyste mohli sledovat výkon dotazu v průběhu času. To vám pomůže přesně určit, které dotazy přispívají ke zvýšení celkové doby strávené. V důsledku toho můžete provádět cílené řešení potíží s úlohou.

Ladění drahých dotazů

Když identifikujete dotaz s neoptimálním výkonem, akce, kterou provedete, závisí na povaze problému:

  • Pomocí doporučení k výkonu zjistěte, jestli existují nějaké navrhované indexy. Pokud ano, vytvořte index a pak pomocí úložiště dotazů vyhodnoťte výkon dotazů po vytvoření indexu.
  • Ujistěte se, že jsou statistiky aktuální pro podkladové tabulky používané dotazem.
  • Zvažte přepsání drahých dotazů. Můžete například využít parametrizaci dotazů a snížit využití dynamického SQL. Implementujte optimální logiku při čtení dat, jako je použití filtrování dat na straně databáze, ne na straně aplikace.

Testování A/B

Úložiště dotazů můžete použít k porovnání výkonu úloh před a po změně aplikace, kterou plánujete zavést. Příklady scénářů použití úložiště dotazů k posouzení dopadu změny prostředí nebo aplikace na výkon úloh:

  • Uvedení nové verze aplikace
  • Přidání dalších prostředků na server
  • Vytváření chybějících indexů v tabulkách odkazovaných nákladovými dotazy

V některém z těchto scénářů použijte následující pracovní postup:

  1. Spusťte úlohu s úložištěm dotazů před plánovanou změnou a vygenerujte směrný plán výkonu.
  2. Použijte změny aplikací v řízeném okamžiku v čase.
  3. Po změně pokračujte v provozu úlohy dostatečně dlouho, aby se vygenerovala image výkonu systému.
  4. Porovnejte výsledky z doby před a po změně.
  5. Rozhodněte se, jestli chcete změnu zachovat nebo vrátit zpět.

Identifikace a zlepšení ad hoc úloh

Některé úlohy nemají dominantní dotazy, které můžete vyladit, aby se zlepšil celkový výkon aplikace. Tyto úlohy jsou obvykle charakterizovány relativně velkým počtem jedinečných dotazů, z nichž každý využívá část systémových prostředků. Každý jedinečný dotaz se provádí zřídka, takže jejich spotřeba modulu runtime není kritická. Na druhou stranu vzhledem k tomu, že aplikace neustále generuje nové dotazy, se při kompilaci dotazů stráví významná část systémových prostředků, což není optimální. K této situaci obvykle dochází v případě, že vaše aplikace generuje dotazy (místo použití uložených procedur nebo parametrizovaných dotazů) nebo pokud spoléhá na architektury mapování objektů, které ve výchozím nastavení generují dotazy.

Pokud máte kontrolu nad kódem aplikace, můžete zvážit přepsání vrstvy přístupu k datům tak, aby používaly uložené procedury nebo parametrizované dotazy. Tato situace se ale dá vylepšit i bez změn aplikace vynucením parametrizace dotazu pro celou databázi (všechny dotazy) nebo pro jednotlivé šablony dotazů se stejnou hodnotou hash dotazu.

Další kroky