使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

錯誤 #: 的187868 (內容維護)VSTS: 1340145

Microsoft 會分配一個可下載的檔案中的 Microsoft SQL Server 2012年修正程式。因為的修正程式是累積的每個新版本包含的所有 hotfix,並且所有先前的 SQL Server 2012年隨附在安全性更新更新版本。

狀況

請考慮下列情況:

  • 您建立使用資料表值參數 (TVP),在 Microsoft SQL Server 2012年預存程序。

  • 您可以使用 SQL 程式碼剖析工具或 SQL Server 延伸事件來擷取RPC︰ 開始和RPC︰ 完成事件。

  • 您執行查詢,它會使用 TVP。

  • 查詢逾時。

在這個案例中,非傳送排程器發生錯誤,,而且在相同的排程器執行的查詢執行速度變慢。此外,會產生迷你的傾印檔案,在 SQL Server 的 [記錄] 資料夾中。
當發生這個問題時,您會收到類似下列的錯誤訊息︰

System.Data.SqlClient.SqlException (0x80131904): 已逾時。作業完成之前的逾時期限已過,或伺服器沒有回應。
在 System.Data.SqlClient.SqlInternalConnection.OnError (SqlException 例外狀況,則為 True 的 breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在 System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj,UInt32 錯誤)
在 System.Data.SqlClient.TdsParserStateObject.ReadSni (DbAsyncResult asyncResult、 TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
在 System.Data.SqlClient.TdsParserStateObject.ReadByte()
在 System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior、 sql 命令 cmdHandler、 SqlDataReader 資料串流、 BulkCopySimpleResultSet bulkCopyHandler、 TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds、 RunBehavior runBehavior、 字串 resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds CommandBehavior cmdBehavior、 RunBehavior runBehavior、 returnStream 布林 (布林非同步)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior、 RunBehavior runBehavior、 returnStream,則為 True,字串方法,DbAsyncResult 的結果)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncResult 結果、 methodName 字串、 布林 sendToPipe)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
在 TVPApp.Program.Main (字串 [] 引數)


非傳送排程器錯誤,以及類似下列的錯誤訊息會記錄在 SQL Server 錯誤記錄檔中︰

< 日期 >< 時間 > 伺服器使用 'dbghelp.dll' 版本 '4.0.5'
< 日期 >< 時間 > 伺服器 * * * 無法取得 spid 的執行緒內容 #
<Date><Time> Server * *******************************************************************************
< 日期 >< 時間 > 伺服器 *
< 日期 >< 時間 > 伺服器 * 開始堆疊傾印︰
< 日期 >< 時間 > 伺服器 * < 日期 >< 時間 > spid #
< 日期 >< 時間 > 伺服器 *
< 日期 >< 時間 > 伺服器 * 非傳送排程器
< 日期 >< 時間 > 伺服器 *
<Date><Time> Server * *******************************************************************************
傾印的 < 日期 >< 時間 > 伺服器堆疊簽章是 0x000000000000002C
< 日期 >< 時間 > 伺服器外部的傾印處理程序傳回程式碼 0x20000001。
外部的傾印程序會傳回任何錯誤。
< 日期 >< 時間 > 伺服器處理序 0:0:0 (0x1670) 工作者 0x0000000004EDE160 似乎非傳送對排程器的 5。執行緒建立時間︰ 13014210386757。預估執行緒 CPU 用於︰ 核心 0 毫秒,使用者 70106 小姐處理程序使用率 16%。系統閒置 77%。間隔︰ 70140 ms。
< 日期 >< 時間 > 伺服器處理序 0:0:0 (0x1670) 工作者 0x0000000004EDE160 似乎非傳送對排程器的 5。執行緒的建立時間︰

原因

之所以發生這個問題,是因為 SQL Server 2012年資料庫引擎中的錯誤。文字中的資料行的 TVP 來實作插入字串或緩衝區,並在資料列數目增加增加緩衝區數目。不過,釋出緩衝區的處理程序是相當耗時。因此,非傳送排程器產生錯誤時釋放和壓縮作業會發生。

注意下列 「 Microsoft 知識庫 」 文件已處理類似的問題。然而,本文所述的累積更新套件不查詢逾時問題。

2520808修正︰ 當您執行查詢時,出現非傳送排程器錯誤使用 SQL Server 2008年中,或在 SQL Server 2008 R2 TVP,如果使用 SQL 程式碼剖析工具或 SQL Server 延伸事件

解決方案

累積更新資訊

SQL Server 2012 Service Pack 1 (SP1) 的累積更新套件 5

這個問題的修正程式首次發表累積的更新 5] 中。如需有關如何為 SQL Server 2012年取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

2861107累計的 SQL Server 2012年更新封裝 5注意因為組建是累計的每個新的修正程式版本會包含所有的快速補充程式,並隨附於先前的 SQL Server 2012年所有安全性修正程式會都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

SQL Server 2012年建置 SQL Server 2012 Service Pack 1 發行之後所發行的2772858

因應措施

若要解決這個問題,請使用下列方法之一︰

  • 請勿使用 SQL 程式碼剖析工具或 SQL Server 延伸的事件。

  • 按一下以清除RPC︰ 開始和RPC︰ 完成追蹤定義中的核取方塊。

更多的資訊

此修正程式不適用於 SQL Server 2008年或 SQL Server 2008 R2,此 KB 發行時。如果任何使用者遇到同樣的問題,在 SQL Server 2008年或 SQL Server 2008 R2,即使使用者套用下列的文件所述的封裝,驗證是否有設定查詢逾時值,並判斷是否可以解決這項逾時。否則,將要求提交到 SQL Server 2008年或 SQL Server 2008 R2 套用此修正程式。

2520808修正︰ 當您執行查詢時,出現非傳送排程器錯誤使用 SQL Server 2008年中,或在 SQL Server 2008 R2 TVP,如果使用 SQL 程式碼剖析工具或 SQL Server 延伸事件

呼叫堆疊資訊

sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FLookup+0x29sqlmin!CCheckReadersAndWriters::Release+0x69
sqlmin!CMainIlb::{dtor}+0x3d
sqlmin!CMainIlb::`scalar deleting destructor'+0x3d
sqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13
sqlmin!CMainIlb::Release+0xf0
sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80
sqllang!CTraceTvpData::{dtor}+0x14
sqllang!CTraceTvpData::`scalar deleting destructor'+0x1e
sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x33
sqllang!CRpcTraceHelper::~CRpcTraceHelper+0x70
sqllang!CRPCExecEnv::~CRPCExecEnv+0x2ab
sqllang!CRPCExecEnv::`scalar deleting destructor'+0x14
sqllang!process_request+0x10b1
sqllang!process_commands+0x51c
sqldk!SOS_Task::Param::Execute+0x21e
sqldk!SOS_Scheduler::RunTask+0xa8
sqldk!SOS_Scheduler::ProcessTasks+0x299
sqldk!SchedulerManager::WorkerEntryPoint+0x261
sqldk!SystemThread::RunWorker+0x8f
sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
sqldk!SchedulerManager::ThreadEntryPoint+0x236
kernel32!BaseThreadInitThunk+0xd
ntdll!RtlUserThreadStart+0x1d
sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FDelete+0x34sqlmin!CCheckReadersAndWriters::Release+0xfb
sqlmin!CMainIlb::{dtor}+0x3d
sqlmin!CMainIlb::`scalar deleting destructor'+0x3d
sqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13
sqlmin!CMainIlb::Release+0xf0
sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80
sqllang!CTraceTvpData::{dtor}+0x11
sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x55
sqllang!CRpcTraceHelper::TracePostExec+0x1bf
sqllang!CRPCExecEnv::OnExecFinish+0xaa
sqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb158e2
sqllang!process_request+0x764
sqllang!process_commands+0x51c
sqldk!SOS_Task::Param::Execute+0x21e
sqldk!SOS_Scheduler::RunTask+0xa8
sqldk!SOS_Scheduler::ProcessTasks+0x29a
sqldk!SchedulerManager::WorkerEntryPoint+0x261
sqldk!SystemThread::RunWorker+0x8f
sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
sqldk!SchedulerManager::ThreadEntryPoint+0x236
kernel32!BaseThreadInitThunk+0x1a
ntdll!RtlUserThreadStart+0x1d

狀態

Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

Author: jannaw
Writer: v-yipli
技術編審︰ pradm; jannaw; hozhan
Editor: v-mordew

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×