sql >> Databáze >  >> RDS >> Mysql

SQL SERVER – SQL_NO_CACHE a OPTION (REKOMPILOVAT)

Jako vývojář a DBA často preferuje technologii, ale pokud provozujeme velkou organizaci, musíme být vstřícnější ke všem technologiím. Jeden z mých velkých bankovních klientů používá několik databází pro provádění různých transakcí. Pro své podnikání také používají spoustu různých řešení pro ukládání do mezipaměti a také špičkový hardware. Měl jsem velmi zajímavý rozhovor se svým klientem na téma, jak získávat dotazy, nikoli z mezipaměti pro MySQL a SQL Server, diskutovali jsme o SQL_NO_CACHE a OPTION (RECOMPILE). Diskutovali jsme během Komplexní kontroly výkonu databáze .

Podívejme se dnes na dva různé příklady pro MySQL a SQL Server. Obě relační databáze využívají výhod mezipaměti, aby nám vrátila data. Podívejme se, jak můžeme napsat dotaz, kde nebudeme používat výsledky uložené v mezipaměti, ale získáme data přímo z disku SQL Serveru a nikoli z mezipaměti.

Dotaz na SQL Server – MOŽNOST (ZNOVU KOMPILOVAT)

SELECT Columnname
FROM TableName
OPTION(RECOMPILE)

Dotaz MySQL SQL_NO_CACHE

SELECT SQL_NO_CACHE Columnname
FROM TableName
OPTION(RECOMPILE)

Když použijete SQL_NO_CACHE a OPTION (RECOMPILE), relační databáze (MySQL a SQL Server) přímo získávají data z disku, nikoli data uložená v mezipaměti.

Zde je několik relevantních blogových příspěvků na stejné téma, které by vás mohly zajímat.

  • SQL SERVER – seznam plánu dotazů, velikost mezipaměti, text a počet spuštění
  • SQL SERVER – vyhledání nejstaršího plánu dotazů z mezipaměti
  • SQL SERVER – Plánování mezipaměti a mezipaměti dat v paměti
  • SQL SERVER – Uložená procedura – Vyčistit mezipaměť a vyrovnávací paměť
  • SQL SERVER – Odeberte všechny plány uložené v mezipaměti dotazů, které se v určitém období nepoužívají
  • SQL SERVER – skript pro získání kompilovaného plánu s parametry z mezipaměti
  • SQL SERVER – Plán Cache – Načtení a odebrání – Jednoduchý skript
  • SQL SERVER – 2017 – skript pro vymazání mezipaměti procedur na úrovni databáze

  1. Rozdělte data sloupců oddělených čárkami do dalších sloupců

  2. Vyberte příkaz pro návrat nadřazeného a nekonečného potomka

  3. ADO.net SqlTransaction zlepšuje výkon

  4. Hibernate anotace pro sériový typ PostgreSQL