Condividi tramite


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 degli indirizzi del processo di SQL Server (Sqlservr.exe).
  • Alcuni driver di filtro vengono caricati in un sistema che esegue componenti di SQL Server.

Negli scenari è possibile che si verifichino problemi di riduzione delle prestazioni e coerenza di SQL Server motore di database.

  • Report di vari messaggi di errore e condizioni correlati a risposta (messaggio dell'utilità di pianificazione di SQL Server, ad esempio 17883, messaggi di timeout dell'applicazione, blocco grave all'interno di 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 terminazione imprevista del processo.
  • Utilizzo della CPU al 100% e tempi di ripristino lunghi del database quando si usano tabelle OLTP in memoria 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 i processi di SQL Server emettono chiamate API di 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 spesso richiede tempi di risoluzione dei problemi significativi e 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 EXEs)

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 specifico per la logica di business, una funzionalità avanzata o il monitoraggio delle intrusioni. Questi moduli possono eseguire attività non supportate che includono la deviazione di importanti API Win32 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 di SQL Server.

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

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 protezione antivirus, backup online, servizi di crittografia e strutture 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 di file system.

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

SQL Server genera in genere molte operazioni di I/O del file system (alcune delle quali sono superiori alla 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 su SQL Server.

Note

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 i 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. Quindi, provare tutti o uno dei metodi seguenti in modo appropriato. Per identificare il driver di filtro o il modulo, vedere l'elenco di alcuni possibili driver di filtro e moduli 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 di 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à del processo di SQL Server e del sistema.

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

L'elenco seguente consente di identificare i driver di filtro e i moduli che possono causare i 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 deviate all'interno del processo di SQL Server. Se si nota che questo modulo viene caricato nel processo di SQL Server, configurare McAfee VirusScan Enterprise per escludere Sqlservr.exe da vari monitoraggi avanzati, ad esempio la protezione dell'overflow del buffer.

  • HIPI.DLL, HcSQL.DLL, HcApi.DLL e 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 nel processo di SQL Server, configurare McAfee Host Intrusion Prevention per escludere Sqlservr.exe dall'elenco di monitoraggio.

  • SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLL e SOPHOS_DETOURED_x64.DLL

    Questi file DLL vengono caricati nel processo di SQL Server se si installa il programma Antivirus Sophos 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 il caricamento di questo modulo nel processo di SQL Server. Per altre informazioni, vedere AppInit_DLLs in Windows 7 e Windows Server 2008 R2 e DLL AppInit e Avvio protetto.

  • 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 dei processi correlati a SQL Server se si abilita l'impostazione Protezione dei dati in modalità utente aggiuntiva per i programmi Di protezione antivirus/endpoint CrowdStrike. Durante l'esecuzione di processi, è possibile che si verifichino errori durante i tentativi di creazione di nuovi processi. È possibile che si verifichino errori durante il tentativo di avviare SQL Server Management Studio. È anche possibile che SQL Server non venga avviato SQLDumper.exe per generare dump di memoria. Ti consigliamo di contattare il supporto 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 dell'editore software in Elenco di esclusione 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 è tra l'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 ad 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 è installato in un computer che esegue SQL Server ed è in esecuzione il backup in una condivisione di rete, potrebbero verificarsi errori che restituiscono l'errore del sistema operativo 1 : Funzione non corretta. Per risolvere questo 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 di SQL Server all'elenco dei processi a basso rischio nella configurazione antivirus.

Riferimenti

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.

Esclusione di responsabilità per informazioni e soluzioni di terze parti

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, in via esemplificativa, eventuali garanzie, doveri o condizioni di titolarità, di non violazione dei diritti altrui, di stato soddisfacente, di commerciabilità e di idoneità per uno scopo particolare in relazione a qualsiasi servizio, soluzione, prodotto o altro materiale o informazione. Microsoft non sarà in alcun caso responsabile per i danni prodotti dalle soluzioni di terze parti menzionate nel presente articolo.