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 ausführt.
In den Szenarien können Leistungsbeeinträchtigungen und Konsistenzprobleme von SQL Server-Datenbank-Engine auftreten.
- Berichte über verschiedene nicht reagierende Fehlermeldungen und Bedingungen (SQL Server-Planernachricht wie 17883, Anwendungstimeoutnachrichten, schwere Blockierung innerhalb von SQL Server).
- Langsame Antwort von SQL Server auch dann, wenn die gleichzeitige Auslastung oder Aktivität nicht ungewöhnlich stark ist.
- Ausnahmen (z. B. Zugriffsverletzungen), kritische Fehlermeldungen zu Datenbankkonsistenz, Assertionsmeldungen oder unerwartetem Beenden des Prozesses.
- 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 werden, können möglicherweise keine Problembehandlungsaktivitäten ausführen.
Aufgrund der Art dieser Probleme erfordert die Identifizierung der Ursache häufig eine erhebliche Problembehandlungszeit 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, da 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 erfolgen, um eine bestimmte Geschäftslogikanforderung, eine erweiterte Funktionalität oder Angriffsüberwachung zu erreichen. Diese Module können nicht unterstützte Aktivitäten ausführen, die wichtige Win32-APIs und SQL Server-Routinen und das Aufrufen riskanter APIs umfassen. Darüber hinaus können einige systeminterne Probleme innerhalb dieser Module zu Beschädigungen verschiedener Speicherstrukturen führen, die für die ordnungsgemäße Funktion des SQL Server-Prozesses erforderlich sind.
Die Liste der module (DLLs), die in einem bestimmten Prozess geladen wurden, können über verschiedene Tools wie ListDlls oder Prozess-Explorer abgerufen werden.
Filtertreiber
Filtertreiber können im Rahmen des Setupprogramms einer Anwendung auf einem System installiert werden, um eine bestimmte Art von Funktionalität bereitzustellen. Beispiele sind Antivirenschutz, Onlinesicherungen, Verschlüsselungsdienste und Datenkomprimierungs- oder Defragmentierungseinrichtungen. 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 können diese Anforderungen entweder eine lange Zeit dauern, um übermäßige Ressourcen abzuschließen oder zu verbrauchen. Außerdem kann es eine Form der Inkompatibilität zwischen den verschiedenen Filtertreibern geben, die im selben Treiberstapel vorhanden sind.
SQL Server emittiert in der Regel viele Dateisystem-E/A (einige davon sind größer als der Durchschnitt). Daher hat das Problem mit Filtertreibern im Vergleich zu anderen ausgeführten Anwendungen mit geringerer E/A-Intensität eine schwerwiegendere Auswirkung auf SQL Server.
Notiz
Im Gegensatz zu eingefügten DLLs sind Filtertreiber (in der Regel mit .sys Erweiterung) in Benutzerprozessdetails nicht sichtbar, da sie Kernelentitäten sind. 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. Um den Filtertreiber oder das Modul zu identifizieren, überprüfen Sie die Liste einiger möglicher Filtertreiber und -module , um weitere Informationen zu finden.
- 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 zugeordnete Anwendung so, dass sie die SQL Server-Workload oder -Vorgänge nicht beeinträchtigt.
- Deaktivieren Sie das Laden des Filtertreibers in das System.
- Konfigurieren Sie die Anwendung, um das spezifische Modul nicht in den SQL Server-Prozess zu laden.
- In einigen seltenen Situationen 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 probleme verursachen können
Die folgende Liste hilft Ihnen, die Filtertreiber und -module zu identifizieren, die zu Leistungsproblemen führen 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, und dann konfigurieren Sie diese Software, um SQL Server zu überwachen. Wenn dieses Modul geladen wird, werden wichtige Win 32-APIs auch innerhalb des SQL Server-Prozesses umgeleitet. Wenn Sie feststellen, dass dieses Modul in DEN SQL Server-Prozess geladen wird, konfigurieren Sie McAfee VirusScan Enterprise, um Sqlservr.exe aus verschiedenen erweiterten Überwachungen auszuschließen, z. B. Pufferüberlaufschutz.
HIPI.DLL, HcSQL.DLL, HcApi.DLL und 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 den SQL Server-Prozess geladen wird, konfigurieren Sie McAfee Host Intrusion Prevention, um Sqlservr.exe aus der Überwachungsliste auszuschließen.
SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLL und 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 den SQL Server-Prozess zu vermeiden. Weitere Informationen finden Sie unter AppInit_DLLs in Windows 7 und Windows Server 2008 R2 und AppInit DLLs und sicherem 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 für die Verhinderung zusätzlicher Benutzermodusdaten für CrowdStrike Anti-Virus/Endpoint Protection-Programme aktivieren. Beim Ausführen von Aufträgen können Fehler auftreten, während SQL Server-Agent versucht, neue Prozesse zu erstellen. Beim Versuch, SQL Server Management Studio zu starten, treten möglicherweise Fehler auf. Möglicherweise wird auch angezeigt, dass SQL Server SQLDumper.exe nicht starten kann, um Speicherabbilder zu generieren. Wir empfehlen Ihnen, den Crowdstrike-Support mit Informationen zu Ihrem Problem zu kontaktieren 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 Ausschlussliste für Softwareherausgeber unter der Empfohlenen 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 zu der Liste der prozesse gehört, die durch geschützt sindBuffer Overflow Protection
. Wenn Sie über diesen Filtertreiber auf einem System verfügen, das SQL Server ausführt, 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 der NetLib Encryptionizer-Software installiert. Wenn dieser Filtertreiber auf einem Computer installiert ist, auf dem SQL Server ausgeführt wird, und Sie eine Sicherung für eine Netzwerkfreigabe ausführen, treten möglicherweise Fehler auf, die den Betriebssystemfehler 1 : Falsche Funktion zurückgeben. Wenden Sie sich zum Beheben dieses Problems an den Softwareanbieter, um Updates für den Filtertreiber zu erhalten.
MFETDIK.SYS
Dieser Filtertreiber wird für die
McAfee Anti-Virus Mini-Firewall
Funktion in den Produkten McAfee VirusScan Enterprise und McAfee McShield verwendet. Wenn Sie dieses Feature aktiviert haben, werden Sie feststellen, dass sqlservr.exe zu der Liste der Prozesse gehört, dieAnti-Virus
vom Feature überwacht werden. Wenn Sie über diesen Filtertreiber auf einem System verfügen, das SQL Server ausführt, müssen Sie die im Abschnitt "Problemumgehung" angegebenen Aktionen ausführen. Sie können auch sql Server-Prozesse zur Liste mit geringem Risiko in der Konfiguration für Virenschutz hinzufügen.
Verweis
- Typen von WDM-Treibern
- So deaktivieren Sie den Kernelmodusfiltertreiber vorübergehend in Windows
- Umleitungen oder ähnliche Techniken können zu unerwartetem Verhalten mit SQL Server führen
- 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.