SORU
9 EYLÜL 2011, Cuma


Nasıl bir Sorgu Yürütme Planı alabilirim?

Microsoft SQL Server nasıl saklı yordam / bir sorgu için sorgu yürütme planı alabilir miyim?

CEVAP
9 EYLÜL 2011, Cuma


Kullanmak için bir koşullara bağlı olan bir yürütme planı elde etme yöntemleri vardır. Genelde kullanabilirsiniz SQL Server Management Studio için bir plan, ancak, eğer bir sebepten kaçamazsın sorgunuzu SQL Server Management Studio sanırım bulmanıza yardımcı olmak için elde bir plan üzerinden SQL Server Profiler ya da teftiş plan önbelleği.

Yöntem 1 - SQL Server Management Studio Kullanarak

SQL Server ile birlikte bir kaç düzgün özellikleri yapmak çok kolay yakalamak için bir yürütme planı, sadece emin olmak "Vardır Gerçek Yürütme Planı" menüsü (altında "Sorgu" menüsü) işaretli ve çalışma sorgu gibi normal.

Include Action Execution Plan menu item

Eğer saklı yordam içindeki ifadeler için yürütme planı almak için çalışıyorsanız o zaman saklı yordam, şu şekilde yürütmek gerekir:

exec p_Example 42

Sorgunuza fazladan bir sekme "Yürütme planı sonuçlar bölmesinde görüntülenir. başlıklı görmelisiniz tamamladığında Eğer birçok tablolar çalıştırılmışsa birçok plan bu sekmede görüntülenen görebilirsiniz.

Screenshot of an Execution Plan

Buradan plan üzerinde Management Studio, ya da sağ tıklatın SQL Server yürütme planı incelemek ve "Yürütme Planı Farklı Kaydet ..." planı kaydetmek için XML biçiminde bir dosya seçebilirsiniz

Yöntem 2 - gösterim planı seçenekleri Kullanarak

Bu yöntem çok benzer yöntem 1 (aslında bu ne SQL Server Management Studio Yok Dahili), ancak ben dahil bunu kabul eder ya da eğer yoksa SQL Server Management Studio kullanılabilir.

Sorgunuzu çalıştırmadan önce çalıştırınbiraşağıdaki ifadelerden. Bildiride, toplu tek ifadesi olması gerekir, yani aynı anda başka bir deyimi yürütme:

SET SHOWPLAN_TEXT ON
SET SHOWPLAN_ALL ON
SET SHOWPLAN_XML ON
SET STATISTICS PROFILE ON
SET STATISTICS XML ON -- The is the recommended option to use

Bu bağlantı seçenekleri ve sadece bu bağlantı için bir kez çalıştırmanız gerekir. Tüm açıklamaları bu noktadan sonra bir koşu ile birlikte olacakek seviyesinde bağımsızistenen biçimde yürütme planını içeren - sadece normalde planı görmek ister gibi sorgunuzu çalıştırın.

İşiniz bittiğinde bu seçeneği aşağıdaki deyimi ile kapatabilirsiniz:

SET <<option>> OFF

Yürütme planı biçimlerinin karşılaştırılması

Güçlü bir tercihi yoksa benim tavsiyem STATISTICS XML seçeneğini kullanın. Bu seçenek "Fiili Yürütme Planı" en uygun biçimde SQL Server Management Studio ve malzeme seçeneği en çok bilgi İçerir. eşdeğeridir

  • SHOWPLAN_TEXT - temel bir metin tabanlı tahmini yürütme planı sorgu yürütme olmadan Görüntüler
  • SHOWPLAN_ALL - sorgu yürütme olmadan maliyet tahminleri ile bir metin tabanlı tahmini yürütme planını Görüntüler
  • SHOWPLAN_XML - Görüntüler sorguyu çalıştırmadan maliyet tahminleri ile XML tabanlı tahmini yürütme planı,. Bu "Görüntü Tahmini Yürütme..." seçeneği SQL Server Management Studio. Plan eşdeğerdir
  • STATISTICS PROFILE - sorgu Yürütür ve metin tabanlı gerçek yürütme planı görüntüler.
  • STATISTICS XML - sorgu Yürütür ve XML tabanlı gerçek bir yürütme planını görüntüler. Bu "Fiili Yürütme Planı" SQL Server Management Studio seçeneği. Dahil eşdeğerdir

Yöntem 3 - SQL Server Profiler Kullanarak

Eğer kaçamazsın sorgunuzu doğrudan (veya sorgu kaçmıyor yavaş yavaş çalıştırdığınızda, doğrudan - hatırlamak istediğimiz bir plan sorgu gerçekleştirme kötü), sonra yakalama planı kullanarak bir SQL Server Profiler izleme. Fikir birini yakalayan bir izleme "" olayları çalışıyor. gösterim planı yaparken sorguyu çalıştırmak için

Yük bağlı olduğunu unutmayınolabilirbelli ki dikkatli olmanız gerekir ancak üretim ortamında, bu yöntemi kullanın. SQL Server profil oluşturma mekanizmaları veritabanı üzerindeki etkisini en aza indirmek için tasarlanmıştır ama bu olmayacak anlamına gelmezherhangi birperformans etkisi. Ayrıca eğer veritabanı yoğun kullanım altında ise, izleme, sorunları ve doğru planı filtreleme tanımlama olabilir. Açıkçası DBA ile sizinle değerli veritabanında bunu yaparken mutlu olup olmadığını görmek için kontrol etmelisiniz!

  1. SQL Server Profiler açmak ve yeni bir eser olan karşı izleme kaydetmek istediğiniz veritabanı bağlantısı oluşturun.
  2. """Tüm olaylar" onay "Performans" ->Göster sekmesini kontrol Olayları Seçimi altında "Gösterim planı XML" ve izleme satır çalıştırın.
  3. Izleme çalışırken, yapmanız gereken ne olursa olsun çalıştırmak için yavaş çalışan sorgu.
  4. Sorgu işleminin tamamlanmasını bekleyip izlemeyi Durdur.
  5. İzleme doğru planı SQL Server Profiler xml ve "olay veri Ayıkla..." planı kaydetmek için XML biçimi. dosya seçmek için tıklayın kaydetmek için

Bu eşdeğerdir olsun planı "Fiili Yürütme Planı" SQL Server Management Studio seçeneği.

Yöntem 4 - sorgu önbelleği İnceleniyor

Sorgunuzu doğrudan çalıştırabilirsiniz. ayrıca profiler izlemesi sonra yakalayabilir. Eğer hala SQL sorgu planı önbelleğe inceleyerek tahmini bir plan elde edebilirsiniz.

DMVs SQL Server sorgulayarak plan önbelleği kontrol ederiz. Aşağıdaki SQL metni ile birlikte tüm önbelleğe alınan sorgu planlarını (xml olarak) listesinde hangi temel bir sorgu. En veritabanında da ek filtre yan tümceleri sonuçları ilgilendiğiniz planlar inmesi eklemek gerekir.

SELECT UseCounts, Cacheobjtype, Objtype, TEXT, query_plan
FROM sys.dm_exec_cached_plans 
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
CROSS APPLY sys.dm_exec_query_plan(plan_handle)

Plan bu sorgu ve yeni bir pencere - sağ tıkla planı açmak için XML ve "yürütme planı Farklı Kaydet..." planı kaydetmek için XML biçimi. dosya seçin yürütmek

Notlar:

Pek çok faktör rol (tablo ve dizin şema veri saklanan ve tablo istatistiklerini arasında değişen) olmasıdırher zamanyürütme planı almak için ilgilendiğiniz veritabanından (normalde performans sorunu yaşayan) deneyin.

Şifreli saklı yordam için yürütme planı yakalayamazsınız.

" vs "" tahmin yürütme planları . "gerçek

Birgerçekyürütme planı SQL Server aslında sorgu, oysa bir çalışan biridirtahminiyürütme SQL Server ne işe yarar plansorguyu çalıştırmadan yapın. Mantıksal olarak eşdeğer olsa da, gerçek yürütme planı sorgu yürütülürken aslında ne olduğu hakkında ek bilgi ve istatistik içerdiği için çok daha yararlıdır. Bu SQL Sunucuları tahminler kapalı olduğu sorunları tanımada temel (istatistikler güncel değil gibi).

Nasıl bir sorgu yürütme planı anladım?

Bu konuyu (ücretsiz) book kendi içinde bir değer yeterlidir.

Ayrıca Bkz:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dougownsall

    dougownsall

    7 EKİM 2007
  • HBO

    HBO

    17 Mayıs 2006
  • MrOctopi

    MrOctopi

    6 Aralık 2010