Come sviluppatore e DBA che spesso ha preferito la tecnologia, ma se gestiamo una grande organizzazione, dobbiamo essere più accomodanti con tutte le tecnologie. Uno dei miei grandi clienti bancari utilizza più database per eseguire diverse transazioni. Stanno anche utilizzando molte diverse soluzioni di memorizzazione nella cache per la loro attività, nonché hardware di fascia alta. Ho avuto una conversazione molto interessante con il mio cliente sull'argomento di come recuperare le query, non dalla cache per MySQL e SQL Server, abbiamo discusso di SQL_NO_CACHE e OPTION (RICIMPILA). Ne abbiamo discusso durante il controllo completo dell'integrità delle prestazioni del database .
Oggi vediamo due diversi esempi per MySQL e SQL Server. Entrambi i database relazionali sfruttano la memoria cache per restituirci i dati. Vediamo come possiamo scrivere una query in cui non utilizzeremo i risultati memorizzati nella cache ma otterremo i nostri dati direttamente dal disco di SQL Server e non dalla cache.
Query SQL Server – OPZIONE (RICIMPILA)
SELECT Columnname FROM TableName OPTION(RECOMPILE)
Query MySQL SQL_NO_CACHE
SELECT SQL_NO_CACHE Columnname FROM TableName OPTION(RECOMPILE)
Quando utilizzi SQL_NO_CACHE e OPTION (RICIMPILA), i database relazionali (rispettivamente MySQL e SQL Server) recuperano direttamente i dati dal disco anziché quelli archiviati nella cache.
Ecco alcuni post di blog pertinenti sullo stesso argomento, che potresti trovare interessanti.
- SQL SERVER – Elenca il piano delle query, la dimensione della cache, il testo e il conteggio delle esecuzioni
- SQL SERVER:ricerca del piano di query più vecchio dalla cache
- SQL SERVER – Pianifica la cache e la cache dei dati in memoria
- SQL SERVER – Stored procedure – Pulisci cache e Pulisci buffer
- SQL SERVER – Rimuovi tutti i piani di query memorizzati nella cache non utilizzati in un determinato periodo
- SQL SERVER – Script per ottenere un piano compilato con parametri dalla cache
- SQL SERVER – Pianifica la cache – Recupera e rimuovi – Uno script semplice
- SQL SERVER – 2017 – Script per cancellare la cache delle procedure a livello di database