Leistungs- und Konsistenzprobleme beim Laden bestimmter Module oder Filtertreiber
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 2033238, 2454053
Symptome
Betrachten Sie eines der folgenden Szenarien:
- Bestimmte Module werden in den SQL Server Prozessadressraum (Sqlservr.exe) geladen.
- Bestimmte Filtertreiber werden in ein System geladen, das SQL Server Komponenten ausgeführt wird.
In den Szenarien können Leistungseinbußen und Konsistenzprobleme bei SQL Server Datenbank-Engine auftreten.
- Berichte zu verschiedenen Fehlermeldungen und Bedingungen, die nicht reagieren (SQL Server Planernachricht wie 17883, Meldungen zu Anwendungstimeouts, schwerwiegende Blockierungen innerhalb SQL Server).
- Langsame Antwort von SQL Server auch wenn die gleichzeitige Last oder Aktivität nicht ungewöhnlich hoch ist.
- Ausnahmen (z. B. Zugriffsverletzungen), kritische Fehlermeldungen zur Datenbankkonsistenz, Assertionsmeldungen oder unerwartete Prozessbeendigung.
- 100 % CPU-Auslastung und lange Datenbankwiederherstellungszeiten, wenn Sie In-Memory OLTP-Tabellen in SQL Server verwenden.
- Hohe CPU-Auslastung für den SQL Server Prozess, insbesondere privilegierte Prozessorzeit.
- Unerwartete oder ungeklärte Fehler, wenn SQL Server Prozesse Windows-API-Aufrufe ausführen.
- Speicherabbilder, die für SQLDumper.exe ausgelöst wurden, können möglicherweise nicht abgeschlossen werden, hindern die Problembehandlungsaktivitäten.
Aufgrund der Natur dieser Probleme erfordert die Ermittlung der Grundursache häufig eine erhebliche Zeit bei der Problembehandlung und eine Ablaufverfolgung auf niedriger Ebene.
Ursachen
Diese Probleme treten aufgrund der folgenden Ursachen für Module und Filtertreiber auf.
Module (DLLs oder EXEs)
Diese Probleme treten auf, weil Anwendungen oder andere Software, die auf einem Server installiert sind, auf dem SQL Server ausgeführt wird, bestimmte Module in den SQL Server-Prozess (Sqlservr.exe) laden können. Dies kann geschehen, um eine bestimmte Geschäftslogikanforderung, eine erweiterte Funktionalität oder eine Angriffsüberwachung zu erreichen. Diese Module können nicht unterstützte Aktivitäten ausführen, die das Umleiten wichtiger Win32-APIs und SQL Server Routinen und das Aufrufen riskanter APIs umfassen. Darüber hinaus können einige intrinsische Probleme innerhalb dieser Module dazu führen, dass verschiedene Speicherstrukturen beschädigt werden, die erforderlich sind, damit der SQL Server Prozess ordnungsgemäß funktioniert.
Die Liste der in einem bestimmten Prozess geladenen Module (DLLs) kann über verschiedene Tools wie ListDlls oder Process Explorer abgerufen werden.
Filtertreiber
Filtertreiber können auf einem System als Teil des Setupprogramms einer Anwendung installiert werden, um eine bestimmte Art von Funktionalität bereitzustellen. Beispiele hierfür sind Antivirenschutz, Onlinesicherungen, Verschlüsselungsdienste sowie Funktionen zur Datenkomprimierung oder Defragmentierung. Diese Filtertreiber fügen sich selbst in den Windows-Datei-E/A-Stapel ein, um das Verhalten von Dateisystemanforderungen zu verbessern oder zu ändern.
Unter bestimmten Bedingungen kann die Ausführung dieser Anforderungen entweder lange dauern oder übermäßige Ressourcen verbrauchen. Außerdem kann es eine Form der Inkompatibilität zwischen den verschiedenen Filtertreibern geben, die im selben Treiberstapel vorhanden sind.
SQL Server gibt in der Regel viele Dateisystem-E/A-Vorgänge aus (von denen einige größer als der Durchschnitt sind). Daher hat das Problem mit Filtertreibern im Vergleich zu anderen ausgeführten Anwendungen mit geringerer E/A-Intensität schwerwiegendere Auswirkungen auf SQL Server.
Hinweis
Im Gegensatz zu eingefügten DLLs sind Filtertreiber (in der Regel mit .sys Erweiterung) in Benutzerprozessdetails nicht sichtbar, da es sich um Kernelentitäten handelt. Sie können Tools wie integrierte Windows- fltmc.exe verwenden, um installierte Minifilter zu ermitteln.
Problemumgehung
Warnung
Durch diese Problemumgehung wird ein Computer oder ein Netzwerk möglicherweise anfälliger für Angriffe durch böswillige Benutzer oder Malware wie etwa Viren. Wir empfehlen diese Problemumgehung nicht, stellen aber diese Informationen bereit, damit Sie diese Problemumgehung nach eigenem Ermessen implementieren können. Die Verwendung dieser Problemumgehung erfolgt auf eigene Verantwortung.
Um diese Probleme zu umgehen, identifizieren Sie den Filtertreiber oder das Modul, das die Probleme verursacht. Probieren Sie dann alle oder eine der folgenden Methoden entsprechend aus. Weitere Informationen finden Sie in der Liste der möglichen Filtertreiber und Module , um den Filtertreiber oder das Modul zu identifizieren.
- Wenden Sie sich an den Anbieter des Moduls, des Filtertreibers oder der Anwendung, um nach Updates zu suchen. Wenden Sie alle verfügbaren Updates an.
- Konfigurieren Sie den Filtertreiber oder die zugehörige Anwendung so, dass dies die SQL Server Workload oder Vorgänge nicht beeinträchtigt.
- Deaktivieren Sie das Laden des Filtertreibers in das System.
- Konfigurieren Sie die Anwendung so, dass das bestimmte Modul nicht in den SQL Server-Prozess geladen wird.
- In seltenen Fällen müssen Sie möglicherweise das Modul oder den Filtertreiber und die zugehörige Anwendung entfernen, um die Stabilität des SQL Server Prozesses und des Systems wiederherzustellen.
Liste der Filtertreiber und Module, die die Probleme verursachen können
Die folgende Liste hilft Ihnen, die Filtertreiber und Module zu identifizieren, die die Leistungsprobleme verursachen können. Sie können einen iterativen Satz von Diagnose- und Ablaufverfolgungsdaten für die Probleme sammeln.
ENTAPI.DLL
ENTAPI.DLL wird in den SQL Server Prozess geladen, wenn Sie McAfee VirusScan Enterprise auf einem Server installieren, auf dem Microsoft SQL Server ausgeführt wird. Anschließend konfigurieren Sie diese Software für die Überwachung SQL Server. Wenn dieses Modul geladen wird, werden auch wichtige Win 32-APIs innerhalb des SQL Server Prozesses umgeleitet. Wenn Sie feststellen, dass dieses Modul in SQL Server Prozess geladen wird, konfigurieren Sie McAfee VirusScan Enterprise so, dass Sqlservr.exe von verschiedenen erweiterten Überwachungen wie dem Pufferüberlaufschutz ausgeschlossen werden.
HIPI.DLL, HcSQL.DLL, HcApi.DLLund HcThe.DLL
Diese DLL-Dateien werden in den SQL Server Prozess geladen, wenn Sie mcAfee Host Intrusion Prevention Software auf demselben System wie SQL Server installieren. Wenn Sie feststellen, dass dieses Modul in SQL Server Prozess geladen wird, konfigurieren Sie McAfee Host Intrusion Prevention so, dass Sqlservr.exe aus der Überwachungsliste ausgeschlossen werden.
SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLLund SOPHOS_DETOURED_x64.DLL
Diese DLL-Dateien werden in den SQL Server Prozess geladen, wenn Sie das Sophos Antivirus-Programm auf einem Server installieren, auf dem SQL Server ausgeführt wird. Wenn Sie feststellen, dass dieses Modul in den SQL Server-Prozess geladen wird, können Sie den AppInit_Dlls Registrierungsunterschlüssel konfigurieren, um das Laden dieses Moduls in SQL Server Prozess zu vermeiden. Weitere Informationen finden Sie unter AppInit_DLLs in Windows 7 und Windows Server 2008 R2 und AppInit DLLs und sicherer Start.
PIOLEDB.DLL und PISDK.DLL
Diese DLL-Dateien werden in den SQL Server Prozess geladen, wenn Sie den PI OLEDB-Anbieter verwenden, um auf Daten von einem PI-Server zuzugreifen, oder wenn Sie erweiterte gespeicherte Prozeduren verwenden, die das PI SDK verwenden. Wenn Sie feststellen, dass diese Module in den SQL Server Prozess geladen werden, wenden Sie sich an den Anbieter dieser Module, um den OLEDB-Anbieter als Out-of-Process-Anbieter zu konfigurieren. Diese Konfiguration trägt dazu bei, dass diese Module nicht in den SQL Server-Prozess geladen werden müssen.
UMPPC*.DLL und SCRIPTCONTROL*.DLL
Diese DLL-Dateien werden in den Adressraum von SQL Server verwandten Prozessen geladen, wenn Sie die Einstellung Zur Verhinderung von Zusätzlichem Benutzermodusdaten für CrowdStrike Anti-Virus/Endpoint Protection-Programme aktivieren. Möglicherweise treten Fehler auf, während SQL Server-Agent versucht, beim Ausführen von Aufträgen neue Prozesse zu erstellen. Beim Versuch, SQL Server Management Studio zu starten, können Fehler auftreten. Möglicherweise sehen Sie auch, dass SQL Server SQLDumper.exe nicht gestartet werden kann, um Speicherabbilder zu generieren. Wir empfehlen Ihnen, sich mit Informationen im Zusammenhang mit Ihrem Problem an den Crowdstrike-Support zu wenden und zu fragen, ob eine Lösung verfügbar ist.
perfiCrcPerfMonMgr.DLL
Diese DLL-Datei wird in den SQL Server Prozess geladen, wenn Sie den Trend Micro OfficeScan-Client installieren. Weitere Informationen finden Sie in der Einstellung für die Ausschlussliste von Softwareherausgebern unter Empfohlene Scan-Ausschlussliste für Trend Micro Endpoint-Produkte.
MFEBOPK.SYS
Dieser Filtertreiber wird für das
Buffer Overflow Protection
Feature in McAfee VirusScan Enterprise verwendet. Wenn Sie dieses Feature aktiviert haben, werden Sie feststellen, dass sqlservr.exe in der Liste der vonBuffer Overflow Protection
geschützten Prozesse enthalten ist. Wenn Sie diesen Filtertreiber auf einem System verwenden, auf dem SQL Server ausgeführt wird, müssen Sie die im Abschnitt Problemumgehung angegebenen Aktionen ausführen. Weitere Informationen finden Sie unter Problem mit hoher Auswirkung: Server reagieren aufgrund mehrerer Probleme möglicherweise nicht mehr.NLEMSQL64.SYS und NLEMSQL.SYS
Dieser Filtertreiber wird von netLib Encryptionizer-Software installiert. Wenn dieser Filtertreiber auf einem Computer installiert ist, auf dem SQL Server ausgeführt wird, und Sie eine Sicherung auf einer Netzwerkfreigabe durchführen, treten möglicherweise Fehler auf, die den Betriebssystemfehler 1: Falsche Funktion zurückgeben. Wenden Sie sich an den Softwarehersteller, um Updates für den Filtertreiber zu erhalten, um dieses Problem zu beheben.
MFETDIK.SYS
Dieser Filtertreiber wird für das
McAfee Anti-Virus Mini-Firewall
Feature in den Produkten McAfee VirusScan Enterprise und McAfee McShield verwendet. Wenn Sie dieses Feature aktiviert haben, werden Sie feststellen, dass sqlservr.exe in der Liste der von derAnti-Virus
Funktion überwachten Prozesse enthalten ist. Wenn Sie diesen Filtertreiber auf einem System verwenden, auf dem SQL Server ausgeführt wird, müssen Sie die im Abschnitt Problemumgehung angegebenen Aktionen ausführen. Sie können auch erwägen, SQL Server Prozesse der Liste der Prozesse mit geringem Risiko in der Anti-Virus-Konfiguration hinzuzufügen.
Referenz
- Typen von WDM-Treibern
- Vorübergehendes Deaktivieren des Kernelmodus-Filtertreibers in Windows
- Umleitungen oder ähnliche Techniken können zu unerwartetem Verhalten bei SQL Server
- Ausführen eines DLL-basierten COM-Objekts außerhalb des SQL Server-Prozesses
Informationen zum Haftungsausschluss von Drittanbietern
Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.
Haftungsausschluss für Kontaktinformationen von Drittanbietern
Die Kontaktinformationen zu den in diesem Artikel erwähnten Drittanbietern sollen Ihnen helfen, zusätzliche Informationen zu diesem Thema zu finden. Diese Kontaktinformationen können ohne vorherige Ankündigung geändert werden. Sie werden von Microsoft ohne jede Gewähr weitergegeben.
Informationen zu Drittanbietern und Haftungsausschluss für Lösungen
Die in diesem Dokument enthaltenen Informationen und Lösungsvorschläge repräsentieren den Kenntnisstand der Microsoft Corporation in Bezug auf die beschriebenen Probleme zum Zeitpunkt der Veröffentlichung. Die beschriebene Lösung wird von Microsoft und Drittanbietern gleichermaßen angeboten. Microsoft spricht keine ausdrückliche Empfehlung für in diesem Artikel genannte Drittanbieter oder deren Lösungen aus. Möglicherweise gibt es weitere Drittanbieter, die ebenfalls Lösungen für das beschriebene Problem anbieten, in diesem Artikel aber nicht genannt werden. Da Microsoft gezwungen ist, auf sich verändernde Marktbedingungen zu reagieren, sind diese Informationen für Microsoft nicht bindend. Microsoft kann für die Genauigkeit oder Eignung von Informationen und Lösungen, die von Microsoft oder in diesem Artikel genannten Drittanbietern angeboten werden, nicht garantieren.
Microsoft gewährt keine ausdrücklichen, impliziten oder gesetzlichen Garantien und gibt keinerlei diesbezügliche Zusicherungen ab. Diese Bedingungen umfassen, sind aber nicht beschränkt auf, Zusicherungen, Garantien oder Bedingungen in Bezug auf Eigentumsrechte, Nichtverletzung von Rechten, zufriedenstellende Qualität, Marktgängigkeit und Eignung für einen bestimmten Zweck in Bezug auf Dienstleistungen, Lösungen, Produkte oder andere Materialien oder Informationen. Microsoft haftet in keinem Fall für Lösungen von Drittanbietern, die in diesem Artikel erwähnt werden.