2009-08-17 11 views
22

Sto eseguendo il debug di una delle mie app e ho notato che la RAM sul mio SQL Server 2005 x64 box (in esecuzione su Windows 2003 R2 x64) è ancorata e persino nel file di paging.Quanta RAM è di SQL Server in realtà utilizzando?

Capisco che SQL Server 2005 x64 prende solo tutto ciò che può, quindi potrebbe essere normale (???). Come posso verificare la quantità di memoria effettivamente utilizzata?

+1

Non è questa una domanda ServerFault? –

+0

seleziona * da sys.dm_os_process_memory – user1005462

risposta

22

È necessario eseguire Perfmon (start-> pannello di controllo-> strumenti di amministrazione-> prestazioni). I contatori che vuoi, credo, sono in SQL Server: Memory Manager. La memoria del server di destinazione è quanto è permesso fare, se necessario, la memoria totale del server è quanto sta attualmente utilizzando. Se fai clic su Spiega, si aprirà una finestra con i dettagli.

Per impostazione predefinita è uncappato e dovrebbe utilizzare tutto tranne un paio di GB di memoria (lo lascia per il sistema operativo). Tuttavia, ci sono vari bug e perdite di memoria che possono causare l'andare in paging.

+0

A quali bug ti stai riferendo? Esistono molti motivi legittimi per cui SQL potrebbe richiedere la pagina, di cui uno se il server è affamato di memoria fisica (RAM). Se non c'è RAM disponibile, SQL non ha altra scelta che usare il disco. –

+0

dbcc memorystatus –

+1

Tutto ciò che fa per me è mostrare un grafico che è continuamente '100', che è impossibile. –

-4
  1. Start -> Esegui -> perfmon
  2. Guardate i miliardi di contatori che SQL Server installa
+8

downvote perché ci sono così tanti contatori di sql perf che non sono correlati alla memoria e guardare "gli zillions" non aiuta a rispondere alla domanda. – Brian

+0

È ancora un bel suggerimento. – Mariusz

2

Si dovrebbe esplorare i contatori delle prestazioni Manager \ Memory SQL Server.

9

correlati alla tua domanda, si può prendere in considerazione limitando la quantità di RAM SQL Server ha accesso a se lo si utilizza in un ambiente condiviso, cioè, su un server che ospita più di SQL Server:

  1. Start> Tutti i programmi> Microsoft SQL Server 2005: SQL Server Management Studio.
  2. Connetti usando qualsiasi account ha diritti di amministratore.
  3. Fare clic con il tasto destro del mouse sul database> Proprietà.
  4. Selezionare "Memoria" dal riquadro sinistro e quindi modificare le "Opzioni di memoria del server" in base a ciò che si ritiene debba essere assegnato a SQL Server.

Questo aiuterà ad alleviare SQL Server dal consumare tutta la RAM del server.

0

Passare allo studio di gestione ed eseguire sp_helpdb <db_name>, fornirà l'utilizzo dettagliato del disco per il database specificato. L'esecuzione senza valori di parametro elencherà informazioni di alto livello per tutti i database nell'istanza.

+2

La domanda riguardava l'utilizzo della memoria (RAM) piuttosto che l'utilizzo del disco. – Mike

-2

Il modo più semplice di vedere l'utilizzo della ram se si dispone dell'accesso RDP/accesso alla console sarebbe solo il task manager di avvio - processi di clic - mostra i processi di tutti gli utenti, ordina per RAM - Questo vi darà l'utilizzo di SQL.

Come detto sopra, per ridurre la dimensione (che avrà effetto immediatamente, non è necessario riavviare) avviare sql management studio, fare clic sul server, proprietà - memoria e diminuire il valore massimo. Non esiste un numero perfettamente perfetto, ma assicurati che il server non abbia ram per altre attività.

Le risposte su perfmon sono corrette e dovrebbero essere utilizzate, ma non sono un metodo ovvio come il task manager IMHO.

+0

Questo non funziona .. Mostra 300 Mb ma se riavvia il server SQL ottengo 8gb di memoria in più – Peter

+0

Hai forse delle routine CLR? Quelli possono usare ram e essere liberati quando SQL si ferma. –

+0

No, non stiamo usando le routine clr .. – Peter