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. Windows Server 2003 o un Windows XP o versione successiva del sistema versione, SQL Server possibile utilizzare i meccanismi di notifica di memoria forniti dall'API di 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 native. SQL Server in base alle informazioni raccolte dall'API di Windows QueryMemoryResourceNotification o dal calcolo di memoria, risponde all'attuale situazione 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 la necessità dei / O fisico.
Per ulteriori informazioni, vedere l'argomento "gestione dinamica della memoria" e l'argomento "Server memory options" nella documentazione in linea.

Sintomi

Nelle edizioni a 64 bit di SQL Server, possono verificarsi vari problemi. Ad esempio, potrebbero verificarsi i seguenti problemi:
  • Le prestazioni di SQL Server diminuiscono 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 anche semplici comandi o utilizzano applicazioni nel 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 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. Ciò potrebbe causare un degrado delle prestazioni. Durata: 0 secondi. Working set (KB): 1086400, commesso (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. Ciò potrebbe causare un degrado delle prestazioni. Durata: 315 secondi. Working set (KB): 410156, commesso (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. Ciò potrebbe causare un degrado delle prestazioni. Durata: 646 secondi. Working set (KB): 901904, commesso (KB): 2215752, l'utilizzo della memoria: 40%.

Il team di supporto Microsoft SQL Server ha osservato anche altri messaggi di errore o avvisi che sono registrati nel log degli errori di SQL Server o nei registri eventi di Windows. Questi messaggi simile al seguente:
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 potrebbero essere visualizzati insieme con l'errore "una parte significativa di 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 lavoro paging set discusso in questo articolo come una delle possibili cause, ma non come causa sola. Questi messaggi di errore o avvisi potrebbero essere registrati a causa di varie 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 di un processo SQL Server raggiunge il 50% o inferiore di memoria allocata al processo SQL Server. È possibile utilizzare questi messaggi di errore per determinare il caso in cui le prestazioni di SQL Server diminuiscono significativamente perché 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 30 minuti primo, 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, esiste un problema noto in SQL Server in cui si verifichi 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 falso avviso. Pertanto, non potrebbe indicare che il taglio del working set è 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 aggirare il problema, attenersi alla procedura nella sezione "Come risolvere questo problema" per risolvere il problema.

Se il problema persiste, è possibile impedire al sistema operativo paginazione della memoria del pool di buffer del processo SQL Server bloccando la memoria allocata per il pool di buffer nella memoria fisica. Blocco della memoria, è possibile assegnare il Blocca pagine in memoria utente a destra per l'account utente utilizzato come account di avvio del servizio SQL Server.

Nota Per le edizioni a 64 bit di SQL Server, solo SQL Server Enterprise Edition è possibile utilizzare il Blocca pagine in memoria diritto utente. Questa opzione è applicabile per SQL Server 2005 [RTM, SP1, SP2, SP3] e per SQL Server 2008 [RTM e SP1]. SQL Server 2008 SP1 cumulativo Update 2 e 4 aggiornamento SQL Server 2005 SP3 cumulativo viene introdotto il supporto per le edizioni Standard di SQL Server utilizzare il Blocca pagine in memoria diritto utente. Per ulteriori informazioni sul supporto per pagine bloccate su sistemi a 64 bit, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
970070Supporto per le pagine bloccate sui sistemi SQL Server 2005 Standard Edition a 64 bit e sui sistemi di SQL Server 2008 Standard Edition a 64 bit
Per assegnare il Blocca pagine in memoria diritto utente, attenersi alla seguente procedura:
  1. Fare clic su Avviare, fare clic su Esegui, tipo <b>Gpedit.msc</b>, quindi fare clic su OK.

    Nota IlCriteri di gruppo verrà visualizzata la finestra di dialogo.
  2. Espandere Computer Configurazione, quindi espandere Impostazioni di Windows.
  3. Espandere Impostazioni di protezione, quindi espandereCriteri locali.
  4. Fare clic su Assegnazione diritti utente, quindi fare doppio clic su Blocco di pagine in memoria.
  5. Nel Impostazione di criteri di protezione localiNella finestra di dialogo, fare clic su Aggiungi utente o gruppo.
  6. Nel Selezionare gli utenti o gruppi Nella finestra di dialogo aggiungere l'account che disponga dell'autorizzazione per eseguire il file sqlservr. exe e quindi fare clic suOK.
  7. Chiudi il Criteri di gruppo Nella finestra di dialogo.
  8. Riavviare il servizio SQL Server.
Dopo aver assegnato la Blocca pagine in memoria diritto utente e si riavvia il servizio SQL Server, il sistema operativo Windows non è più elaborano pagine fuori della memoria del pool di buffer nel SQL Server. Tuttavia, il sistema operativo Windows possono ancora pagina fuori della memoria di pool nonbuffer all'interno del processo di SQL Server.

È possibile convalidare che il diritto utente viene utilizzato dall'istanza di SQL Server verificando che il messaggio riportato di seguito viene scritto nel Log degli errori di SQL Server all'avvio:
Per pool di buffer vengono utilizzate pagine bloccate
Questo messaggio è valida solo per le edizioni a 64 bit di SQL Server. Per 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 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 SQL Server, applicare gli aggiornamenti rapidi descritti negli articoli della Microsoft Knowledge Base riportato di seguito.

    Nota Gli aggiornamenti rapidi sono cumulativi. Una versione successiva di un aggiornamento rapido contiene versioni precedenti di tale aggiornamento rapido.
    • Microsoft ha rilevato un problema che potrebbe causare l'edizione a 64 bit di SQL Server working set per essere tagliati. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
      905865Le dimensioni dei working set di tutti i processi in una sessione della console possono essere tagliate 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 i memorizzano nella cache buffer dirty se vi è un'applicazione in esecuzione nel buffer i/O, ad esempio un file operazione di copia. Questo comportamento può causare il working set in SQL Server da tagliare. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
      920739Che si verifichi un calo di prestazioni complessive del sistema quando si copiano i file sono maggiori di circa 500 MB in Windows Server 2003 SP1 o Windows Server 2003 SP1
    • Il SQL Server working set potrebbero essere tagliati quando il sistema utilizza alcune funzionalità avanzate di TCP. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
      942861Messaggio di errore quando un'applicazione si connette a SQL Server su un server che esegue Windows Server 2003: "Errore generale di rete", "Errore di collegamento di comunicazione" o "Un errore a livello di trasporto"
    • Nei computer multiprocessore in cui è in esecuzione 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 della Microsoft Knowledge Base riportato di seguito:
      942486Il processo di sistema può occupare la maggior parte della memoria di sistema disponibile in un computer multiprocessore che esegue Windows Server 2003
  2. Se un driver di periferica utilizza il MmAllocateContiguousMemory funzione, e se imposta il valore dei HighestAcceptableAddress parametro inferiore a 4 gigabyte (GB), il sistema operativo Windows possono pagina fuori del working set del processo di SQL Server 64 bit. Per risolvere il problema, contattare il fornitore del driver di periferica per gli aggiornamenti dei driver. Per un elenco dei driver che hanno incontrato problemi, vedere la sezione "altri fornitori" nell'articolo della Microsoft Knowledge Base riportato di seguito:
    2121098 Gli aggiornamenti del sistema operativo e i driver per le installazioni di SQL Server consigliati
  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 articoli della Microsoft Knowledge Base riportato di seguito:
    938486Un computer basato su Windows Server 2003 smette di risponda a causa di un'operazione di rimozione della gestione memoria che è causata da un modulo indeterminato richiede grandi quantità di memoria
    956341 Un computer basato su Windows Server 2003 smette di risponda a causa di una richiesta di allocazione di grandi quantità di memoria
    Quando un driver di periferica tenta di allocare memoria, il sistema operativo Windows possono pagina fuori il working set di altre applicazioni. Questo hotfix Windows consente di utilizzare l'analisi di eventi per trovare il driver di periferica che causa il problema. Per ulteriori informazioni sui driver specifico che causa il problema di rifilatura working set, vedere l'articolo MSDN"Identificazione driver allocare memoria contigua."
  4. Le applicazioni possono utilizzare la cache di sistema troppo e potrebbero causare una grande crescita della cache del sistema. Per rispondere alla crescita della cache del 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 controllano lo 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 della cache di sistema possono utilizzare le operazioni dei / O file.

    È possibile utilizzare l'oggetto prestazione memoria per visualizzare i valori dei vari contatori di questo oggetto per determinare se la cache di sistema working set 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 la "Microsoft Windows dinamico servizio di Cache" per controllare la memoria utilizzata dalla cache del sistema.
  5. Se SQL Server è in esecuzione con SAP R/3, è possibile che si verifichi un problema di paging. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    931308Che 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 articoli della Microsoft Knowledge Base riportato di seguito:

    971442 Le prestazioni di sistema del server diventano diminuire drasticamente 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 di 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 servire 2008 R2, è necessario applicare le correzioni per problemi noti che possono portare all'utilizzo di set di ritaglio. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato:
    979149 Un computer che esegue Windows 7 o Windows Server 2008 R2 si blocca quando si esegue un'applicazione di grandi dimensioni

    2155311 Si verifica una riduzione delle prestazioni in un computer dotato di processori basati su NUMA e che sia in esecuzione Windows Server 2008 R2 o Windows 7 se grandi quantità di richieste un thread di memoria che si trova all'interno i 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 da versioni a 64 bit di SQL Server

È possibile utilizzare Performance Monitor per visualizzare la pagina di memoria è utilizzato per le edizioni a 64 bit di SQL Server. Per effettuare questa operazione, monitorare le prestazioni seguenti contatore:
Oggetto prestazioni: memoria
Contatore: Pagine/Sec
Per ulteriori informazioni sull'utilizzo di questo contatore per determinare la memoria di pagina, fare clic sul numero dell'articolo riportato di seguito per visualizzare il corrispondente articolo della Della Microsoft Knowledge Base:
889654Come determinare la dimensione del file di pagina appropriato per le versioni a 64 bit di Windows Server 2003 o Windows XP
Inoltre, è possibile misurare il effetto di paging nelle edizioni a 64 bit di SQL Server monitorando i seguenti contatori delle prestazioni:
Oggetto prestazione: processo
Contatore: Byte privati
Istanza: sqlservr

Oggetto prestazione: processo
Contatore: Working Set
Istanza: sqlservr
Il contatore Byte privati misura la quantità di memoria che è attualmente impegnata. Il contatore Working Set misura la quantità di memoria fisica attualmente occupata dal processo. le edizioni a 64 bit di SQL Server, inoltre, utilizzare il contatore delle prestazioni seguenti per esporre la memoria alloca pool di buffer:
Oggetto prestazione: SQL Server: Memory Manager
Contatore: Totale Server Memory(KB)
Nota Se l'istanza dell'edizione a 64 bit di SQL Server è un'istanza denominata il nome dell'oggetto prestazioni è la seguente:
MSSQL$Nomeistanza: Gestore della memoria
Se il valore del contatore Working Set è minore del valore del contatore Totale Server Memory(KB), almeno parte della memoria che fa parte del pool di buffer è stata omessa dal la SQL Server working set.

Dopo aver assegnato la Blocca pagine in memoria diritto utente e si riavvia il servizio SQL Server, pool di buffer del processo di SQL Server ancora risponde agli eventi di notifica risorse di memoria e in modo dinamico 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
  • Il Utilizzo memoria colonna a di Processi scheda di 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 prestazioni SQL Server: Memory Manager rappresenta in modo preciso la quantità di memoria allocata per il pool di buffer.

Considerazioni importanti prima di assegnare l'utente "Blocco di pagine in memoria" a destra di un'istanza di un'edizione a 64 bit di SQL Server

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

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

Prima di assegnare il Blocca pagine in memoria diritto utente, assicurarsi di acquisire un registro di Performance Monitor per determinare i requisiti di memoria delle varie applicazioni e servizi installati nel sistema. Queste applicazioni comprendono anche SQL Server. Per determinare i requisiti di memoria, raccogliere le informazioni di base seguenti:
  • Assicurarsi di impostare il max server memory opzione e il min server memory opzione correttamente. Queste opzioni rifletteranno 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 includono le seguenti operazioni:
    • I thread di lavoro SQL Server
    • L'allocatore di più pagine di gestione memoria di SQL Server
    • Varie DLL e i componenti che carica il processo di SQL Server all'interno dello spazio di indirizzi del processo di SQL Server
    • Operazioni di backup e ripristino
  • La DLL e i componenti includono vari provider OLE DB, stored procedure estese, gli oggetti COM di Microsoft che vengono utilizzati per la sp_OACreate stored procedure, i server collegati e SQL Server CLR. Memoria allocata per questi componenti in cui rientra la regione del pool nonbuffer dello spazio degli indirizzi del processo di SQL Server. Idealmente, determinare la quantità massima di memoria che può utilizzare l'intero processo di SQL Server, è necessario sottrarre la quantità di 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 il max server memory opzione. Prima di impostare il max server memory opzione e il min server memory opzione, è 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 SQL Server componenti, ad esempio, SQL Server agente, gli agenti di replica del SQL Server, SQL Server Reporting Services, SQL Server Analysis Services, SQL Server Integration Services e SQL Server ricerca Full-Text. 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 file IO. È necessario considerare i requisiti di memoria di tutte queste applicazioni quando si determina il valore dei max server memory opzione e il min server memory opzione. Per determinare i requisiti di memoria per un processo specifico, è possibile utilizzare il contatore Byte privati e il contatore Working Set nell'oggetto processo per ogni processo.
  • Per impostazione predefinita, il Blocca pagine in memoria diritto utente è 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 di Windows a livello globale per tutti i processi di SQL Server in un dominio, 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, l'account è necessaria la Blocca pagine in memoria diritto utente per attivare la funzionalità Address Windowing Extensions (AWE). 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 il max server memory opzione e il min server memory l'opzione per più istanze di SQL Server, considerare i requisiti di memoria del pool nonbuffer per ogni istanza di SQL Server. Quindi, configurare le opzioni per ogni istanza di SQL Server.
In teoria, è necessario raccogliere queste informazioni di previsione durante carichi di picco. 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 ring SQL Server per determinare le condizioni di memoria quando viene eseguito il paging

È possibile utilizzare le informazioni dai buffer ring SQL Server per determinare le condizioni di memoria sul server quando viene eseguito il paging. È possibile utilizzare uno script, ad esempio lo script seguente 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 2008 SQL Server.

È 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 il documentazione in linea di SQL Server 2008 riferimento nel seguente sito Web MSDN:
http://msdn.microsoft.com/en-us/library/bb510747.aspx

Informazioni SQL Server 2008 R2 BPA

Il SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) sono disponibili più regole per individuare le situazioni che possono lavorare rifilatura set del processo di SQL Server. Il BPA di SQL Server 2008 R2 supporta 2008 SQL Server e SQL Server 2008 R2.

Se si esegue lo strumento BPA e venga visualizzato l'avviso "Database Engine - memoria SQL Server le impostazioni sono corrette," è necessario verificare l'impostazione max server memory per questa istanza di SQL Server e seguire le istruzioni riportate 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" del presente articolo.

Se si esegue lo strumento BPA e si verifica l'errore, "Database - funzionamento del motore file system e driver needs update per l'utilizzo di set di rifilatura," è necessario esaminare tutte le correzioni descritte nella sezione "Risoluzione" di questo articolo e applicarle.

Se si esegue lo strumento BPA e si verifica l'errore "Database Engine - parte significativa di memoria è stato eseguito il paging, di SQL Server" è necessario esaminare le sezioni "Risoluzione" e "Workaround" di questo articolo e adottare azioni appropriate.

Riferimenti

Riduci questa tabellaEspandi questa tabella
Software di regolaTitolo regolaIdentificatore della regola
SQL Server 2008 R2 BPA regolaLe impostazioni della memoria di SQL Server non sono corretteRID3804
SQL Server 2008 R2 BPA regola Driver e file del sistema operativo è necessario aggiornare per l'utilizzo di set di ritaglio RID0059
SQL Server 2008 R2 BPA regolaUna parte significativa di memoria SQL Server è stato eseguito il pagingRID0049

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


Windows Server 2008 e Windows Server 2008 R2 consente di 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 il working set di applicazioni in una certa misura all'arrivano di nuove richieste di memoria.

Di seguito è riportato una spiegazione dei miglioramenti apportati dal white paper Microsoft "Avanza in Memory Management in Windows XP":

In Windows Server 2008, l'allocazione di memoria fisicamente contigua è stata notevolmente migliorata. Le richieste per l'allocazione di memoria contigua sono molto più probabile di riuscita 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 file system metadati pagine, tra l'altro, ora sono candidati per la sostituzione. Di conseguenza, maggiore di memoria contigua è generalmente disponibili in qualsiasi momento. Inoltre, il costo per ottenere tale assegnazione è notevolmente ridotto.
Per visualizzare il white paper "Avanza in Memory Management in Windows", visitare il seguente sito Web Microsoft:
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 successivo SQL Server.

I prodotti di terze parti in questo articolo viene descritto sono forniti da produttori indipendenti. Microsoft non rilascia alcuna garanzia, implicita o esplicita relativa alle prestazioni o all'affidabilità di questi prodotti.

Proprietà

Identificativo articolo: 918483 - Ultima modifica: mercoledì 27 luglio 2011 - Revisione: 2.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
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
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