sql >> Database teknologi >  >> RDS >> Mysql

SQL SERVER – SQL_NO_CACHE og OPTION (GENKOMPILER)

Som udvikler og DBA, der ofte har foretrukket teknologi, men hvis vi driver en stor organisation, skal vi være mere imødekommende over for alle teknologierne. En af mine store bankkunder bruger flere databaser til at udføre forskellige transaktioner. De bruger også masser af forskellige caching-løsninger til deres virksomhed såvel som top-of-the-line hardware. Jeg havde en meget interessant samtale med min klient om emnet, hvordan man henter forespørgsler, ikke fra cachen til MySQL og SQL Server, vi diskuterede SQL_NO_CACHE og OPTION (RECOMPILE). Vi diskuterede under det omfattende sundhedstjek af databaseydelse .

Lad os se to forskellige eksempler i dag for MySQL og SQL Server. Begge relationsdatabaser udnytter hukommelsescachen til at returnere os dataene. Lad os se, hvordan vi kan skrive en forespørgsel, hvor vi ikke vil bruge de cachelagrede resultater, men direkte hente vores data fra SQL Server-disken og ikke fra cachen.

SQL-serverforespørgsel – MULIGHED (GENKOMPIL)

SELECT Columnname
FROM TableName
OPTION(RECOMPILE)

MySQL-forespørgsel SQL_NO_CACHE

SELECT SQL_NO_CACHE Columnname
FROM TableName
OPTION(RECOMPILE)

Når du bruger SQL_NO_CACHE og OPTION (RECOMPILE), henter relationsdatabaserne (henholdsvis MySQL og SQL Server) dataene direkte fra disken i stedet for det, der er gemt i cachen.

Her er et par relevante blogindlæg om samme emne, som du måske finder interessante.

  • SQL-SERVER – Listeforespørgselsplan, cachestørrelse, tekst- og eksekveringsantal
  • SQL-SERVER – Find den ældste forespørgselsplan fra cachen
  • SQL SERVER – Plan cache og datacache i hukommelsen
  • SQL SERVER – Lagret procedure – Rens cache og rense buffer
  • SQL-SERVER – Fjern alle forespørgselscacheplaner, der ikke er brugt i en bestemt periode
  • SQL SERVER – script til at få kompileret plan med parametre fra cachen
  • SQL SERVER – Plan cache – Hent og fjern – Et simpelt script
  • SQL SERVER – 2017 – Script til at rydde procedurecache på databaseniveau

  1. Sådan fungerer Scale()-funktionen i PostgreSQL

  2. INT vs Unique-Identifier for ID-felt i databasen

  3. #1139 - Fik fejlen 'repetition-operator operand invalid' fra regexp

  4. Hvordan logger/sporer jeg Oracle-lagrede procedurekald med parameterværdier?