Domanda

In una delle mie applicazioni ho una tabella di database da 1 GB che viene utilizzata per i dati di riferimento.Ha un'enorme quantità di letture che escono da quel tavolo ma non ci sono mai scritture.Mi chiedevo se esiste un modo per caricare i dati nella RAM in modo che non sia necessario accedervi dal disco?

Sto utilizzando SQL Server 2005

È stato utile?

Soluzione

Se hai abbastanza RAM, SQL farà un lavoro eccezionale determinando cosa caricare nella RAM e cosa cercare sul disco.

Questa domanda viene posta spesso e mi ricorda le persone che cercano di impostare manualmente su quale "core" verrà eseguito il loro processo: lascia che il sistema operativo (o in questo caso il DB) faccia ciò per cui è stato progettato.

Se desideri verificare che SQL stia effettivamente leggendo i dati di ricerca dalla cache, puoi avviare un test di carico e utilizzare Sysinternals FileMon, Esplora processi E Monitoraggio del processo per verificare che la tabella da 1 GB non venga letta.Per questo motivo, a volte inseriamo i nostri dati di "ricerca" in un filegroup separato in modo che sia molto facile monitorare quando si accede ad essi sul disco.

Spero che questo ti aiuti.

Altri suggerimenti

Ti consigliamo di dare un'occhiata a memcached.È quello che molti siti enormi (e ben scalati) usano per gestire problemi come questo.Se disponi di alcuni server di riserva, puoi configurarli facilmente per mantenere la maggior parte dei tuoi dati in memoria.

http://en.wikipedia.org/wiki/Memcached

http://www.danga.com/memcached/

http://www.socialtext.net/memcached/

Giusto per chiarire il problema per sql2005 e versioni successive:

Questa funzionalità è stata introdotta per le prestazioni nella versione 6.5 SQL Server.DBCC Pintable ha effetti collaterali altamente indesiderati.Questi includono il potenziale per danneggiare il pool di buffer.DBCC Pintable non è necessario ed è stato rimosso per prevenire ulteriori problemi.La sintassi per questo comando funziona ancora ma non influisce sul server.

DBCC PINTABLE aggiungerà esplicitamente una tabella nel core se vuoi assicurarti che rimanga memorizzata nella cache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top