SQL Server Örtük Dönüşümler

Planlardaki örtük veri tipi dönüşümlerini erişim yolu etkisiyle inceleyin. İlgili sorgu maliyetini moon ile izleyin.

2026-09-12 · 2 dakika okuma

Problem neden önemlidir?

Farklı veri tipleri karşılaştırıldığında SQL Server çalışma sırasında örtük dönüşüm uygulayabilir. Dönüşüm indeksli sütun tarafında gerçekleşirse seek kullanımı ve cardinality tahminleri olumsuz etkilenebilir.

Nasıl teşhis edilir?

Önbellekteki planlarda CONVERT_IMPLICIT ifadelerini arayın ve gerçek sorgu parametre tiplerini şemayla karşılaştırın. Her örtük dönüşüm zararlı değildir; operatör konumu ve gerçek okuma etkisi doğrulanmalıdır.

Sorgu yalnızca plan önbelleğinde bulunan ve CONVERT_IMPLICIT içeren planları listeler. Önbellek eksik olabilir; eşleşme performans sorununun nedeni olduğunu tek başına kanıtlamaz.

SELECT TOP (50)
       qs.execution_count,
       qs.total_worker_time,
       qs.total_logical_reads,
       st.text AS batch_text,
       qp.query_plan
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) AS qp
WHERE qp.query_plan.exist(
  'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/showplan";
   //ScalarOperator[contains(@ScalarString,"CONVERT_IMPLICIT")]') = 1
ORDER BY qs.total_worker_time DESC;

Güvenli çözüm yaklaşımı

Uygulama parametrelerini ve sorgu ifadelerini hedef sütun tipiyle uyumlu hale getirin. Sütun üzerinde dönüşüm yapmak yerine veri modelini ve sınır katmanındaki tipleri düzeltmek genellikle daha güvenlidir.

Sürekli monitoring neden gerekir?

Yeni uygulama sürümleri veya şema değişiklikleri daha önce olmayan dönüşümler oluşturabilir. moon sorgu süreleri ve okuma eğilimlerini izleyerek regresyonları Slack, PagerDuty veya webhook üzerinden görünür kılabilir.

Sık sorulan sorular

Her CONVERT_IMPLICIT performans hatası mıdır? Sorguda açık CAST kullanmak sorunu kesin çözer mi?

Hayır, sabit veya küçük veri kümesi üzerindeki bazı dönüşümler önemsiz olabilir. Açık dönüşüm ancak doğru tarafta ve uygun veri tipiyle kullanılırsa yardımcı olur; plan etkisi ölçülmelidir.

moon bu konuda nasıl yardımcı olur?

moon, SQL Server, PostgreSQL ve MongoDB sinyallerini sürekli izleyerek problemi anlık bir kontrolden ziyade zaman içindeki davranışıyla değerlendirmeye yardımcı olur.