Degradación del rendimiento en SQL Server con el cumplimiento de criterios comunes habilitado
Artículo
Síntomas
Cuando tenga habilitada la opción de configuración de cumplimiento de criterios comunes en SQL Server, es posible que observe una degradación en el rendimiento de SQL Server.
Cumplimiento de criterios comunes
Después de habilitar la opción de cumplimiento de criterios comunes en SQL Server, puede experimentar bloqueos en espera y sobrecarga de auditoría de cumplimiento de criterios comunes cuando varias autenticaciones simultáneas usan el mismo inicio de sesión.
Después de habilitar esta opción, puede experimentar una degradación lenta en el rendimiento. Además, es posible que vea esperas altas LCK_M_SCH_M en las estadísticas de rendimiento. LCK_M_SCH_M es un bloqueo de modificación de esquema que impide el acceso a una tabla mientras se produce una operación de lenguaje de definición de datos (DDL). También encontrará registros de proceso bloqueados en los que una LOGIN_STATS tabla de la base de datos maestra espera mucho tiempo. Esta tabla se usa para contener estadísticas de inicio de sesión. Cuando hay muchos inicios de sesión y cierres de sesión, puede haber contención en esta tabla.
Para comprender por qué se produce un LCK_M_SCH_M evento de espera, ejecute los siguientes comandos:
SQL
CREATEEVENTSESSION [CreateDumpOnLCKMSCHM] ONSERVERADDEVENT 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))
GOALTEREVENTSESSION [TestCreateDump] ONSERVER
STATE = STARTGOWHILE ((SELECTCOUNT(1) FROM sys.dm_server_memory_dumps) < 5)
BEGIN
WAITFOR DELAY '00:00:00.100'ENDALTEREVENTSESSION [CreateDumpOnLCKMSCHM] ONSERVER
STATE = STOP
Al habilitar el cumplimiento de criterios comunes, también se habilita una medida de seguridad denominada Protección de la información residual (RIP). RIP requiere que una asignación de memoria se sobrescriba con un patrón de bits conocido antes de que la memoria se reasigne a un nuevo recurso. Por lo tanto, con muchos inicios de sesión y cierres de sesión, hay una degradación del rendimiento en la memoria porque se debe sobrescribir la asignación de memoria.
Solución alternativa
Si el cumplimiento de criterios comunes no es un requisito estricto, considere la posibilidad de deshabilitarlo para reducir la sobrecarga de auditoría y mejorar el rendimiento. Para deshabilitar la opción, ejecute los siguientes comandos:
SQL
sp_configure 'common criteria compliance enabled', 0
GO
RECONFIGURE
GO
Demuestre los aspectos básicos de la seguridad de los datos, la administración del ciclo de vida, la seguridad de la información y el cumplimiento para proteger una implementación de Microsoft 365.
Familiarícese con el modo de auditoría C2, una opción de configuración de SQL Server que puede ayudarle a generar perfiles de actividad del sistema y realizar el seguimiento de posibles infracciones de la directiva de seguridad.
Obtenga información sobre cómo habilitar el cumplimiento de criterios comunes. Vea cómo cumplir con el nivel 2 (EAL2) y 4+ (EAL4+) para el esquema de certificación de ciberseguridad de la UE en la aprobación de certificación de criterios comunes (EUCC). Una obligación de cumplimiento mundial en sectores y autoridades regulados.
Obtenga información sobre la opción "cost threshold for parallelism". Vea cómo su valor afecta a si SQL Server ejecuta planes paralelos para consultas y descubra cómo establecerla.