Dela via


Prestanda- och konsekvensproblem när vissa moduler eller filterdrivrutiner läses in

Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 2033238, 2454053

Symptom

Överväg något av följande scenarier:

  • Vissa moduler läses in i SQL Server-processadressutrymmet (Sqlservr.exe).
  • Vissa filterdrivrutiner läses in i ett system som kör SQL Server-komponenter.

I scenarierna kan det uppstå problem med prestandaförsämring och konsekvens i SQL Server Database Engine.

  • Rapporter om olika felmeddelanden och villkor som inte svarar (SQL Server Scheduler-meddelande, till exempel 17883, timeout-meddelanden för program, allvarlig blockering i SQL Server).
  • Långsamt svar från SQL Server även om den samtidiga belastningen eller aktiviteten inte är ovanligt tung.
  • Undantag (till exempel åtkomstöverträdelser), kritiska felmeddelanden om databaskonsekvens, försäkran eller oväntad processavslutning.
  • 100 % processoranvändning och långa återställningstider för databaser när du använder MINNESinterna OLTP-tabeller i SQL Server.
  • Hög CPU-användning för SQL Server-processen, särskilt privilegierad processortid.
  • Oväntade eller oförklarliga fel när SQL Server-processer gör Windows API-anrop.
  • Minnesdumpar som utlöses för SQLDumper.exe kan misslyckas med att slutföra felsökningsaktiviteten.

På grund av dessa problem kräver rotorsaksidentifiering ofta betydande felsökningstid och spårning på låg nivå.

Orsaker

Dessa problem uppstår på grund av följande orsaker till moduler och filterdrivrutiner.

Moduler (DLL:er eller EXE)

De här problemen beror på att program eller annan programvara som är installerade på en server som kör SQL Server kan läsa in vissa moduler i SQL Server-processen (Sqlservr.exe). Detta kan göras för att uppnå ett specifikt affärslogikkrav, en förbättrad funktionalitet eller intrångsövervakning. De här modulerna kan utföra aktiviteter som inte stöds, bland annat genom att omväga viktiga Win32-API:er och SQL Server-rutiner och anropa riskfyllda API:er. Dessutom kan vissa inbyggda problem i dessa moduler orsaka skador på olika minnesstrukturer som är nödvändiga för att SQL Server-processen ska fungera korrekt.

Listan över moduler (DLL:er) som lästs in i en viss process kan hämtas via olika verktyg, till exempel ListDlls eller Process Explorer.

Filtrera drivrutiner

Filterdrivrutiner kan installeras på ett system som en del av installationsprogrammet för ett program för att tillhandahålla en viss typ av funktioner. Exempel är antivirusskydd, onlinesäkerhetskopior, krypteringstjänster och funktioner för datakomprimering eller defragmentering. Dessa filterdrivrutiner infogar sig själva i Windows-fil-I/O-stacken för att förbättra eller ändra beteendet för filsystembegäranden.

Under vissa förhållanden kan dessa begäranden antingen ta lång tid att slutföra eller förbruka överdrivna resurser. Det kan också finnas någon form av inkompatibilitet mellan de olika filterdrivrutinerna som finns i samma drivrutinsstack.

SQL Server genererar vanligtvis mycket filsystems-I/Os (varav vissa är större än genomsnittet). Jämfört med andra program som körs med mindre I/O-intensitet kommer problemet med filterdrivrutiner därför att ha en allvarligare inverkan på SQL Server.

Kommentar

Till skillnad från inmatade DLL:er visas inte filterdrivrutiner (vanligtvis med .sys-tillägget) i användarprocessinformationen eftersom de är kernelentiteter. Du kan använda verktyg som inbyggda Windows-fltmc.exe för att identifiera installerade minifilter.

Lösning

Varning

Den här åtgärden kan göra datorn eller nätverket mer sårbara för angripare eller skadliga program som virus. Vi rekommenderar inte den här lösningen men tillhandahåller den här informationen så att du kan implementera den här lösningen efter eget gottfinnande. Använd den här lösningen på egen risk.

Om du vill kringgå dessa problem kan du identifiera filterdrivrutinen eller modulen som orsakar problemen. Prova sedan alla eller någon av följande metoder på rätt sätt. Mer information finns i listan över möjliga filterdrivrutiner och moduler för att identifiera filterdrivrutinen eller modulen.

  • Kontakta leverantören av modulen, filterdrivrutinen eller programmet för att söka efter uppdateringar. Tillämpa alla tillgängliga uppdateringar.
  • Konfigurera filterdrivrutinen eller det associerade programmet på ett sådant sätt att det inte stör SQL Server-arbetsbelastningen eller åtgärderna.
  • Inaktivera filterdrivrutinen från att läsas in i systemet.
  • Konfigurera programmet att inte läsa in den specifika modulen i SQL Server-processen.
  • I vissa sällsynta situationer kan du behöva ta bort modulen eller filterdrivrutinen och dess associerade program för att återställa stabiliteten i SQL Server-processen och systemet.

Lista över filterdrivrutiner och moduler som kan orsaka problemen

Följande lista hjälper dig att identifiera de filterdrivrutiner och moduler som kan orsaka prestandaproblem. Du kan samla in en iterativ uppsättning diagnostik- och spårningsdata för problemen.

  • ENTAPI.DLL

    ENTAPI.DLL läses in i SQL Server-processen om du installerar McAfee VirusScan Enterprise på en server som kör Microsoft SQL Server och sedan konfigurerar den här programvaran för att övervaka SQL Server. När den här modulen läses in avvägs även viktiga Win 32-API:er i SQL Server-processen. Om du märker att den här modulen läses in i SQL Server-processen konfigurerar du McAfee VirusScan Enterprise för att undanta Sqlservr.exe från olika avancerade övervakningar, till exempel skydd mot buffertspill.

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

    Dessa DLL-filer läses in i SQL Server-processen om du installerar Programvaran McAfee Host Intrusion Prevention i samma system som SQL Server. Om du märker att den här modulen läses in i SQL Server-processen konfigurerar du McAfee Host Intrusion Prevention för att undanta Sqlservr.exe från övervakningslistan.

  • SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLL och SOPHOS_DETOURED_x64.DLL

    Dessa DLL-filer läses in i SQL Server-processen om du installerar Sophos Antivirus-programmet på en server som kör SQL Server. Om du märker att den här modulen läses in i SQL Server-processen kan du konfigurera AppInit_Dlls registerundernyckel för att undvika att läsa in den här modulen i SQL Server-processen. Mer information finns i AppInit_DLLs i Windows 7 och Windows Server 2008 R2 och AppInit DLL:er och säker start.

  • PIOLEDB.DLL och PISDK.DLL

    Dessa DLL-filer läses in i SQL Server-processen om du använder PI OLEDB-providern för att komma åt data från en PI-server eller om du använder utökade lagrade procedurer som använder PI SDK. Om du märker att dessa moduler läses in i SQL Server-processen kontaktar du leverantören av dessa moduler för att konfigurera OLEDB-providern som en out-of-process-provider. Den här konfigurationen hjälper till att undvika behovet av att läsa in dessa moduler i SQL Server-processen.

  • UMPPC*.DLL och SCRIPTCONTROL*.DLL

    Dessa DLL-filer läses in i adressutrymmet för SQL Server-relaterade processer om du aktiverar inställningen Ytterligare dataskydd för användarläge för CrowdStrike Anti-Virus/Endpoint Protection-program. Du kan märka fel när SQL Server Agent försöker skapa nya processer när jobb körs. Du kan stöta på fel när du försöker starta SQL Server Management Studio. Du kan också se att SQL Server inte kan starta SQLDumper.exe för att generera minnesdumpar. Vi rekommenderar att du kontaktar Crowdstrike-supporten med information om ditt problem och frågar om en korrigering är tillgänglig.

  • perfiCrcPerfMonMgr.DLL

    Den här DLL-filen läses in i SQL Server-processen om du installerar Trend Micro OfficeScan-klienten. Se inställningen för undantagslista för programvaruutgivare i listan Över rekommenderade genomsökningsundantag för Trend Micro Endpoint-produkter.

  • MFEBOPK.SYS

    Den här filterdrivrutinen används för Buffer Overflow Protection funktionen i McAfee VirusScan Enterprise. Om du har den här funktionen aktiverad ser du att sqlservr.exe finns med i listan över processer som skyddas av Buffer Overflow Protection. Om du har den här filterdrivrutinen i ett system som kör SQL Server måste du utföra de åtgärder som anges i avsnittet Lösning . Mer information finns i Problem med hög påverkan: Servrar kan sluta svara på grund av flera problem.

  • NLEMSQL64.SYS och NLEMSQL.SYS

    Den här filterdrivrutinen installeras av NetLib Encryptionizer-Software. När den här filterdrivrutinen är installerad på en dator som kör SQL Server och du utför säkerhetskopiering till en nätverksresurs kan det uppstå fel som returnerar operativsystemfel 1: Felaktig funktion. Lös problemet genom att kontakta programvaruleverantören för att hämta uppdateringar av filterdrivrutinen.

  • MFETDIK.SYS

    Den här filterdrivrutinen används för McAfee Anti-Virus Mini-Firewall funktionen i produkterna McAfee VirusScan Enterprise och McAfee McShield. Om du har den här funktionen aktiverad ser du att sqlservr.exe finns med i listan över processer som övervakas av Anti-Virus funktionen. Om du har den här filterdrivrutinen i ett system som kör SQL Server måste du utföra de åtgärder som anges i avsnittet Lösning . Du kan också överväga att lägga till SQL Server-processer i listan över lågriskprocesser i antiviruskonfigurationen.

Referens

Ansvarsfriskrivning för information från tredje part

De produkter från andra tillverkare som diskuteras i denna artikel tillverkas oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.

Ansvarsfriskrivning för tredje part

Microsoft tillhandahåller kontaktinformation från tredje part som hjälper dig att hitta ytterligare information om det här ämnet. Denna kontaktinformation kan ändras utan föregående meddelande. Microsoft garanterar inte att kontaktinformation från tredje part är korrekt.

Ansvarsfriskrivning för information och lösning från tredje part

Informationen och lösningen i detta dokument representerar Microsoft Corporations aktuella syn på dessa frågor vid publiceringsdatumet. Den här lösningen är tillgänglig via Microsoft eller via en tredjepartsleverantör. Microsoft rekommenderar inte specifikt någon tredjepartsleverantör eller tredjepartslösning som den här artikeln kan beskriva. Det kan också finnas andra tredjepartsleverantörer eller lösningar från tredje part som inte beskrivs i den här artikeln. Eftersom Microsoft måste svara på föränderliga marknadsvillkor bör den här informationen inte tolkas som ett åtagande från Microsoft. Microsoft kan inte garantera eller godkänna riktigheten av någon information eller någon lösning som presenteras av Microsoft eller av någon angiven tredjepartsleverantör.

Microsoft lämnar inga garantier och exkluderar alla utfästelser, garantier och villkor oavsett om de är uttryckliga, underförstådda eller lagstadgade. Dessa villkor omfattar, men är inte begränsade till, representationer, garantier eller villkor för äganderätt, icke-överträdelse, tillfredsställande villkor, säljbarhet och lämplighet för ett visst ändamål, med avseende på tjänster, lösningar, produkter eller annat material eller annan information. Microsoft ansvarar under inga omständigheter för någon lösning från tredje part som nämns i den här artikeln.