Come ridurre il paging della memoria del pool di buffer nella versione a 64 bit di SQL Server

Traduzione articoli Traduzione articoli
Identificativo articolo: 918483 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Microsoft SQL Server esegue la gestione dinamica della memoria in base ai requisiti di memoria il carico corrente e le attivitÓ del sistema. In Windows Server 2003 o un Windows XP o versione successiva del sistema versione, SQL Server pu˛ utilizzare i meccanismi di notifica di memoria forniti dall'API Windows QueryMemoryResourceNotification. In un sistema basato su Microsoft Windows 2000 Server, SQL Server calcola periodicamente la memoria fisica libera disponibile nel sistema utilizzando l'API Windows nativa. In base a tali informazioni dall'API di Windows QueryMemoryResourceNotification o dal calcolo della memoria, SQL Server risponde alla situazione corrente di memoria su un sistema specifico. Ci˛ offre i seguenti vantaggi:
  • Il sistema non pagina fuori del working set del processo di SQL Server.
  • Le pagine di database necessari sono disponibili in memoria per ridurre le esigenze dei / o fisiche.
Per ulteriori informazioni, vedere l'argomento "gestione dinamica della memoria" e l'argomento "Server memory options" nella documentazione in linea di SQL Server.

Sintomi

Nelle edizioni a 64 bit di SQL Server, potrebbero verificarsi vari problemi. Ad esempio, potrebbero verificarsi i seguenti problemi:
  • Le prestazioni di SQL Server riducono improvvisamente.
  • Un computer che esegue SQL Server si blocca per un breve periodo di tempo.
  • Si verifica un timeout per le applicazioni che si connettono a SQL Server.
  • Si verificano problemi quando si eseguono comandi anche in semplici o utilizzano le applicazioni del sistema.
Se Ŕ stato installato SQL Server 2005 Service Pack 2 (SP2) o versione successiva, uno dei seguenti messaggi di errore viene registrato nel log degli errori di SQL Server quando si verificano questi problemi:
Messaggio di errore 1
Data ora parte significativa di un spid1s di memoria del processo di sql server Ŕ stato eseguito il paging. ╚ ad esempio possibile che vengano un calo delle prestazioni. Durata: 0 secondi. Del working set (KB): 1086400, Commit (KB): 2160928, l'utilizzo della memoria: 50%.
Messaggio di errore 2
Data ora parte significativa di un spid1s di memoria del processo di sql server Ŕ stato eseguito il paging. ╚ ad esempio possibile che vengano un calo delle prestazioni. Durata: secondi 315. Del working set (KB): 410156, Commit (KB): 2201296, l'utilizzo della memoria: 18%.
Messaggio di errore 3
Data ora parte significativa di un spid1s di memoria del processo di sql server Ŕ stato eseguito il paging. ╚ ad esempio possibile che vengano un calo delle prestazioni. Durata: secondi 646. Del working set (KB): 901904, Commit (KB): 2215752, l'utilizzo della memoria: 40%.

Il team di supporto di Microsoft SQL Server Ŕ osservato anche ulteriori messaggi di errore o avvisi che vengono registrati nel log degli errori di SQL Server o nei registri eventi di Windows. Questi messaggi simili ai seguenti:
2009-05-05 15:43:56.01 Server      Resource Monitor (0x13c43) Worker 0x0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.

2009-05-05 12:54:52.18 Server      * *******************************************************************************
2009-05-05 12:54:52.18 Server      * BEGIN STACK DUMP:
2009-05-05 12:54:52.18 Server      *   05/05/08 12:54:52 spid 0
2009-05-05 12:54:52.18 Server      * Non-yielding Resource Monitor
2009-05-05 12:54:52.18 Server      * *******************************************************************************

2009-06-10 09:13:53.44 Server      * *******************************************************************************
2009-06-10 09:13:53.44 Server      * BEGIN STACK DUMP:
2009-06-10 09:13:53.44 Server      *   06/10/09 09:13:53 spid 0
2009-06-10 09:13:53.44 Server      * Non-yielding IOCP Listener
2009-06-10 09:13:53.44 Server      * *******************************************************************************

2009-06-10 09:13:55.85 spid2s      LazyWriter: warning, no free buffers found.

2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.
2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.

2009-07-15 13:37:51.42 Logon       Error: 17189, Severity: 16, State: 1.
2009-07-15 13:37:51.42 Logon       SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]

Event Type:	Error
Event Source:	SQLBrowser
Event ID:	8
Description: The SQLBrowser service was unable to process a client request. 
Questi messaggi di errore o avvisi appaia con l'errore "una parte significativa della memoria del processo di sql server Ŕ stato eseguito il paging" messaggio. In alcuni casi, questi messaggi di errore o avvisi non viene visualizzato con il messaggio di errore.

Se si nota uno di questi messaggi di errore o avvisi, prendere in considerazione il SQL Server utilizza il paging set descritto in questo articolo come una delle possibili cause, ma non come la causa sola. Questi messaggi di errore o avvisi Impossibile accedere a causa di diverse altre condizioni o le cause.

Cause

Questo problema si verifica perchÚ le pagine di sistema operativo Windows out del working set del processo di SQL Server.

Questi messaggi di errore registrati quando il working set del processo di SQL Server raggiunge il 50% o inferiore di memoria allocata al processo di SQL Server. ╚ possibile utilizzare questi messaggi di errore per determinare il caso in cui le prestazioni di SQL Server diminuiscono in modo significativo poichÚ le pagine di sistema operativo Windows out del working set del processo di SQL Server. Inoltre, questi messaggi di errore vengono registrati ogni cinque minuti durante i primi 30 minuti. Dopo i primi 30 minuti, la frequenza di questi messaggi di errore raddoppia fino a quando la frequenza raggiunge il limite massimo di un giorno.

Quando si verifica questo problema, Ŕ possibile notare che il working set di altre applicazioni nel sistema viene eseguito il paging anche intorno alla stessa ora.
Per ulteriori informazioni, visitare il seguente sito Web Microsoft:
http://blogs.msdn.com/psssql/archive/2007/05/31/the-SQL-Server-working-set-Message.aspx
Inoltre, Ŕ presente un problema noto in SQL Server in cui Ŕ possibile ricevere un'istanza di questo messaggio di errore. Il messaggio di errore viene registrato nel log degli errori di SQL Server durante il processo di avvio di SQL Server. Il messaggio di errore potrebbe essere un avviso false. Pertanto, non potrebbe indicare che il set di lavoro trim Ŕ effettivamente verificato. Per ulteriori informazioni, visitare il seguente sito Web Microsoft:
http://blogs.msdn.com/psssql/archive/2009/05/12/SQL-Server-Reports-working-set-Trim-Warning-Message-During-Early-Startup-Phase.aspx

Workaround

Prima di tentare di risolvere il problema, attenersi alla procedura nella sezione "Come risolvere il problema" per risolvere il problema.

Se il problema persiste, Ŕ possibile impedire il sistema operativo Windows paging la memoria del pool di buffer del processo di SQL Server consiste nel bloccare la memoria allocata per il pool di buffer nella memoria fisica. Per bloccare la memoria, assegnare il diritto utente Lock pages in memoria per l'account utente che viene utilizzato come l'account di avvio del servizio SQL Server.

Nota. Per le edizioni a 64 bit di SQL Server, solo SQL Server Enterprise Edition pu˛ utilizzare il blocco di pagine in memoria diritto utente. ╚ applicabile per SQL Server 2005 [RTM, SP1, SP2, SP3] e per SQL Server 2008 [RTM e SP1]. SQL Server 2008 SP1 Cumulative Update 2 e SQL Server 2005 SP3 Cumulative Update 4 viene introdotto il supporto per le edizioni Standard di SQL Server utilizzare il blocco di pagine in memoria diritto utente. Per ulteriori informazioni sul supporto per pagine bloccate su sistemi a 64 bit, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
970070 Supporto per le pagine bloccate su sistemi SQL Server 2005 Standard Edition a 64 bit e su sistemi SQL Server 2008 Standard Edition 64 bit
Per assegnare il diritto utente Lock pages in memoria , attenersi alla seguente procedura:
  1. Fare clic su Start, scegliere Esegui, tipo gpedit. msc, quindi scegliere OK.

    Nota. VerrÓ visualizzata la finestra di dialogoCriteri di gruppo .
  2. Espandere ComputerConfiguratione quindi Le impostazioni di Windows.
  3. Espandere Impostazioni protezionee quindi espandereCriteri locali.
  4. Fare clic su Assegnazione diritti utentee quindi fare doppio clic su blocco pagine inmemory.
  5. Nella finestra di dialogo Impostazioni di criteri di protezione localifare clic su Aggiungi utente o gruppo.
  6. Nella finestra di dialogo Seleziona utenti o gruppi , aggiungere l'account che disponga dell'autorizzazione per eseguire il file Sqlservr.exe e quindi fare clic suOK.
  7. Chiudere la finestra di dialogo Criteri di gruppo .
  8. Riavviare il servizio SQL Server.
Dopo aver assegnato il diritto dell'utente Blocca pagine in memoria e si riavvia il servizio SQL Server, il sistema operativo Windows non Ŕ pi¨ il processo pagine la memoria del pool di buffer all'interno di SQL Server. Tuttavia, il sistema operativo Windows pu˛ ancora pagina la memoria del pool di nonbuffer all'interno del processo di SQL Server.

╚ possibile convalidare che il diritto utente viene utilizzato dall'istanza di SQL Server, facendo in modo che il messaggio riportato di seguito viene scritto nel Log degli errori di SQL Server all'avvio:
Utilizzo di pagine bloccate per pool di buffer
Questo messaggio Ŕ valida solo per le edizioni a 64 bit di SQL Server ulteriori informazioni su questo messaggio nel log degli errori, visitare il seguente sito Web Microsoft:
http://blogs.msdn.com/psssql/archive/2007/10/18/Do-i-Have-to-Assign-the-Lock-Privilege-for-Local-System.aspx
Quando le pagine di sistema operativo Windows out il pool di memoria di nonbuffer, Ŕ possibile riscontrare ancora problemi di prestazioni. Tuttavia, i messaggi di errore menzionati nella sezione "Sintomi" non vengono registrati nel log degli errori di SQL Server. Questo comportamento si verifica perchÚ il working set del processo di SQL Server in genere non raggiunge il 50% o inferiore di memoria vincolata.

Informazioni

Come risolvere questo problema

Per risolvere questo problema, attenersi alla seguente procedura:
  1. Per risolvere i problemi noti che il sistema operativo Windows pagina fuori del working set del processo di SQL Server, Ŕ possibile applicare gli aggiornamenti rapidi descritti nei seguenti articoli della Microsoft Knowledge Base.

    Nota. Gli aggiornamenti rapidi sono cumulativi. Una versione successiva di un aggiornamento rapido contiene le versioni precedenti di tale hotfix.
    • Microsoft ha rilevato un problema che potrebbe causare l'edizione a 64 bit di SQL Server insieme a essere tagliati di lavoro. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
      905865 Le dimensioni dei working set di tutti i processi in una sessione della console vengano ridotte quando si utilizza servizi Terminal per accedere o disconnettersi da un computer che esegue Windows Server 2003
    • Computer che eseguono Windows Server 2003 pu˛ essere troppo aggressiva quando si memorizzano nella cache di buffer dirty se esiste un'applicazione che esegue memorizzato nel buffer i/o, ad esempio un'operazione di copia. Questo comportamento pu˛ causare il working set in SQL Server da tagliare. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
      920739 ╚ possibile che si verifichi un calo delle prestazioni complessive del sistema quando si copiano i file pi¨ grandi di circa 500 MB in Windows Server 2003 SP1 o in Windows Server 2003 SP1
    • Il working set di SQL Server potrebbero essere tagliati quando il sistema utilizza alcune funzionalitÓ avanzate del TCP. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
      942861 Messaggio di errore quando un'applicazione si connette a SQL Server in un server che esegue Windows Server 2003: "Errore generale di rete", "Errore di collegamento di comunicazione" o "Un errore a livello di trasporto"
    • In un computer multiprocessore che esegue Windows Server 2003, il processo di sistema pu˛ utilizzare la maggior parte della memoria di sistema disponibile. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
      942486 Il processo di sistema pu˛ utilizzare la maggior parte della memoria di sistema disponibile in un computer multiprocessore che esegue Windows Server 2003
  2. Se si utilizza un driver di periferica del MmAllocateContiguousMemory funzione, e se imposta il valore della HighestAcceptableAddress parametro inferiore a 4 gigabyte (GB), il sistema operativo Windows pu˛ pagina fuori del working set del processo di SQL Server a 64 bit. Per risolvere questo problema, contattare il fornitore del driver di periferica per gli aggiornamenti dei driver. Per un elenco di driver che si siano verificati dei problemi, vedere la sezione "altri produttori" nell'articolo della Microsoft Knowledge Base riportato di seguito:
    2121098 Gli aggiornamenti del sistema operativo e i driver per le installazioni di SQL Server consigliata
  3. Se si verificano questi problemi dopo aver applicato questi aggiornamenti rapidi, applicare un hotfix di Windows che consente di limitare il numero di operazioni di taglio al processo. Per ulteriori informazioni, fare clic sui numeri degli articolo riportato di seguito per visualizzare gli articoli della Microsoft Knowledge Base:
    938486 Un computer basato su Windows Server 2003 non risponde a causa di un'operazione di rimozione della gestione memoria causato da un modulo indeterminato che richiede grandi quantitÓ di memoria
    956341 Un computer basato su Windows Server 2003 non risponde a causa di una richiesta di allocazione di memoria di grandi dimensioni
    Quando un driver di periferica tenta di allocare la memoria, il sistema operativo Windows pu˛ pagina fuori del working set di altre applicazioni. Questo hotfix di Windows consente di utilizzare traccia eventi per trovare il driver di periferica che causa il problema. Per ulteriori informazioni sul driver specifico che causa il comportamento di rifilatura working set, vedere l'articolo MSDN"Identificazione di driver che allocano memoria contigua."
  4. Le applicazioni possono utilizzare la cache di sistema troppo e potrebbero causare una crescita di grandi dimensioni della cache di sistema. Per rispondere alla crescita della cache di sistema, le pagine di sistema out del working set del processo di SQL Server o di altre applicazioni. Se si verifica questo problema, Ŕ possibile utilizzare alcune funzioni di gestione della memoria dell'applicazione. Queste funzioni di controllo dello spazio di cache di sistema possono utilizzare operazioni dei / o di file nell'applicazione. Ad esempio, Ŕ possibile utilizzare il SetSystemFileCacheSize funzione e il GetSystemFileCacheSize funzione per controllare lo spazio di cache di sistema possono utilizzare le operazioni dei / o file.

    ╚ possibile utilizzare l'oggetto delle prestazioni di memoria per visualizzare i valori dei vari contatori di questo oggetto per determinare se la cache di sistema insieme di lavoro utilizza troppa memoria. Ad esempio, Ŕ possibile visualizzare i contatori byte nella Cache e Byte residenti Cache di sistema. Per ulteriori informazioni su questo argomento, visitare i seguenti siti Web Microsoft:
    http://blogs.msdn.com/NTDebugging/archive/2007/11/27/Too-Much-cache.aspx

    http://blogs.msdn.com/NTDebugging/archive/2009/02/06/Microsoft-Windows-Dynamic-cache-Service.aspx

    http://support.microsoft.com/default.aspx?scid=KB;EN-US; 976618
    ╚ possibile scaricare e distribuire il "servizio Microsoft Windows Dynamic Cache" per controllare la memoria consumata dalla cache del sistema.
  5. Se SQL Server Ŕ in esecuzione con SAP R/3, potrebbe verificarsi un problema di paging. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
    931308 ╚ possibile che si verifichi un aumento di paging sul disco rigido quando si esegue un programma di SAP R/3 in un computer basato su Windows Server 2003
  6. Se si esegue SQL Server in Windows Server 2008, Ŕ necessario applicare le correzioni per problemi noti che possono portare all'utilizzo di set di rifilatura o consumo eccessivo della memoria non necessari da altri componenti del sistema operativo. Per ulteriori informazioni, fare clic sui numeri degli articolo riportato di seguito per visualizzare gli articoli della Microsoft Knowledge Base:

    971442 Le prestazioni di sistema del server costituisce una seria minaccia diventa diminuita quando si tenta di copiare i file da un server che esegue Windows Vista o Windows Server 2008 tramite una rete

    974609 Un computer che esegue Windows Server 2008 in modo casuale si blocca quando si esegue un'applicazione di grandi dimensioni

    971714 Il processo di generazione report potrebbe bloccarsi quando si esegue Perfmon.exe con il modello di Active Directory Diagnostics per generare un report in un controller di dominio basato su Windows Server 2008
  7. Se si esegue SQL Server in Windows servono 2008 R2, Ŕ necessario applicare le correzioni per problemi noti che possono portare all'utilizzo di set di rifilatura. Per ulteriori informazioni, fare clic sui numeri per visualizzare l'articolo della Microsoft Knowledge Base:
    979149 Un computer che esegue Windows 7 o Windows Server 2008 R2 non risponde quando si esegue un'applicazione di grandi dimensioni

    2155311 Si verifica una riduzione delle prestazioni in un computer con processori basati su NUMA e che esegue Windows Server 2008 R2 o Windows 7 se un thread richieste molta memoria che si trova all'interno dei primi 4 GB di memoria

    2468345 Computer in modo discontinuo sono scarse o non risponde quando viene utilizzato il driver Storport in Windows Server 2008 R2

Come determinare la quantitÓ di memoria utilizzata dalle edizioni a 64 bit di SQL Server

╚ possibile utilizzare Performance Monitor per visualizzare la pagina di memoria utilizzata dalle edizioni a 64 bit di SQL Server. A tale scopo, Ŕ possibile monitorare il contatore delle prestazioni seguenti:
Oggetto delle prestazioni: memoria
Contatore: Pagine/Sec
Per ulteriori informazioni su come utilizzare questo contatore per determinare la pagina di memoria, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
889654 Come determinare la dimensione del file di pagina appropriato per le versioni a 64 bit di Windows Server 2003 o Windows XP
Inoltre, Ŕ possibile misurare l'effetto di paging nelle edizioni a 64 bit di SQL Server controllando i seguenti contatori di prestazioni:
Oggetto prestazione: processo
Contatore: Byte privati
Istanza: sqlservr

Oggetto prestazione: processo
Contatore: Working Set
Istanza: sqlservr
Il contatore Byte privati di misurare la memoria Ŕ attualmente impegnata. Il contatore Working Set misura la memoria fisica attualmente occupata dal processo. edizioni a 64 bit di SQL Server consente inoltre di utilizzare il contatore delle prestazioni seguenti per esporre la memoria alloca pool di buffer:
Oggetto delle prestazioni: Manager: memoria di SQL Server
Contatore: Totale Server Memory(KB)
Nota. Se l'istanza dell'edizione a 64 bit di SQL Server Ŕ un'istanza denominata, il nome dell'oggetto delle prestazioni Ŕ la seguente:
MSSQL$InstanceName: Gestore della memoria
Se il valore del contatore Working Set Ŕ minore del valore del contatore totale Memory(KB) Server, almeno una certa quantitÓ di memoria che fa parte del pool di buffer Ŕ stato rimossi da di SQL Server insieme di lavoro.

Dopo aver assegnato il diritto dell'utente Blocca pagine in memoria e si riavvia il servizio SQL Server, il pool di buffer del processo di SQL Server Ŕ ancora risponde a eventi di notifica risorse di memoria, e dinamicamente aumenta o diminuisce in risposta a tali eventi. Tuttavia, non Ŕ possibile visualizzare le allocazioni di memoria per il pool di buffer bloccate in memoria i seguenti contatori di prestazioni:
  • Il contatore Byte privati e il contatore Working Set in Performance Monitor
  • La colonna Utilizzo memoria nella scheda processi in Task Manager
Dopo queste pagine sono protetti, questi contatori delle prestazioni rappresentano le allocazioni di memoria all'interno del processo di SQL Server quando tali allocazioni di non utilizzano il pool di buffer. Il contatore totale Memory(KB) Server dell'oggetto delle prestazioni di SQL Server: Memory Manager rappresenta accuratamente la memoria allocata per il pool di buffer.

Considerazioni importanti prima di assegnare l'utente "Lock pages in memory" a destra di un'istanza di un'edizione a 64 bit di SQL Server

╚ necessario effettuare ulteriori considerazioni prima di assegnare l'utente Blocca pagine in memoria destro. Se si assegna l'utente in sistemi che non sono configurati correttamente, il sistema potrebbe diventare instabile o diminuzione delle prestazioni dell'intero sistema. Evento ID 333 pu˛ inoltre essere registrato nel registro eventi.

Se si contatta il servizio supporto clienti di Microsoft (CSS) per questi problemi, i tecnici CSS potrebbe essere richiesto di revocare questo diritto utente per l'account utente che viene utilizzato come l'account di avvio del servizio SQL Server. Questo passaggio potrebbe essere necessario raccogliere dati di prestazioni importanti che gli ingegneri CSS possono utilizzare per le varie opzioni per SQL Server e per altre applicazioni in esecuzione nel sistema di configurazione necessarie. Dopo che i tecnici CSS raccolgono i dati sulle prestazioni, Ŕ possibile assegnare l'utente Blocca pagine in memoria a destra per l'account di avvio del servizio SQL Server.

Prima di assegnare il diritto utente Lock pages in memoria , assicurarsi di acquisire un registro di Performance Monitor per determinare i requisiti di memoria delle varie applicazioni e servizi installati nel sistema. Tali applicazioni comprendono anche SQL Server. Per determinare i requisiti di memoria, raccogliere le informazioni di base seguenti:
  • Assicurarsi di impostare correttamente l'opzione max server memory e l'opzione min server memory . Queste opzioni riflettono solo il requisito di memoria del pool di buffer del processo di SQL Server. Queste opzioni non includono la memoria allocata per altri componenti all'interno del processo di SQL Server. Questi componenti comprendono:
    • I thread di lavoro di SQL Server
    • L'allocatore Multipage di gestione memoria di SQL Server
    • Varie DLL e componenti che il processo di SQL Server carica all'interno dello spazio di indirizzi del processo di SQL Server
    • Le operazioni di backup e ripristino
  • La DLL e i componenti includono vari provider OLE DB, le stored procedure estese, gli oggetti COM di Microsoft che vengono utilizzati per la procedura sp_OACreate memorizzati, il server collegati e il CLR di SQL Server. Memoria allocata per questi componenti scende sotto l'area del pool di nonbuffer di spazio di indirizzi del processo di SQL Server. Per determinare in teoria la quantitÓ massima di memoria che pu˛ utilizzare l'intero processo di SQL Server, Ŕ necessario sottrarre la memoria allocata per i componenti che non utilizzano il pool di buffer di memoria totale che si desidera utilizzare il processo di SQL Server. Quindi, Ŕ possibile utilizzare il valore rimanente per impostare l'opzione max server memory . Prima di impostare l'opzione max server memory e l'opzione min server memory , Ŕ opportuno esaminare attentamente l'argomento "Impostazione delle opzioni di memoria manualmente" nella documentazione in linea di SQL Server.
  • Determinare i requisiti di memoria di altre applicazioni e dei componenti del sistema operativo Windows. Le applicazioni possono includere altri componenti di SQL Server, ad esempio, ricerca Full Text di SQL Server, SQL Server Integration Services, SQL Server Analysis Services, SQL Server Reporting Services, gli agenti di replica di SQL Server e agente SQL Server. Le applicazioni che eseguono operazioni di copia di file e le operazioni di backup possono utilizzare grandi quantitÓ di memoria. Si consiglia di operazioni quali la copia di massa e l'agente Snapshot che generano i/o file. ╚ necessario considerare tutte queste applicazioni la memoria richiesta per determinare il valore dell'opzione max server memory e l'opzione min server memory . ╚ possibile utilizzare il contatore Byte privati e il contatore Working Set nell'oggetto processo per ogni processo per determinare la memoria richiesta per un determinato processo.
  • Per impostazione predefinita, il diritto dell'utente Blocca pagine in memoria Ŕ giÓ stato assegnato all'account di sistema locale predefinito. Per ulteriori informazioni, visitare il seguente sito Web Microsoft:
    http://blogs.msdn.com/psssql/archive/2007/10/18/Do-i-Have-to-Assign-the-Lock-Privilege-for-Local-System.aspx
  • Se si utilizza un account utente Windows a livello globale per tutti i processi di SQL Server in un dominio, Ŕ necessario determinare i diritti utente assegnati utilizzando una configurazione di criteri di gruppo. Un processo di SQL Server a 32 bit pu˛ utilizzare questo account come account di avvio. Tuttavia, questo account richiede il diritto utente Lock pages in memoria per attivare la funzionalitÓ delle estensioni AWE (Address Windowing). Per ulteriori informazioni, vedere l'argomento "Che fornisce la quantitÓ massima di memoria per SQL Server" nella documentazione in linea di SQL Server.
  • Prima di configurare l'opzione max server memory e l'opzione min server memory per pi¨ istanze di SQL Server, considerare i requisiti di memoria del pool di nonbuffer per ogni istanza di SQL Server. Quindi, configurare le opzioni per ogni istanza di SQL Server.
In teoria, Ŕ possibile raccogliere queste informazioni di base durante i picchi di carico. Pertanto, Ŕ possibile determinare i requisiti di memoria per diverse applicazioni e componenti supportare il carico di picco. I requisiti di memoria variano da un sistema a un altro sistema, a seconda delle attivitÓ e le applicazioni in esecuzione nel sistema.

Come utilizzare le informazioni dai buffer circolare di SQL Server per determinare le condizioni di memoria quando si verifica lo spostamento

╚ possibile utilizzare le informazioni dai buffer circolare di SQL Server per determinare le condizioni di memoria sul server quando si verifica lo spostamento. ╚ possibile utilizzare uno script come il seguente script per ottenere queste informazioni.
SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
DATEADD (ms, -1 * (sys.ms_ticks - a.[Record Time]), GETDATE()) AS Notification_time,  
 a.* , sys.ms_ticks AS [Current Time]
 FROM 
 (SELECT x.value('(//Record/ResourceMonitor/Notification)[1]', 'varchar(30)') AS [Notification_type], 
 x.value('(//Record/MemoryRecord/MemoryUtilization)[1]', 'bigint') AS [MemoryUtilization %], 
 x.value('(//Record/MemoryRecord/TotalPhysicalMemory)[1]', 'bigint') AS [TotalPhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') AS [AvailablePhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/TotalPageFile)[1]', 'bigint') AS [TotalPageFile_KB], 
 x.value('(//Record/MemoryRecord/AvailablePageFile)[1]', 'bigint') AS [AvailablePageFile_KB], 
 x.value('(//Record/MemoryRecord/TotalVirtualAddressSpace)[1]', 'bigint') AS [TotalVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') AS [AvailableVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryNode/@id)[1]', 'bigint') AS [Node Id], 
 x.value('(//Record/MemoryNode/ReservedMemory)[1]', 'bigint') AS [SQL_ReservedMemory_KB], 
 x.value('(//Record/MemoryNode/CommittedMemory)[1]', 'bigint') AS [SQL_CommittedMemory_KB], 
 x.value('(//Record/@id)[1]', 'bigint') AS [Record Id], 
 x.value('(//Record/@type)[1]', 'varchar(30)') AS [Type], 
 x.value('(//Record/ResourceMonitor/Indicators)[1]', 'bigint') AS [Indicators], 
 x.value('(//Record/@time)[1]', 'bigint') AS [Record Time]
 FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers 
 WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR') AS R(x)) a 
CROSS JOIN sys.dm_os_sys_info sys
ORDER BY a.[Record Time] ASC

Nota. Questa query Ŕ valida per SQL Server 2005 e SQL Server 2008.

╚ possibile richiedere le informazioni fornite in sys.dm_os_process_memory di visualizzazione la gestione dinamica per comprendere se il sistema Ŕ che si verifichino condizioni di memoria insufficiente. Per ulteriori informazioni, vedere la documentazione in linea di SQL Server 2008 al seguente sito Web MSDN:
http://msdn.microsoft.com/en-us/library/bb510747.aspx
Di SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) fornisce pi¨ regole per individuare le situazioni che possono lavorare insieme trimming del processo di SQL Server. Il BPA di SQL Server 2008 R2 supporta SQL Server 2008 e SQL Server 2008 R2.

Riduci questa tabellaEspandi questa tabella
Software di regolaTitolo regolaDescrizione della regolaVersioni del prodotto rispetto al quale viene valutata la regola
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)
Le impostazioni della memoria di SQL Server non sono corrette


Se si esegue lo strumento BPA e visualizzato il messaggio di avviso "Database Engine - memoria di SQL Server le impostazioni sono corrette," Ŕ necessario controllare l'impostazione max server memory per questa istanza di SQL Server e seguire i consigli forniti nella sezione "Considerazioni importanti prima di assegnare l'utente 'Lock pages in memory' a destra di un'istanza di un'edizione a 64 bit di SQL Server" di questo articolo.SQL Server 2008
SQL Server 2008 R2


SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Driver e i file del sistema operativo di aggiornamento necessario per l'utilizzo di set di rifilaturaSe si esegue lo strumento BPA e si verifica l'errore, "motore di Database - operativo i file di sistema e driver di aggiornamento necessario per il working set di rifilatura," Ŕ necessario esaminare tutte le correzioni descritte nella sezione "Risoluzione" di questo articolo e applicarle.
SQL Server 2008
SQL Server 2008 R2

SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Una parte significativa della memoria di SQL Server Ŕ stato eseguito il paging
Se si esegue lo strumento BPA e si verifica l'errore "Database Engine - parte significativa della memoria Ŕ stato eseguito il paging, di SQL Server" Ŕ necessario esaminare le sezioni "Risoluzione" e "Workaround" di questo articolo e intraprendere l'azione appropriata.
SQL Server 2008
SQL Server 2008 R2


Miglioramenti apportati in Windows Server 2008 e in Windows Server 2008 R2


Windows Server 2008 e Windows Server 2008 R2 migliorare il meccanismo di allocazione di memoria contigua. Questo miglioramento consente a Windows Server 2008 e Windows Server 2008 R2 ridurre gli effetti di paginazione del working set di applicazioni in una certa misura all'arrivano di nuove richieste di memoria.

Di seguito Ŕ riportata una spiegazione dei miglioramenti apportati nel white paper Microsoft "Sposta in avanti nella memoria Management in Windows":

In Windows Server 2008, l'allocazione di memoria fisicamente contigua Ŕ stata notevolmente migliorata. Le richieste di allocazione di memoria contigua sono molto pi¨ probabile che venga eseguita correttamente perchÚ il gestore della memoria ora sostituisce in modo dinamico le pagine, in genere senza tagliare il working set o l'esecuzione di operazioni dei / o. Inoltre, molti pi¨ tipi di pagine, ad esempio gli stack del kernel e pagine file di metadati di sistema, tra l'altro, ora sono candidati per la sostituzione. Di conseguenza, maggiore di memoria contigua Ŕ in genere disponibile in qualsiasi momento. Inoltre, si riduce notevolmente il costo per ottenere tali allocazioni.
Per visualizzare il white paper "Sposta in avanti nella memoria Management in Windows", visitare il Website Microsoft riportato di seguito:
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4BAE-9fde-d599bac8184a/MemMgt.docx
Per ulteriori informazioni, visitare i seguenti siti Web Microsoft:
http://blogs.msdn.com/psssql/Archive/2008/03/03/SQL-Server-working-set-Trim-Problems-Consider.aspx
http://support.microsoft.com/kb/2001745
Nota. In un computer basato su Windows Server 2008, Ŕ necessario installare SQL Server Service Pack 2 (SP2) o un service pack pi¨ recente per SQL Server.

I prodotti di terze parti descritti in questo articolo sono forniti da societÓ indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita, sulle prestazioni o sull'affidabilitÓ di questi prodotti.

ProprietÓ

Identificativo articolo: 918483 - Ultima modifica: domenica 22 giugno 2014 - Revisione: 3.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
Chiavi:á
kbsqlsetup kbsql2005engine kbexpertiseadvanced kbinfo kbmt KB918483 KbMtit
Traduzione automatica articoli
IMPORTANTE: il presente articolo Ŕ stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l?obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre Ŕ perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilitÓ per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualitÓ della traduzione.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 918483
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com