Delen via


Prestatievermindering in SQL Server waarvoor naleving van algemene criteria is ingeschakeld

Symptomen

Wanneer u de algemene optie voor nalevingsconfiguratie voor criteria hebt ingeschakeld in SQL Server, ziet u mogelijk een verslechtering van de prestaties van SQL Server.

Algemene criterianaleving

Nadat u de algemene optie voor naleving van criteria in SQL Server hebt ingeschakeld, kan het zijn dat u wacht- en algemene controleoverhead voor criterianaleving ondervindt wanneer meerdere gelijktijdige verificaties dezelfde aanmelding gebruiken.

Nadat u deze optie hebt ingeschakeld, kan het zijn dat de prestaties langzaam afnemen. Bovendien ziet u mogelijk hoge LCK_M_SCH_M wachttijden in prestatiestatistieken. LCK_M_SCH_M is een schemawijzigingsvergrendeling die de toegang tot een tabel voorkomt terwijl een DDL-bewerking (Data Definition Language) plaatsvindt. U vindt ook geblokkeerde procesrecords waarin een LOGIN_STATS tabel in de hoofddatabase lang wacht. Deze tabel wordt gebruikt voor het opslaan van aanmeldingsstatistieken. Wanneer er veel aanmeldingen en afmeldingen zijn, kan er sprake zijn van conflicten in deze tabel.

Voer de volgende opdrachten uit om te begrijpen waarom er een LCK_M_SCH_M wacht gebeurtenis optreedt:

CREATE EVENT SESSION [CreateDumpOnLCKMSCHM] ON SERVER
ADD EVENT sqlos.wait_info(
    ACTION(package0.callstack,sqlserver.create_dump_all_threads)
    WHERE (([opcode]=('Begin')) AND ([wait_type]=('LCK_M_SCH_M'))))
ADD TARGET package0.event_file(SET filename=N'CreateDumpOnLCKMSCHM',max_file_size=(128))
GO

ALTER EVENT SESSION [TestCreateDump] ON SERVER
STATE = START
GO

WHILE ((SELECT COUNT(1) FROM sys.dm_server_memory_dumps) < 5)
BEGIN
       WAITFOR DELAY '00:00:00.100'

END

ALTER EVENT SESSION [CreateDumpOnLCKMSCHM] ON SERVER
STATE = STOP

Wanneer u algemene criterianaleving inschakelt, wordt ook een beveiligingsmaatregel met de naam Residue Information Protection (RIP) ingeschakeld. VOOR RIP moet een geheugentoewijzing worden overschreven met een bekend patroon van bits voordat het geheugen opnieuw wordt toegewezen aan een nieuwe resource. Met veel aanmeldingen en afmeldingen is er dus een prestatievermindering in het geheugen, omdat het overschrijven van de geheugentoewijzing moet worden uitgevoerd.

Tijdelijke oplossing

Als naleving van algemene criteria geen strikte vereiste is, kunt u overwegen deze uit te schakelen om de overhead voor controle te verminderen en de prestaties te verbeteren. Voer de volgende opdrachten uit om de optie uit te schakelen:

sp_configure 'common criteria compliance enabled', 0
GO
RECONFIGURE
GO

Nadat u de configuratie hebt gewijzigd, start u de SQL Server-services opnieuw op om de wijzigingen van kracht te laten worden.

Meer informatie

Serverconfiguratie met algemene criterianaleving