FIX: 無法刪除在 SQL Server 2005 和 SQL Server 2008 中連結的伺服器上執行查詢的工作階段

文章翻譯 文章翻譯
文章編號: 961237 - 檢視此文章適用的產品。
Microsoft 等距均分 Microsoft SQL Server 2005 或 Microsoft SQL Server 2008 修正為一個可下載的檔案。因為修正程式是累積,每個新版本包含所有 Hotfix 及先前的 SQL Server 2005 或 Microsoft SQL Server 2008 隨附所有安全性修正程式都修正發行。
全部展開 | 全部摺疊

在此頁中

徵狀

徵狀 1

在 Microsoft SQL Server 2005 或 Microsoft SQL Server 2008 中,您連結的伺服器上執行查詢。當您嘗試殺死執行查詢的工作階段時,您無法刪除工作階段。此外,SQL Server 效能變得非常緩慢。

SQL Server 記錄資料夾中,會產生小型傾印檔案。 If you query the sys.dm_os_waiting_tasks dynamic management view, you receive a result that resembles the following:
session_id request_id  ecid        blocking_session_id blocking_ecid task_state      wait_type      wait_duration_ms     
---------- ----------- ----------- ------------------- ------------- --------------- ------------------------------- 
        14        NULL        NULL                NULL             0 NULL                             0 
        20           0           0                   0             0 SUSPENDED       WRITELOG         1360 
        53           0           0                  58             0 SUSPENDED       LCK_M_S          31982080 
        55           0           0                   0             0 RUNNING                          0 
        58           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        59           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        60           0           0                   0             0 RUNNING                          0 
        61           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        63           0           0                  14             0 SUSPENDED       LCK_M_X          76460 
        66           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        68           0           0                   0             0 SUSPENDED       LOGBUFFER        1330 
        70           0           0                   0             0 RUNNING                          0 
        77           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        84           0           0                   0             0 SUSPENDED       WRITELOG         1230 
        87           0           0                   0             0 SUSPENDED       WRITELOG         3970 
        88           0           0                   0             0 SUSPENDED       WRITELOG         1210 
Note You must restart the SQL Server service to resolve this issue.

徵狀 2

您也可能會遇到 SQLAgent 記憶體成長,以不尋常的大小。這是因為 SQLAgent 排程的作業執行至連結伺服器的預存程序。預存程序引發 OLEDB 錯誤。OLEDB 錯誤的文字以回到 SQLAgent,方式傳遞,而且記憶體已持續配置文字訊息,但從未解除配置。這會導致 SQLAgent 記憶體成長。indefinate 迴圈都會造成 SQLAgent 大量的記憶體配置。

呼叫堆疊資訊

 # Child-SP          RetAddr           Call Site
00 00000000`1e29c548 00000000`77adccec ntdll!memcpy+0x314 
01 00000000`1e29c550 00000000`77adbed4 ntdll!RtlpReAllocateHeap+0x741 
02 00000000`1e29c800 00000000`73e62504 ntdll!RtlReAllocateHeap+0xa4 
03 00000000`1e29c910 00000000`73de8356 sqlncli10!XxMpHeapReAlloc+0xca 
04 00000000`1e29c950 00000000`73de82de sqlncli10!MpHeapReAlloc+0x44 
05 00000000`1e29c9e0 00000000`73de826e sqlncli10!MpReallocZeroMemory+0x69 
06 00000000`1e29ca10 00000000`73dfb015 sqlncli10!SQLReAllocateMemoryEx+0x2a 
07 00000000`1e29ca50 00000000`73df8b7b sqlncli10!PlAddNewIEx+0x8e 
08 00000000`1e29caa0 00000000`73df869b sqlncli10!SortErrors+0x6b 
09 00000000`1e29cae0 000007fe`f6448d44 sqlncli10!SQLGetDiagFieldW+0x2bc 
0a 00000000`1e29d180 000007fe`f64471b9 odbc32!DriverGetDiagField+0x124 
0b 00000000`1e29d200 00000000`743a253e odbc32!SQLGetDiagFieldW+0x471 
0c 00000000`1e29d750 00000000`7439d0d3 sqlsvc!GetInfoMessage+0x4e 
0d 00000000`1e29d7b0 00000000`7439fee2 sqlsvc!dbQSQLMessageHandler+0x3a3 
0e 00000000`1e2a1b50 00000000`0021c416 sqlsvc!QSQLExecDirectAsync+0x1a2 
0f 00000000`1e2a1bb0 00000000`0021bac7 SQLAGENT!DoSQL+0x316 
10 00000000`1e2a21a0 00000000`002339a3 SQLAGENT!ExecuteTSQL+0xd97 
11 00000000`1e2a6cd0 00000000`00231f8a SQLAGENT!StartStep+0x693 
12 00000000`1e2a77d0 00000000`00230daf SQLAGENT!DoStep+0x3ba 
13 00000000`1e2ac7a0 00000000`756437d7 SQLAGENT!JobManager+0xa6f

發生的原因

當想殺死執行查詢的工作階段就會發生內部例外狀況。SQL Server 會開始重複執行一個無限迴圈。因此,您無法刪除工作階段,效能降低。

解決方案

SQL Server 2005 Service Pack 2 的累積更新資訊

這個問題的修正程式第一次已發行的 SQL Server 2005 Service Pack 2 的累積更新 12 中。如更多有關此累積更新套件,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
962970SQL Server 2005 Service Pack 2 的累積更新套件 12
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2005 隨附所有安全性修正程式都修正發行。Microsoft 建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
937137SQL Server 2005 會建置 SQL Server 2005 Service Pack 2 已發行之後所發行
Microsoft SQL Server 2005 的 Hotfix 會建立特定的 SQL Server Service Pack。您必須將 SQL Server 2005 Service Pack 2 Hotfix 套用至的 SQL Server 2005 Service Pack 2 安裝。預設狀況下,在 SQL Server Service Pack 中提供任何 Hotfix 包含在下一個 SQL Server Service Pack。

SQL Server 2005 Service Pack 3 的累積更新資訊

於此問題的修正程式第一次發行累計更新 3 的 SQL Server 2005 Service Pack 3。如需有關如何取得此累積更新套件的 SQL Server 2005 的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
967909SQL Server 2005 Service Pack 3 的累積更新套件 3
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2005 隨附所有安全性修正程式都修正發行。我們建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
960598SQL Server 2005 會建置發行 SQL Server 2005 Service Pack 3 之後所發行

發行版本的 SQL Server 2008 的累積更新資訊

這個問題的修正程式先於累計更新 4 發行。如需有關如何取得此累積更新套件的 SQL Server 2008 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
963036SQL Server 2008 的累積更新套件 4
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2008 隨附所有安全性修正程式都修正版本。我們建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
956909SQL Server 2008 建置發行 SQL Server 2008 之後所發行

SQL Server 2008 Service Pack 1 的累積更新資訊

於此問題的修正程式第一次發行累計更新 1 的 SQL Server 2008 Service Pack 1。如需有關如何取得此累積更新套件的 SQL Server 2008 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
969099SQL Server 2008 Service Pack 1 的累積更新套件 1
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2008 隨附所有安全性修正程式都修正版本。我們建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
970365SQL Server 2008 建置發行 SQL Server 2008 Service Pack 1 之後所發行

其他可行方案

如果要解決 徵狀 1SQLStatementSource 屬性的 「 執行 SQL 」 工作使用運算式來使用變數來指定 SELECT 陳述式。比方說設定下列的運算式 SQLStatementSource 屬性的 「 執行 SQL 」 工作。
SELECT filed1 AS a FROM table1 WHERE filed1="+ @[User::variable1]
徵狀 2 的 如果 SQLAgent 看到異常高記憶體成長 OLEDB 錯誤的根本原因應該也會調查並解決及成將累積更新套用至 SQL Server 處理序。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

SQL Server 2005 Service Pack 2 的累積更新套件 12 的相關資訊

如需有關哪些檔案會變更,及資訊有關任何先決條件套用累積更新套件,包含此 「 Microsoft 知識庫 」 文件中所述的 Hotfix,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
962970SQL Server 2005 Service Pack 2 的累積更新套件 12

對於 SQL Server 2005 Service Pack 3 累積更新套件 3 的相關資訊

如需有關哪些檔案會變更,及資訊有關任何先決條件套用累積更新套件,包含此 「 Microsoft 知識庫 」 文件中所述的 Hotfix,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
967909SQL Server 2005 Service Pack 3 的累積更新套件 3

發行版本的 SQL Server 2008 的累積更新套件 4 的相關資訊

如需有關哪些檔案會變更,及資訊有關任何先決條件套用累積更新套件,包含此 「 Microsoft 知識庫 」 文件中所述的 Hotfix,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
963036SQL Server 2008 的累積更新套件 4

對於 SQL Server 2008 Service Pack 1 累積更新套件 1 的相關資訊

如需有關哪些檔案會變更,及資訊有關任何先決條件套用累積更新套件,包含此 「 Microsoft 知識庫 」 文件中所述的 Hotfix,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
969099SQL Server 2008 Service Pack 1 的累積更新套件 1

呼叫堆疊資訊

0:053> kL30
Child-SP          Child-BSP         RetAddr           Call Site
00000000`46a3b320 00000000`46a41a78 00000000`77b99750 ntdll!RtlVirtualUnwind+0x100
00000000`46a3bc80 00000000`46a418f8 00000000`781a5900 ntdll!RtlUnwindEx+0x110
00000000`46a3c890 00000000`46a41870 00000000`781a2d40 msvcr80!_UnwindNestedFrames+0x2a0
00000000`46a3c970 00000000`46a41810 00000000`781a3950 msvcr80!CatchIt+0xe0
00000000`46a3c9d0 00000000`46a41730 00000000`781a41a0 msvcr80!FindHandler+0x710
00000000`46a3d480 00000000`46a416b8 00000000`781a4d90 msvcr80!__InternalCxxFrameHandler+0x4e0
00000000`46a3d480 00000000`46a41628 00000000`77c28860 msvcr80!__CxxFrameHandler3+0x370
00000000`46a3d4a0 00000000`46a41628 00000000`77b9a2d0 ntdll!RtlpExecuteEmHandlerForException+0x50
00000000`46a3d4c0 00000000`46a414a8 00000000`77b993a0 ntdll!RtlDispatchException+0x3f0
00000000`46a3e170 00000000`46a41450 00000000`77b99440 ntdll!RtlpRaiseException+0x120
00000000`46a3ec00 00000000`46a41438 00000000`76eb1d40 ntdll!RtlRaiseException+0x20
00000000`46a3ec00 00000000`46a413c8 00000000`781a5aa0 kernel32!GetDateFormatW+0x7a6d8
00000000`46a3eca0 00000000`46a41360 00000000`014f2d30 msvcr80!_CxxThrowException+0x160
00000000`46a3ecf0 00000000`46a412f0 00000000`014f3150 sqlservr!TurnUnwindAndThrowImpl+0x2f0
00000000`46a3ee50 00000000`46a411f0 00000000`014f37b0 sqlservr!ex_raise2+0x6b0
00000000`46a3f110 00000000`46a41190 00000000`038ee0e0 sqlservr!ex_raise+0xc0
00000000`46a3f150 00000000`46a41158 00000000`028bffa0 sqlservr!`anonymous namespace'::LogTdsProtocolError+0xd0
00000000`46a3f160 00000000`46a41138 00000000`0200eed0 sqlservr!`anonymous namespace'::RaiseErrorOnNestedStream+0x60
00000000`46a3f160 00000000`46a41088 00000000`01172180 sqlservr!CPostHydraTds::SendMsgImpl+0xe98100
00000000`46a3f1c0 00000000`46a41030 00000000`01172040 sqlservr!ODS_SENDFULLMSG+0x100
00000000`46a3f220 00000000`46a40fa0 00000000`011738b0 sqlservr!SendErrorToUser+0x1d0
00000000`46a3f290 00000000`46a40f20 00000000`01105a00 sqlservr!CErrorReportingManager::SendErrorToUser+0x260
00000000`46a3f320 00000000`46a40e10 00000000`0118a3d0 sqlservr!CErrorReportingManager::CwchFormatAndPrint+0x610
00000000`46a3f470 00000000`46a40dd8 00000000`0118a2f0 sqlservr!ex_vcallprint+0xb0
00000000`46a3f4b0 00000000`46a40d80 00000000`024cbfb0 sqlservr!ex_callprint+0xa0
00000000`46a3f4f0 00000000`46a40c90 00000000`02514e20 sqlservr!COledbError::FRelayErrorInfo+0x960
00000000`46a3f570 00000000`46a40c58 00000000`02f82030 sqlservr!COledbError::FPrintSQLServerError+0x190
00000000`46a3f5a0 00000000`46a40c10 00000000`0441b450 sqlservr!COledbError::GatherAndPrintMultipleResultsError+0x30
00000000`46a3f5b0 00000000`46a40b28 00000000`0164d160 sqlservr!CQScanRmtQueryNew::GetRow+0xad0
00000000`46a3f660 00000000`46a40a28 00000000`01768560 sqlservr!CQScanNLJoinTrivialNew::GetRow+0x1a90
00000000`46a3f690 00000000`46a40928 00000000`01333d30 sqlservr!CXStmtQuery::ErsqExecuteQuery+0xe50
00000000`46a3f760 00000000`46a407c8 00000000`0130ce40 sqlservr!CMsqlExecContext::ExecuteStmts<1,1>+0x19d0
00000000`46a3f870 00000000`46a406d0 00000000`0130ac70 sqlservr!CMsqlExecContext::FExecute+0x7c0
00000000`46a3f960 00000000`46a405f0 00000000`010fa300 sqlservr!CSQLSource::Execute+0x5f0
00000000`46a3fa10 00000000`46a404f8 00000000`010fa5c0 sqlservr!process_request+0x5c0
00000000`46a3fbe0 00000000`46a40478 00000000`0100e4b0 sqlservr!process_commands+0x6d0
00000000`46a3fdf0 00000000`46a40420 00000000`0100e210 sqlservr!SOS_Task::Param::Execute+0x1a0
00000000`46a3fe70 00000000`46a40378 00000000`0100dc30 sqlservr!SOS_Scheduler::RunTask+0x190
00000000`46a3fe90 00000000`46a402b0 00000000`01061ea0 sqlservr!SOS_Scheduler::ProcessTasks+0x170

?考

如更多有關清單的 SQL Server 2005 Service Pack 3 後可用的組建,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
960598SQL Server 2005 會建置發行 SQL Server 2005 Service Pack 3 之後所發行
如更多有關清單的組建,都可以使用 SQL Server 2008 Service Pack 1 發行後,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
970365SQL Server 2008 建置發行 SQL Server 2008 Service Pack 1 之後所發行
如更多有關清單的組建,都可以使用 SQL Server 2008 發行後,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
956909SQL Server 2008 建置發行 SQL Server 2008 之後所發行
如更多有關清單的組建,都可以使用 SQL Server Service Pack 2 之後,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
937137SQL Server 2005 會建置 SQL Server 2005 Service Pack 2 已發行之後所發行
如更多有關累加式的維修模型為 SQL Server,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
935897累加式的維修模型是可以從 SQL Server 小組來傳遞回報問題的 Hotfix
如需有關如何取得 SQL Server 2005 Service Pack 2 的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
913089如何取得最新的 Service Pack,SQL Server 2005 的
如需有關新功能與 SQL Server 2005 Service Pack 2 的改進的詳細資訊,請造訪下列 Microsoft 網站:
http://go.microsoft.com/fwlink/?LinkId=71711
如 SQL Server 更新命名的結構描述的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
822499Microsoft SQL Server 軟體更新套件的新命名結構描述
如需有關軟體更新術語的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明

屬性

文章編號: 961237 - 上次校閱: 2010年5月13日 - 版次: 6.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
關鍵字:?
kbmt kbsql2005engine kbsurveynew kbexpertiseadvanced kbqfe kbfix KB961237 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:961237
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com