Belirtiler
Bilgisayarınızda Microsoft SQL Server 2012 Service Pack 2 (SP2) uygulandığını varsayalım. Sp_executesql saklı yordamında veri yakalamayı DEĞIŞTIRME (cdc) cdc.fn_cdc_get_net_changes_<Capture_instance> ve SQL Server Management Studio Server (SSMS), CDC kendisi veya SQL Server Integration Services (ssis) paketleri gibi bir uygulama kaynağından gelebilir. Bu durumda, SQL Server 2012 ' de düşük performansla karşılaşıyorsunuz.NotPerformans düşüşü büyük olabilir. Örneğin, SQL Server 2012 SP1'DE bir sorgu birkaç saniye içinde bitebileceğiniz. Ancak aynı sorgunun SQL Server 2012 SP2'DE çalışması birkaç saat sürebilir. Ayrıca, istatistik güncelleştirmesi sorun konusunda size yardımcı olmaz.
Neden
Bu sorun, önemlilik tahmindeki cdc.fn_cdc_get_net_changes_<capture_instance> sorgunun performansını ciddi bir şekilde etkileyen bir sorun nedeniyle oluşur.
Çözüm
Sorun ilk olarak SQL Server 'ın aşağıdaki toplu güncelleştirmesinde giderilmiştir.
SQL Server 2012 SP2 için toplu güncelleştirme 3 /en-us/help/3002049
Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:
Geçici Çözüm
Bu soruna geçici bir çözüm için Sorgunuzdaki (yeniden derleyin) sorgu ipucunu kullanın. Sorgunun S, CDC bileşenlerinden tetiklenmesi durumunda, aşağıdaki örnekte olduğu gibi bir plan Kılavuzu oluşturularak seçenek (yeniden derleyin) ipucu zorlanabilir:Exec sp_create_plan_guide @name = N'CDC_Query1_PlanGuide', @stmt = N'select [__$start_lsn],[__$operation],[__$update_mask],[Column1],[Column2],[Column3] from [cdc].[fn_cdc_get_net_changes_dbo_Table1](CONVERT(binary(10), @cs, 1), CONVERT(binary(10), @ce, 1), @mode)',@type = N'SQL',@module_or_batch = NULL, @params = N'@ce nvarchar(22),@mode nvarchar(14),@cs nvarchar(22)', @hints = N'OPTION (RECOMPILE)'; NotÖrnek sorguyu, birlikte çalıştığınız sorguyla değiştirmeniz gerekir. Profiler izlemesinin içinden açılabilir, bu nedenle fazladan karakter kazara eklenmez. Ayrıca, Select sorgusunun tek bir satıra konulmasını sağlayın (örneğin, bir satır başı veya satır beslemesi olmamalıdır), böylece plan Kılavuzu Eski planı önbellekten gizlemek için DBCC FREEPROCCACHE 'i de kullanabilirsiniz.
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.