RS First Dynamics NAV Blog


...from NAV 3.60 to NAV 2013
Archivio Posts
Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

SQL Server Working Out : bloccare le pagine in memoria in un'istanza di Sql Server 64 bit

Nelle edizioni a 64-bit di SQL Server 2005, potrebbero verificarsi alcuni problemi (non rilevati nella versione 32bit)

Sintomi problemi:

  • 1. Le prestazioni di SQL Server 2005 riduce improvvisamente.
  • 2. SQL Server 2005 si blocca per un breve periodo di tempo.
  • 3. Si verifica un timeout per le applicazioni che connettersi a SQL Server 2005.
  • --> I problemi si verificano quando si eseguono anche semplici comandi o utilizzare applicazioni nel sistema.

Se si verificano ancora questi problemi, è possibile impedire il sistema operativo Windows paging fuori la memoria del pool di buffer del processo di SQL Server bloccando la memoria allocata per il pool di buffer in memoria fisica. È possibile bloccare la memoria assegnando il diritto di utente Blocca pagine in memoria all'account utente che viene utilizzato come l'account di avvio del servizio SQL Server.

--> "Nota Per le edizioni a 64-bit di SQL Server 2005, solo SQL Server 2005 Enterprise Edition possibile utilizzare l'utente Blocca pagine in memoria a destra."

Per assegnare il diritto utente Blocca pagine in memoria , attenersi alla seguente procedura:

1. Fare clic sul pulsante Start , scegliere Esegui , digitare gpedit.msc e quindi fare clic su OK . Verrà visualizzata la finestra di dialogo Criteri di gruppo

2. Espandere computer configurazione , quindi espandere Impostazioni di Windows .  Espandere Impostazioni di protezione e quindi espandere Criteri locali .

3. Fare clic su Assegnazione diritti utente e quindi fare doppio clic su Blocca pagine in memoria .

4. In Impostazioni dei criteri di protezione locale finestra di dialogo fare clic su Aggiungi utente o gruppo .

5. Nella finestra di dialogo Seleziona utenti o gruppi aggiungere l'account che dispone dell'autorizzazione per eseguire il file sqlservr.exe, quindi OK .

6. Chiudere la finestra di dialogo Criteri di gruppo .

7. Riavviare il servizio SQL Server.

Dopo aver assegnare il diritto di utente Blocca pagine in memoria e riavviare il servizio SQL Server, il Windows sistema operativo non è più pagine dalla memoria del pool di buffer in SQL Server elaborare. Tuttavia, il sistema operativo Windows ancora possibile pagina fuori la memoria del pool nonbuffer all'interno del processo di SQL Server.

Quando le pagine di sistema operativo Windows out la memoria del pool nonbuffer, potresti imbatterti 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 di un processo di SQL Server 2005 in genere non raggiunge il 50 % della memoria vincolata.

Script per determinare condizione di memoria quando si verifica il paging

SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
DATEADD (ms, -1 * ((sys.cpu_ticks / sys.cpu_ticks_in_ms) - 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

 
Categoria: Sql Server ALL
venerdì, 20 feb 2009 Ore. 12.04

Messaggi collegati


Statistiche
  • Views Home Page: 451.130
  • Views Posts: 863.572
  • Views Gallerie: 0
  • n° Posts: 343
  • n° Commenti: 0
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003