共用方式為


載入某些模組或篩選驅動程式時的效能和一致性問題

原始產品版本: SQL S
原始 KB 編號: 2033238、2454053

徵狀

請考慮下列其中一個案例:

  • 某些模組會載入 SQL Server 行程位址空間 (Sqlservr.exe) 。
  • 某些篩選驅動程式會載入執行 SQL Server元件的系統。

在案例中,您可能會遇到資料庫引擎 SQL Server 效能降低和一致性問題。

  • (SQL Server 排程器訊息的各種無回應相關錯誤訊息和條件報告,例如 17883、應用程式逾時訊息、SQL Server) 內的嚴重封鎖。
  • 來自 SQL Server的回應速度緩慢,即使同時的負載或活動量不是異常的繁重。
  • (例外狀況,例如存取違規) 、資料庫一致性的重要錯誤訊息、判斷提示訊息或非預期的進程終止。
  • 當您在 SQL Server 中使用 In-Memory OLTP 數據表時,100% 的 CPU 使用率和較長的資料庫復原時間。
  • SQL Server 程式的高CPU使用量,尤其是特殊許可權的處理器時間。
  • 當 SQL Server 進程進行 Windows API 呼叫時,發生非預期或無法解釋的失敗。
  • 針對 SQLDumper.exe 觸發的記憶體轉儲可能無法完成阻礙任何疑難解答活動。

由於這些問題的本質,根本原因識別通常需要大量的疑難解答時間和低層級追蹤。

原因

之所以發生這些問題,是因為模組和篩選驅動程序發生下列原因。

DLL 或 EXE (模組)

之所以發生這些問題,是因為安裝在執行 SQL Server 之伺服器上的應用程式或其他軟體,可以將特定模組載入 SQL Server 程式 (Sqlservr.exe) 。 這樣做是為了達到特定的商業規則需求、增強的功能或入侵監視。 這些模組可能會執行不支持的活動,包括繞道重要的 Win32 API 和 SQL Server 例程,以及呼叫具風險的 API。 此外,這些模組內的一些內部問題可能會導致各種記憶體結構損毀,而 SQL Server 程式正常運作所需的記憶體結構。

在指定進程中載入 (DLL) 模組清單,可以透過各種工具取得,例如 ListDll 或進程總管

篩選驅動程式

篩選驅動 程式可以安裝在系統上,作為應用程式安裝程式的一部分,以提供特定類型的功能。 範例包括防病毒軟體保護、在線備份、加密服務,以及數據壓縮或重組設備。 這些篩選驅動程式會將自己插入 Windows 檔案 I/O 堆疊,以增強或改變文件系統要求的行為。

在某些情況下,這些要求可能需要很長的時間才能完成,或耗用過多的資源。 此外,在相同驅動程式堆疊中存在的不同篩選驅動程序之間可能有某種形式的不相容。

SQL Server 通常會發出許多文件系統 I/O (其中有些大於平均) 。 因此,相較於其他 I/O 強度較低的執行中應用程式,篩選驅動程式的問題會對 SQL Server 造成更嚴重的影響。

注意事項

不同於插入的 DLL,篩選驅動程式 (通常具有 .sys 延伸模組) 不會顯示在使用者程式詳細數據中,因為它們是核心實體。 您可以使用 Windows 內建 fltmc.exe 等工具來探索已安裝的迷你篩選器。

因應措施

警告

這個因應措施可能會使電腦或網路更容易遭受惡意使用者或惡意軟體 (例如病毒) 的攻擊。 我們不建議使用此因應措施,但會提供這項資訊,讓您可以自行決定實作此因應措施。 採用此因應措施需自行承擔風險。

若要解決這些問題,請找出造成問題的篩選驅動程式或模組。 然後,請適當地嘗試下列所有或其中一種方法。 若要協助您識別篩選驅動程式或模組,請查看 一些可能的篩選驅動程式和模組清單 ,以取得詳細資訊。

  • 請連絡模組、篩選驅動程式或應用程式的廠商,以檢查是否有更新。 套用任何可用的更新。
  • 以不會干擾 SQL Server 工作負載或作業的方式,設定篩選驅動程式或相關聯的應用程式。
  • 停用篩選驅動程式以不載入系統。
  • 設定應用程式不要將特定模組載入 SQL Server 程式。
  • 在某些罕見的情況下,您可能必須移除模組或篩選驅動程式及其相關聯的應用程式,才能將穩定性還原至 SQL Server 程式和系統。

可能會造成問題的篩選驅動程式和模組清單

下列清單可協助您識別可能導致效能問題的篩選驅動程式和模組。 您可以收集一組反覆的診斷和追蹤數據來解決問題。

  • ENTAPI.DLL

    如果您在執行 Microsoft SQL Server 的伺服器上安裝 McAfee VirusScan Enterprise,然後將此軟體設定為監視 SQL Server,ENTAPI.DLL就會載入 SQL Server 程式。 載入此模組時,重要的 Win 32 API 也會繞道 SQL Server 程式內。 如果您注意到此模組已載入 SQL Server 程式中,請設定McAfee VirusScan Enterprise,以從各種進階監視中排除 Sqlservr.exe,例如緩衝區溢位保護。

  • HIPI.DLLHcSQL.DLLHcApi.DLLHcThe.DLL

    如果您在與 SQL Server 相同的系統上安裝McAfee主機入侵防護軟體,這些 DLL 檔案就會載入 SQL Server 程式中。 如果您注意到此模組已載入 SQL Server 程式,請設定 McAfee 主機入侵防護,以從其監視清單中排除 Sqlservr.exe。

  • SOPHOS_DETOURED.DLLSWI_IFSLSP_64.DLLSOPHOS_DETOURED_x64.DLL

    如果您在執行 SQL Server 的伺服器上安裝 Sophos 防病毒程式,這些 DLL 檔案會載入 SQL Server 程式中。 如果您注意到此模組已載入 SQL Server 程式中,您可以設定AppInit_Dlls登錄子機碼,以避免將此模組載入 SQL Server 程式。 如需詳細資訊, 請參閱 Windows 7 和 Windows Server 2008 R2 中的AppInit_DLLsAppInit DLL 和安全開機

  • PIOLEDB.DLLPISDK.DLL

    如果您使用 PI OLEDB 提供者從 PI 伺服器存取數據,或如果您使用使用 PI SDK 的擴充預存程式,這些 DLL 檔案就會載入 SQL Server 程式中。 如果您注意到這些模組已載入 SQL Server 程式,請連絡這些模組的廠商,將OLEDB提供者設定為跨進程提供者。 此設定有助於避免將這些模組載入 SQL Server 程式。

  • UMPPC*.DLLSCRIPTCONTROL*.DLL

    如果您啟用[人流防病毒/端點防護] 程式的 [其他使用者模式數據防護] 設定,這些 DLL 檔案就會載入 SQL Server 相關程式的地址空間。 當 SQL Server Agent 嘗試在執行作業時建立新進程時,您可能會注意到失敗。 您在嘗試啟動 SQL Server Management Studio 時可能會遇到失敗。 您也可能會看到 SQL Server 無法啟動 SQLDumper.exe 來產生記憶體轉儲。 我們建議您連絡與您問題相關信息的供人,並詢問是否有可用的修正程式。

  • perfiCrcPerfMonMgr.DLL

    如果您安裝 Trend Micro OfficeScan 用戶端,此 DLL 檔案會載入 SQL Server 程式中。 請參閱 Trend Micro Endpoint 產品的建議掃描排除清單中的軟體發行者排除清單設定。

  • MFEBOPK.SYS

    此篩選驅動程式用於 Buffer Overflow Protection McAfee VirusScan Enterprise中的功能。 如果您已啟用此功能,您會注意到 sqlservr.exe 是受 Buffer Overflow Protection保護的進程清單之一。 如果您在執行 SQL Server 的系統上有此篩選驅動程式,則必須執行 [因應措施] 區段中指定的動作。 如需詳細資訊,請 參閱高影響問題:伺服器可能會因為多個問題而變得沒有回應

  • NLEMSQL64.SYSNLEMSQL.SYS

    此篩選驅動程式是由 NetLib Encryptionizer-Software 安裝。 當此篩選驅動程式安裝在執行 SQL Server 的電腦上,而且您執行網路共用的備份時,您可能會遇到傳回操作系統錯誤 1 :不正確的函式失敗。 若要解決此問題,請連絡軟體廠商以取得篩選驅動程式的更新。

  • MFETDIK.SYS

    此篩選驅動程式用於 McAfee Anti-Virus Mini-Firewall McAfee VirusScan Enterprise和McAfee McShield產品中的功能。 如果您已啟用此功能,您會注意到 sqlservr.exe 是該功能所 Anti-Virus 監視的進程清單。 如果您在執行 SQL Server 的系統上有此篩選驅動程式,則必須執行 [因應措施] 區段中指定的動作。 您也可以考慮將 SQL Server 程式新增至防病毒軟體組態中的低風險程序清單。

參考

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

協力廠商連絡資訊免責聲明

Microsoft 提供第三方連絡資訊,協助您尋找有關本主題的其他資訊。 此連絡資訊如有變更,恕不另行通知。 Microsoft 不保證第三方聯繫人信息的正確性。

第三方資訊與解決方案免責聲明

本文件中的資訊和解決方案代表 Microsoft Corporation 在本文件發行當時對這些問題的看法。 此解決方案可透過 Microsoft 或協力廠商提供商獲得。 Microsoft 不特別建議本文可能提及的任何協力廠商提供者或協力廠商解決方案。 本文也可能未提及其他協力廠商提供者或協力廠商解決方案。 由於 Microsoft 必須不斷因應市場動態,因此,本文所提供的資訊不應解釋為 Microsoft 的承諾。 對於由 Microsoft 或任何提及的協力廠商提供者所提供之任何資訊或任何解決方案的正確性,Microsoft 不提供擔保或背書。

Microsoft 不擔保並排除任何明示、默示或法定之說明、擔保及條件。 這些條件包括 (但不限於) 有關任何服務、解決方案、產品或任何其他資料或資訊之所有權、未侵權、品質保證、適售性及特定目的適用性之說明、擔保及條件。 無論任何情況下,Microsoft 對本文提及的任何協力廠商解決方案皆不負任何法律責任。