MEMPERBAIKI: Non-menghasilkan scheduler galat saat luar bergabung DMVs dengan klausa tidak cocok di SQL Server 2008 R2 atau SQL Server 2012

BUG #: 201290 (pemeliharaan konten)

Gejala

Pertimbangkan skenario berikut ini:

  • Anda menjalankan kueri terhadap sys.dm_exec_query_stats dan sys.dm_exec_procedure_stats menggunakan gabungan luar di Microsoft SQL Server 2012.

  • Anda tidak cocok dengan kriteria gabungan seperti bergabung dengan sql_handle untuk plan_handle.

  • Anda mengekspor laporan ke PDF dengan Unicode font, seperti Arial Unicode MDS atau Lucida Sans Unicode.

Dalam skenario ini, permintaan akan pernah selesai dan mengkonsumsi inti seluruh bernilai sumber daya tanpa batas, yang menyebabkan banyak proses yang gagal.

Ketika Anda mencoba untuk menutup SPID, hasilnya non-menghasilkan scheduler kesalahan dan terlihat perubahan ke status server. Dalam situasi ini, SQL Server akan membeku ketika Anda mencoba untuk me-restart contoh dan satu-satunya cara yang dapat menyelesaikan masalah untuk me-restart Windows.

Penyebab

Masalah ini terjadi karena permintaan loop tak terbatas ketika rencana cache berdasarkan predikat menangani rencana tidak ditemukan pada logika ujung belakang.

Pemecahan masalah

Informasi paket layanan untuk SQL Server 2012

Untuk mengatasi masalah ini, Dapatkan paket layanan terbaru untuk SQL Server 2012. Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

2674319 bug yang diperbaiki dalam SQL Server 2012 Paket Layanan 1

Informasi lebih lanjut

Informasi tumpukan panggilan

Versi SQL Server 2008 R2:

 44  Id: 2774.2a48 Suspend: 1 Teb: 000007ff`fff60000 Unfrozen
# Child-SP RetAddr Call Site
00 00000000`1568db48 00000000`01e99979 sqlservr!CCurrentSql::FValidHandle
01 00000000`1568db50 00000000`02047038 sqlservr!CCurrentSql::FExternalHandleValidate+0xb9
02 00000000`1568dba0 00000000`01e94432 sqlservr!CCache::GetPcoFromPlanHandle+0x98
03 00000000`1568dc50 00000000`02ab9c15 sqlservr!CProcStatsSTVFBase::GetRow+0x1b2
04 00000000`1568df50 00000000`02a6aa57 sqlservr!CQScanTVFStreamNew::GetRow+0x145
05 00000000`1568dfb0 00000000`02a6b08a sqlservr!CQScanNLJoinNew::GetRowHelper+0x387
06 00000000`1568e000 00000000`02ab4259 sqlservr!CQScanNLJoinNew::GetRow+0xba
07 00000000`1568e050 00000000`028e74e1 sqlservr!CQScanTopNew::GetRow+0x79
08 00000000`1568e0c0 00000000`02207aaf sqlservr!CQueryScan::GetRow+0x131
09 00000000`1568e110 00000000`02204c79 sqlservr!CXStmtQuery::InitForExecute+0x13f
0a 00000000`1568e170 00000000`02209a6d sqlservr!CXStmtQuery::ErsqExecuteQuery+0x8a9
0b 00000000`1568e510 00000000`02209f14 sqlservr!CXStmtSelect::XretDoExecute+0x72d
0c 00000000`1568e680 00000000`020d085c sqlservr!CXStmtSelect::XretExecute+0x64
0d 00000000`1568e6c0 00000000`020d03fa sqlservr!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn+0x3c
0e 00000000`1568e700 00000000`020c1f63 sqlservr!CMsqlExecContext::ExecuteStmts<1,1>+0x2aa
0f 00000000`1568e880 00000000`02153780 sqlservr!CMsqlExecContext::FExecute+0x1023
10 00000000`1568eae0 00000000`01e7c6fb sqlservr!CSQLSource::Execute+0x1090
11 00000000`1568ecd0 00000000`01e7dc84 sqlservr!process_request+0x6cb
12 00000000`1568f080 00000000`03eb7f16 sqlservr!process_commands+0x3c4
13 00000000`1568f200 00000000`03eab185 sqlservr!SOS_Task::Param::Execute+0x156
14 00000000`1568f300 00000000`03eaaf45 sqlservr!SOS_Scheduler::RunTask+0x1a5
15 00000000`1568f380 00000000`03e85fb2 sqlservr!SOS_Scheduler::ProcessTasks+0x2f5
16 00000000`1568f3f0 00000000`03e8c568 sqlservr!SchedulerManager::WorkerEntryPoint+0x2f2
17 00000000`1568f4f0 00000000`03e83567 sqlservr!SystemThread::RunWorker+0x158
18 00000000`1568f560 00000000`03e865cf sqlservr!SystemThreadDispatcher::ProcessWorker+0x567
19 00000000`1568f650 00000000`72d737d7 sqlservr!SchedulerManager::ThreadEntryPoint+0x14f
1a 00000000`1568f740 00000000`72d73894 MSVCR80!_callthreadstartex+0x17
1b 00000000`1568f770 00000000`76bb652d MSVCR80!_threadstartex+0x84
1c 00000000`1568f7a0 00000000`76efc521 kernel32!BaseThreadInitThunk+0xd
1d 00000000`1568f7d0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d

Versi SQL Server 2012:

:058> !run non_yield_analysis.js----- Script Starting -----
General information
-----------------
Offender : ~58
# passes : 15
Wall clock time: 71225ms
Kernel time : 78ms
User time : 69562ms
NON YIELDING SCHEDULER
Worker NONPREEMPTIVE
----------------------
Quantum Starting stack
----------------------
<UNAVAILABLE>
Non Yielding copied thread stack
--------------------------------
Child-SP RetAddr Call Site
00000000`053be2b0 00000000`6b696472 sqllang!CCache::GetPcoFromPlanHandle+0x28
00000000`053be3c0 00000000`6d988f45 sqllang!CProcStatsSTVFBase::GetRow+0x182
00000000`053be6f0 00000000`6ce84ab2 sqlmin!CQScanTVFStreamNew::GetRow+0xd5
00000000`053be750 00000000`6ce46ab7 sqlmin!CQScanNLJoinNew::GetRowHelper+0xf4
00000000`053be780 00000000`6ce1583f sqlmin!CQScanTopNew::GetRow+0x15c
00000000`053be7d0 00000000`6a9ed842 sqlmin!CQueryScan::GetRow+0x81
00000000`053be800 00000000`6a9ee46a sqllang!CXStmtQuery::ErsqExecuteQuery+0x366
(Inline Function) --------`-------- sqllang!CXStmtSelect::XretDoExecute+0xb0
00000000`053be940 00000000`6a9cee1a sqllang!CXStmtSelect::XretExecute+0x2f7
(Inline Function) --------`-------- sqllang!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn+0xf
00000000`053bea10 00000000`6a9e904b sqllang!CMsqlExecContext::ExecuteStmts<1,1>+0x38f
(Inline Function) --------`-------- sqllang!CExecLevel::FExecType+0xffffffff`ffafa0b9
(Inline Function) --------`-------- sqllang!CExecLvlRepresentation::FObject+0xffffffff`ffafa0b9
(Inline Function) --------`-------- sqllang!CExecLvlRepresentation::FEmbedFunc+0xffffffff`ffafa0b9
00000000`053beb30 00000000`6a9e878b sqllang!CMsqlExecContext::FExecute+0xa33
00000000`053bed20 00000000`6aa05cac sqllang!CSQLSource::Execute+0x8dd
(Inline Function) --------`-------- sqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb2d9a9
00000000`053beee0 00000000`6a9fc8f7 sqllang!process_request+0x73c
00000000`053bf5b0 00000000`6c9a2cd0 sqllang!process_commands+0x51c
00000000`053bf870 00000000`6c9a2ac4 sqldk!SOS_Task::Param::Execute+0x21e
00000000`053bfe70 00000000`6c9a27a6 sqldk!SOS_Scheduler::RunTask+0xa8
00000000`053bfee0 00000000`6c9b815f sqldk!SOS_Scheduler::ProcessTasks+0x299
00000000`053bff60 00000000`6c9b8270 sqldk!SchedulerManager::WorkerEntryPoint+0x261
00000000`053c0000 00000000`6c9b7a2b sqldk!SystemThread::RunWorker+0x8f
00000000`053c0030 00000000`6c9b7d08 sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
00000000`053c00e0 00000000`746e1d9f sqldk!SchedulerManager::ThreadEntryPoint+0x236
00000000`053c0180 00000000`746e1e3b msvcr100!_callthreadstartex+0x17
00000000`053c01b0 00000000`76cd652d msvcr100!_threadstartex+0x7f
00000000`053c01e0 00000000`771bc521 kernel32!BaseThreadInitThunk+0xd
00000000`053c0210 00000000`00000000 ntdll!RtlUserThreadStart+0x1d
Current (dump) thread stack
--------------------------------
Child-SP RetAddr Call Site
00000000`7bf7dee0 00000000`6d988f45 sqllang!CProcStatsSTVFBase::GetRow+0x182
00000000`7bf7e210 00000000`6ce84ab2 sqlmin!CQScanTVFStreamNew::GetRow+0xd5
00000000`7bf7e270 00000000`6ce46ab7 sqlmin!CQScanNLJoinNew::GetRowHelper+0xf4
00000000`7bf7e2a0 00000000`6ce1583f sqlmin!CQScanTopNew::GetRow+0x15c
00000000`7bf7e2f0 00000000`6a9ed842 sqlmin!CQueryScan::GetRow+0x81
00000000`7bf7e320 00000000`6a9ee46a sqllang!CXStmtQuery::ErsqExecuteQuery+0x366
(Inline Function) --------`-------- sqllang!CXStmtSelect::XretDoExecute+0xb0
00000000`7bf7e460 00000000`6a9cee1a sqllang!CXStmtSelect::XretExecute+0x2f7
(Inline Function) --------`-------- sqllang!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn+0xf
00000000`7bf7e530 00000000`6a9e904b sqllang!CMsqlExecContext::ExecuteStmts<1,1>+0x38f
(Inline Function) --------`-------- sqllang!CExecLevel::FExecType+0xffffffff`ffafa0b9
(Inline Function) --------`-------- sqllang!CExecLvlRepresentation::FObject+0xffffffff`ffafa0b9
(Inline Function) --------`-------- sqllang!CExecLvlRepresentation::FEmbedFunc+0xffffffff`ffafa0b9
00000000`7bf7e650 00000000`6a9e878b sqllang!CMsqlExecContext::FExecute+0xa33
00000000`7bf7e840 00000000`6aa05cac sqllang!CSQLSource::Execute+0x8dd
(Inline Function) --------`-------- sqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb2d9a9
00000000`7bf7ea00 00000000`6a9fc8f7 sqllang!process_request+0x73c
00000000`7bf7f0d0 00000000`6c9a2cd0 sqllang!process_commands+0x51c
00000000`7bf7f390 00000000`6c9a2ac4 sqldk!SOS_Task::Param::Execute+0x21e
00000000`7bf7f990 00000000`6c9a27a6 sqldk!SOS_Scheduler::RunTask+0xa8
00000000`7bf7fa00 00000000`6c9b815f sqldk!SOS_Scheduler::ProcessTasks+0x299
00000000`7bf7fa80 00000000`6c9b8270 sqldk!SchedulerManager::WorkerEntryPoint+0x261
00000000`7bf7fb20 00000000`6c9b7a2b sqldk!SystemThread::RunWorker+0x8f
00000000`7bf7fb50 00000000`6c9b7d08 sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
00000000`7bf7fc00 00000000`746e1d9f sqldk!SchedulerManager::ThreadEntryPoint+0x236
00000000`7bf7fca0 00000000`746e1e3b msvcr100!_callthreadstartex+0x17
00000000`7bf7fcd0 00000000`76cd652d msvcr100!_threadstartex+0x7f
00000000`7bf7fd00 00000000`771bc521 kernel32!BaseThreadInitThunk+0xd
00000000`7bf7fd30 00000000`00000000 ntdll!RtlUserThreadStart+0x1d

Status

Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

Penulis: lyi
Penulis: v-shysun
Pemeriksa teknis: yaelh; lyi; daleche; Kipas Ying; sqlprev
Editor: v-jastam

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×