Problemi di prestazioni e coerenza quando vengono caricati determinati moduli o driver di filtro

Versione originale del prodotto: SQL Server
Numero KB originale: 2033238, 2454053

Sintomi

Si consideri uno degli scenari seguenti:

  • Alcuni moduli vengono caricati nello spazio indirizzi del processo SQL Server (Sqlservr.exe).
  • Alcuni driver di filtro vengono caricati in un sistema che esegue SQL Server componenti.

Negli scenari potrebbero verificarsi problemi di riduzione delle prestazioni e coerenza di SQL Server motore di database.

  • Report di vari messaggi e condizioni di errore correlati non rispondenti (SQL Server messaggio dell'utilità di pianificazione, ad esempio 17883, messaggi di timeout dell'applicazione, blocco grave all'interno SQL Server).
  • Risposta lenta da SQL Server anche se la quantità simultanea di carico o attività non è insolitamente pesante.
  • Eccezioni (ad esempio violazioni di accesso), messaggi di errore critici relativi alla coerenza del database, ai messaggi di asserzione o alla chiusura imprevista del processo.
  • Utilizzo della CPU al 100% e tempi di ripristino lunghi del database quando si usano In-Memory tabelle OLTP in SQL Server.
  • Utilizzo elevato della CPU per il processo di SQL Server, in particolare il tempo del processore con privilegi.
  • Errori imprevisti o inspiegabili quando SQL Server processi esezionano chiamate API Windows.
  • I dump di memoria attivati per SQLDumper.exe potrebbero non riuscire a completare l'attività di risoluzione dei problemi.

A causa della natura di questi problemi, l'identificazione della causa radice richiede spesso tempi di risoluzione dei problemi significativi e una traccia di basso livello.

Cause

Questi problemi si verificano a causa delle cause seguenti per i moduli e i driver di filtro.

Moduli (DLL o EXE)

Questi problemi si verificano perché le applicazioni o altri software installati in un server che esegue SQL Server possono caricare determinati moduli nel processo di SQL Server (Sqlservr.exe). Questa operazione può essere eseguita per ottenere un requisito di logica di business specifico, una funzionalità avanzata o il monitoraggio delle intrusioni. Questi moduli potrebbero eseguire attività non supportate che includono la deviazione di API Win32 importanti e routine di SQL Server e la chiamata di API rischiose. Inoltre, alcuni problemi intrinseci all'interno di questi moduli possono causare il danneggiamento di varie strutture di memoria necessarie per il corretto funzionamento del processo SQL Server.

L'elenco di moduli (DLL) caricati in un determinato processo può essere ottenuto tramite vari strumenti, ad esempio ListDlls o Process Explorer.

Filtrare i driver

I driver di filtro possono essere installati in un sistema come parte del programma di installazione di un'applicazione per fornire un determinato tipo di funzionalità. Gli esempi includono la protezione antivirus, i backup online, i servizi di crittografia e le funzionalità di compressione o deframmentazione dei dati. Questi driver di filtro si inseriscono nello stack di I/O dei file di Windows per migliorare o modificare il comportamento delle richieste dei file system.

In alcune condizioni, il completamento di queste richieste potrebbe richiedere molto tempo o utilizzare risorse eccessive. Inoltre, potrebbe esserci una qualche forma di incompatibilità tra i diversi driver di filtro presenti nello stesso stack di driver.

SQL Server in genere genera molti I/O del file system (alcuni dei quali sono più grandi della media). Pertanto, rispetto ad altre applicazioni in esecuzione con minore intensità di I/O, il problema con i driver di filtro avrà un impatto più grave sulla SQL Server.

Nota

A differenza delle DLL inserite, i driver di filtro (in genere con estensione .sys) non sono visibili nei dettagli dei processi utente perché sono entità kernel. È possibile usare strumenti come fltmc.exe predefiniti di Windows per individuare i minifiltri installati.

Soluzione alternativa

Avviso

Questa soluzione alternativa potrebbe rendere il computer o la rete più vulnerabile ad attacchi di utenti malintenzionati o programmi software dannosi, ad esempio i virus. Questa soluzione alternativa non è consigliata, ma fornisce queste informazioni in modo che sia possibile implementare questa soluzione alternativa a propria discrezione. L'utilizzo di questa soluzione avviene pertanto a rischio esclusivo dell'utente.

Per risolvere questi problemi, identificare il driver di filtro o il modulo che causa i problemi. Provare quindi tutti o uno dei metodi seguenti in modo appropriato. Per identificare il driver di filtro o il modulo, controllare l'elenco di alcuni possibili driver e moduli di filtro per altre informazioni.

  • Contattare il fornitore del modulo, del driver di filtro o dell'applicazione per verificare la disponibilità di aggiornamenti. Applicare tutti gli aggiornamenti disponibili.
  • Configurare il driver di filtro o l'applicazione associata in modo che non interferisca con il carico di lavoro o le operazioni SQL Server.
  • Disabilitare il caricamento del driver di filtro nel sistema.
  • Configurare l'applicazione per non caricare il modulo specifico nel processo di SQL Server.
  • In alcune situazioni rare, potrebbe essere necessario rimuovere il modulo o il driver di filtro e l'applicazione associata per ripristinare la stabilità nel processo di SQL Server e nel sistema.

Elenco di driver di filtro e moduli che possono causare i problemi

L'elenco seguente consente di identificare i driver di filtro e i moduli che possono causare problemi di prestazioni. È possibile raccogliere un set iterativo di dati di diagnostica e traccia per i problemi.

  • ENTAPI.DLL

    ENTAPI.DLL viene caricato nel processo di SQL Server se si installa McAfee VirusScan Enterprise in un server che esegue Microsoft SQL Server e quindi si configura questo software per monitorare SQL Server. Quando questo modulo viene caricato, anche le API Win 32 importanti vengono deviazioni all'interno del processo di SQL Server. Se si nota che questo modulo viene caricato in SQL Server processo, configurare McAfee VirusScan Enterprise per escludere Sqlservr.exe da vari monitoraggi avanzati, ad esempio la protezione dall'overflow del buffer.

  • HIPI.DLL, HcSQL.DLL, HcApi.DLLe HcThe.DLL

    Questi file DLL vengono caricati nel processo di SQL Server se si installa il software McAfee Host Intrusion Prevention nello stesso sistema di SQL Server. Se si nota che questo modulo viene caricato in SQL Server processo, configurare McAfee Host Intrusion Prevention per escludere Sqlservr.exe dall'elenco di monitoraggio.

  • SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLLe SOPHOS_DETOURED_x64.DLL

    Questi file DLL vengono caricati nel processo di SQL Server se si installa il programma Sophos Antivirus in un server che esegue SQL Server. Se si nota che questo modulo viene caricato nel processo di SQL Server, è possibile configurare la sottochiave del Registro di sistema AppInit_Dlls per evitare di caricare questo modulo nel processo di SQL Server.

  • PIOLEDB.DLL e PISDK.DLL

    Questi file DLL vengono caricati nel processo di SQL Server se si usa il provider OLEDB PI per accedere ai dati da un server PI o se si usano stored procedure estese che usano PI SDK. Se si nota che questi moduli vengono caricati nel processo di SQL Server, contattare il fornitore di questi moduli per configurare il provider OLEDB come provider out-of-process. Questa configurazione consente di evitare la necessità di caricare questi moduli nel processo di SQL Server.

  • UMPPC*.DLL e SCRIPTCONTROL*.DLL

    Questi file DLL vengono caricati nello spazio indirizzi di SQL Server processi correlati se si abilita l'impostazione Di prevenzione dei dati in modalità utente aggiuntiva per i programmi di protezione anti-virus/endpoint CrowdStrike. Durante SQL Server Agent tentativi di creare nuovi processi durante l'esecuzione di processi, è possibile che si verifichino errori. È possibile che si verifichino errori durante il tentativo di avviare SQL Server Management Studio. Si potrebbe anche notare che SQL Server non riesce ad avviare SQLDumper.exe per generare dump di memoria. È consigliabile contattare il supporto tecnico di Crowdstrike con informazioni relative al problema e chiedere se è disponibile una correzione.

  • perfiCrcPerfMonMgr.DLL

    Questo file DLL viene caricato nel processo di SQL Server se si installa il client Trend Micro OfficeScan. Fare riferimento all'impostazione dell'elenco di esclusione del server di pubblicazione software nell'elenco di esclusione dell'analisi consigliata per i prodotti Trend Micro Endpoint.

  • MFEBOPK.SYS

    Questo driver di filtro viene usato per la Buffer Overflow Protection funzionalità in McAfee VirusScan Enterprise. Se questa funzionalità è abilitata, si noterà che sqlservr.exe fa parte dell'elenco dei processi protetti da Buffer Overflow Protection. Se si dispone di questo driver di filtro in un sistema che esegue SQL Server, è necessario eseguire le azioni specificate nella sezione Soluzione alternativa. Per altre informazioni, vedere Problema a impatto elevato: i server potrebbero non rispondere a causa di più problemi.

  • NLEMSQL64.SYS e NLEMSQL.SYS

    Questo driver di filtro viene installato da NetLib Encryptionizer-Software. Quando questo driver di filtro viene installato in un computer che esegue SQL Server e si esegue il backup in una condivisione di rete, è possibile che si verifichino errori che restituiscono l'errore del sistema operativo 1 : Funzione errata. Per risolvere il problema, contattare il fornitore del software per ottenere gli aggiornamenti al driver di filtro.

  • MFETDIK.SYS

    Questo driver di filtro viene usato per la McAfee Anti-Virus Mini-Firewall funzionalità nei prodotti McAfee VirusScan Enterprise e McAfee McShield. Se questa funzionalità è abilitata, si noterà che sqlservr.exe è tra l'elenco dei processi monitorati dalla Anti-Virus funzionalità. Se si dispone di questo driver di filtro in un sistema che esegue SQL Server, è necessario eseguire le azioni specificate nella sezione Soluzione alternativa. È anche possibile prendere in considerazione l'aggiunta di processi SQL Server all'elenco dei processi a basso rischio nella configurazione antivirus.

Riferimento

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Dichiarazione di non responsabilità di contatti di terze parti

Microsoft fornisce informazioni di contatto di terze parti per aiutarti a trovare ulteriori informazioni su questo argomento. Queste informazioni di contatto sono soggette a modifica senza preavviso. Microsoft non garantisce l'accuratezza delle informazioni di contatto di terze parti.

Informazioni di terze parti e dichiarazione di non responsabilità della soluzione

Le informazioni e le soluzioni contenute in questo documento rappresentano l'opinione attuale di Microsoft Corporation su questi temi alla data di pubblicazione. Questa soluzione è disponibile tramite Microsoft o un fornitore di terze parti. Microsoft non raccomanda specificamente alcun fornitore di terze parti o soluzione di terze parti descritti in questo articolo. Nell'articolo potrebbero non essere menzionate ulteriori terze parti o soluzioni di terze parti comunque disponibili. Poiché Microsoft deve rispondere alle mutevoli condizioni di mercato, queste informazioni non devono essere interpretate come un impegno da parte di Microsoft. Microsoft non può garantire o approvare la precisione di qualsiasi informazione o soluzione presentata da Microsoft o da qualsiasi fornitore di terze parti menzionato.

Microsoft non concede alcuna garanzia, dovere o condizione espressa, implicita o di legge, Queste condizioni includono, a titolo esemplificativo, rappresentazioni, garanzie o condizioni di titolo, non violazione, condizioni soddisfacenti, commerciabilità e idoneità per uno scopo specifico, in relazione a qualsiasi servizio, soluzione, prodotto o qualsiasi altro materiale o informazione. Microsoft non sarà in alcun caso responsabile per i danni prodotti dalle soluzioni di terze parti menzionate nel presente articolo.