streda 24. augusta 2011

Vyťažte maximum z pohľadov (SQL Server)

Napriek tomu, že materializované pohľady vám ponúkajú účinný spôsob na urýchlenie komplikovaných dopytov, nemyslite si, že to tak bude stále len pre to, že ste ich vytvorili. V niektorých prípadoch sa môže stať, že z pohľadu nevyťažíte žiadne zvýšenie výkonu. Pozrime sa preto na štyri spôsoby, ako sa môžete uistiť, že úsilie investované do materializovaného pohľadu sa oplatí.

  • Nezabúdajte na vytvorenie indexov pre veľké materializované pohľady. Tieto indexy je možné vytvoriť rovnakým spôsobom ako pre tabuľky.
  • Pre veľmi veľké materializované pohľady zvážte použitie rozdelenia (partitioning), ktoré môžete vytvoriť taktiež rovnako, ako pri tabuľkách.
  • Ak uvažujete o použití funkcie query rewrite, uvažujte a o použití dopytu s identickým SQL, ktoré je použité na definovanie materializovaného pohľadu. Týmto krokom si zabezpečíte, že prepísaný dopyt nebude odmietnutý v dôsledku menších rozdielov v SQL kóde.
  • Zvážte taktiež použitie inicializačného parametra QUERY_REWRITE_INTEGRITY. Pokiaľ nastavíte tento parameter na STALE_TOLERATED, optimizér by mohol vyvolať prepis bez uváženia toho, či sú dáta v materializovanom pohľade aktuálne. Podobne, nastavením parametra na ENFORCED zabráni prepísaniu dopytu v prípade, že materializovaný pohľad obsahuje zastarané dáta.