Aracılığıyla paylaş


SQLdiag yardımcı programı

Şunlar için geçerlidir: SQL Server

SQLdiag yardımcı programı, konsol uygulaması veya hizmet olarak çalıştırılabilir genel amaçlı bir tanılama toplama yardımcı programıdır. SQL Server'dan ve diğer sunucu türlerinden günlükleri ve veri dosyalarını toplamak için SQLdiag'ı kullanabilir ve zaman içinde sunucularınızı izlemek veya sunucularınızla ilgili belirli sorunları gidermek için kullanabilirsiniz. SQLdiag , Microsoft Müşteri Destek Hizmetleri için tanılama bilgileri toplamayı hızlandırmayı ve basitleştirmeyi amaçlar.

Uyarı

Bu yardımcı program değiştirilebilir ve komut satırı bağımsız değişkenlerini veya davranışını kullanan uygulamalar veya betikler gelecek sürümlerde düzgün çalışmayabilir.

SQLdiag aşağıdaki tanılama bilgileri türlerini toplayabilir:

  • Windows performans günlükleri
  • Windows olay günlükleri
  • SQL Server Profiler izleme verileri
  • SQL Server engelleme bilgileri
  • SQL Server yapılandırma bilgileri

Aşağıdaki bölümde açıklanan yapılandırma dosyasını düzenleyerek SQLdiag.xml hangi tür bilgileri toplamasını istediğinizi belirtebilirsiniz.

Sözdizimi

sqldiag
    { [ /? ] }
    |
    {
      [ /I configuration_file ]
      [ /O output_folder_path ]
      [ /P support_folder_path ]
      [ /N output_folder_management_option ]
      [ /M machine1 [ machine2 machineN ] | @machinelistfile ]
      [ /C file_compression_type ]
      [ /B [+]start_time ]
      [ /E [+]stop_time ]
      [ /A SQLdiag_application_name ]
      [ /T { tcp [ ,port ] | np | lpc } ]
      [ /Q ] [ /G ] [ /R ] [ /U ] [ /L ] [ /X ]
    }
    |
    { [ START | STOP | STOP_ABORT ] }
    |
    { [ START | STOP | STOP_ABORT ] /A SQLdiag_application_name }

Tartışmalar

/?

Kullanım bilgilerini görüntüler.

/I yapılandırma_dosyası

SQLdiag için kullanılacak yapılandırma dosyasını ayarlar. varsayılan olarak, /ISQLdiag.xmlolarak ayarlanır.

/O output_folder_path

SQLdiag çıkışını belirtilen klasöre yeniden yönlendirir. /O Seçenek belirtilmezse, SQLdiag çıkışı SQLdiag başlangıç klasörünün altında adlı SQLDIAG bir alt klasöre yazılır. SQLDIAG Klasör yoksa, SQLdiag klasörü oluşturmayı dener.

Uyarı

Çıkış klasörü konumu, /P ile belirtilebilen destek klasörü konumuna göredir. Çıkış klasörü için tamamen farklı bir konum ayarlamak için tam dizin yolunu /O belirtin.

/P support_folder_path

Destek klasörü yolunu ayarlar. Varsayılan olarak, /PSQLdiag yürütülebilir dosyasının bulunduğu klasöre ayarlanır. Destek klasörü XML yapılandırma dosyası, Transact-SQL betikleri ve yardımcı programın tanılama toplama sırasında kullandığı diğer dosyalar gibi SQLdiag destek dosyalarını içerir. Alternatif bir destek dosyaları yolu belirtmek için bu seçeneği kullanırsanız, SQLdiag gerekli olan destek dosyalarını henüz yoksa otomatik olarak belirtilen klasöre kopyalar.

Geçerli klasörünüzü destek yolu olarak ayarlamak için komut satırında aşağıdaki gibi belirtin %cd% :

sqldiag /P %cd%

/N output_folder_management_option

SQLdiag'ın başlatıldığında çıkış klasörünün üzerine yazıp yazmayacağını veya yeniden adlandırıp yazmayacağını ayarlar. Mevcut seçenekler:

  • 1 = Çıkış klasörünün üzerine yazar (varsayılan)
  • 2 = SQLdiag başlatıldığında çıkış klasörünü SQLDIAG_00001, SQLDIAG_00002vb. olarak yeniden adlandırır. Geçerli çıkış klasörünü yeniden adlandırdıktan sonra , SQLdiag çıktıyı varsayılan çıkış klasörüne SQLDIAGyazar.

SQLdiag başlatıldığında geçerli çıkış klasörüne çıkış eklemez. Yalnızca varsayılan çıkış klasörünün üzerine yazabilir (seçenek 1) veya klasörü yeniden adlandırabilir (seçenek 2) ve ardından çıktıyı adlı SQLDIAGyeni varsayılan çıkış klasörüne yazar.

/M machine1 [ machine2machineN ] | @machinelistfile

Yapılandırma dosyasında belirtilen makineleri geçersiz kılar. Varsayılan olarak yapılandırma dosyası şeklindedir SQLdiag.xmlveya parametresiyle /I ayarlanır. Birden fazla makine belirtirken, her makine adını bir boşlukla ayırın.

@machinelistfile seçeneği, yapılandırma dosyasında depolanacak makine listesi dosya adını belirtir.

/C file_compression_type

SQLdiag çıkış klasörü dosyalarında kullanılan dosya sıkıştırma türünü ayarlar. Mevcut seçenekler:

  • 0 = yok (varsayılan)
  • 1 = NTFS sıkıştırması kullanır

/B [+]start_time

Tanılama verilerini toplamaya başlamak için gereken tarih ve saati aşağıdaki biçimde belirtir: yyyyMMdd_HH:mm:ss

Saat, 24 saatlik gösterimi kullanılarak belirtilir. Örneğin, 14:00 olarak 14:00:00belirtilmelidir.

Geçerli tarihe ve saate göre bir zaman belirtmek için + tarih olmadan (yalnızca ss:dd:sn) kullanın. Örneğin, belirtirseniz/B +02:00:00, SQLdiag bilgi toplamaya başlamadan önce 2 saat bekler.

ve belirtilen + arasına boşluk eklemeyin.

Geçmişte olan bir başlangıç saati belirtirseniz, SQLdiag başlangıç tarihini zorla değiştirir, böylece başlangıç tarihi ve saati gelecekte olur. Örneğin, belirtirseniz /B 01:00:00 ve geçerli saat 08:00:00 ise, SQLdiag başlangıç tarihini zorla değiştirir, böylece başlangıç tarihi sonraki gün olur.

SQLdiag , yardımcı programın çalıştığı bilgisayarda yerel saati kullanır.

/E [+]stop_time

Tanılama verilerini toplamayı durduracak tarih ve saati aşağıdaki biçimde belirtir: yyyyMMdd_HH:mm:ss

Saat, 24 saatlik gösterimi kullanılarak belirtilir. Örneğin, 14:00 olarak 14:00:00belirtilmelidir.

+ tarihi ve saatine göre bir saat belirtmek için tarih olmadan (yalnızca SS:dd:ss) kullanın. Örneğin, kullanarak /B +02:00:00 /E +03:00:00bir başlangıç saati ve bitiş saati belirtirseniz , SQLdiag bilgi toplamaya başlamadan önce 2 saat bekler, ardından durdurulup çıkmadan önce 3 saat boyunca bilgi toplar. Belirtilmezse /B, SQLdiag tanılamaları hemen toplamaya başlar ve /E tarafından belirtilen tarih ve saatte biter.

Belirtilen + arasına boşluk eklemeyin.

SQLdiag , yardımcı programın çalıştığı bilgisayarda yerel saati kullanır.

/A SQLdiag_application_name

Aynı SQL Server örneğinde SQLdiag yardımcı programının birden çok örneğinin çalıştırılmasını sağlar.

Her SQLdiag_application_name farklı bir SQLdiag örneği tanımlar. SQLdiag_application_name örneği ile SQL Server örneği adı arasında ilişki yoktur.

SQLdiag_application_name, SQLdiag hizmetinin belirli bir örneğini başlatmak veya durdurmak için kullanılabilir.

Bu örnekte <SQLdiag_application_name> için ile uygun değeri değiştirin:

sqldiag START /A <SQLdiag_application_name>

Ayrıca /R belirli bir örneğini hizmet olarak kaydetme seçeneğiyle birlikte de kullanılabilir. Bu örnekte, SQLdiag_application_name için uygun değerle <SQLdiag_application_name> değiştirin:

sqldiag /R /A <SQLdiag_application_name>

Uyarı

SQLdiag, DIAG$ için belirtilen örnek adına otomatik olarak ön ek ekler. Bu, SQLdiag'ı hizmet olarak kaydederseniz mantıklı bir hizmet adı sağlar.

/T protokolü

Aşağıdaki protokol değerlerinden birini kullanarak bir SQL Server örneğine bağlanır.

Protokol (ve bağlantı noktası) Description
tcp [ ,port ] İletim Denetimi Protokolü/İnternet Protokolü (TCP/IP). İsteğe bağlı olarak bağlantı için bir bağlantı noktası numarası belirtebilirsiniz.
Np Adlandırılmış kanallar. Varsayılan olarak, SQL Server'ın varsayılan örneği adlandırılmış kanalda \\.\pipe\sql\query ve \\.\pipe\MSSQL$<instancename>\sql\query adlandırılmış bir örnek için dinler. Alternatif kanal adı kullanarak SQL Server örneğine bağlanamazsınız.
Lpc Yerel yordam çağrısı. İstemci aynı bilgisayardaki bir SQL Server örneğine bağlanıyorsa bu paylaşılan bellek protokolü kullanılabilir.

/Q

SQLdiag'ı sessiz modda çalıştırır. /Q parola istemleri gibi tüm istemleri gizler.

/G

SQLdiag'ı genel modda çalıştırır. Belirtildiğinde /G , başlangıçta SQLdiag SQL Server bağlantı denetimlerini zorunlu kılmaz veya kullanıcının sysadmin sabit sunucu rolünün üyesi olduğunu doğrulamaz. Bunun yerine SQLdiag , bir kullanıcının istenen her tanılamayı toplamak için uygun haklara sahip olup olmadığını belirlemek için Windows'a saptırılır.

/G belirtilmemişse, SQLdiag kullanıcının Windows Administrators grubunun üyesi olup olmadığını denetler ve kullanıcı Administrators grubu üyesi değilse SQL Server tanılamasını toplamaz.

/R

SQLdiag'ı hizmet olarak kaydeder. SQLdiag'ı hizmet olarak kaydettiğinizde belirtilen tüm komut satırı bağımsız değişkenleri, hizmetin gelecekteki çalıştırmaları için korunur.

SQLdiag bir hizmet olarak kaydedildiğinde, varsayılan hizmet adı olurSQLDIAG. /A bağımsız değişkenini kullanarak hizmet adını değiştirebilirsiniz.

START Hizmeti başlatmak için komut satırı bağımsız değişkenini kullanın:

sqldiag START

Hizmeti başlatmak için komutunu da kullanabilirsiniz net start :

net start SQLDIAG

/U

SQLdiag’ı bir hizmet olarak kaydını kaldırır.

/A Adlandırılmış bir SQLdiag örneğinin kaydını kaldırırken /A bağımsız değişkenini de kullanın.

/L

Başlangıç saati /B veya bitiş saati /E bağımsız değişkenleriyle de belirtildiğinde SQLdiag'ı sürekli modda çalıştırır. Zamanlanmış kapatma nedeniyle tanılama toplama durduktan sonra SQLdiag otomatik olarak yeniden başlatılır. Örneğin, /E veya /X bağımsız değişkenlerini kullanarak.

Uyarı

SQLdiag, /B bir başlangıç saati veya bitiş saati /E belirtilmezse /L komut satırı bağımsız değişkenini yoksayar.

kullanmak /L hizmet modunu ifade etmez. Hizmet olarak SQLdiag'ı çalıştırırken kullanmak için, hizmeti kaydederken komut satırında belirtin.

/X

SQLdiag'ı anlık görüntü modunda çalıştırır. SQLdiag , yapılandırılmış tüm tanılamaların anlık görüntüsünü alır ve otomatik olarak kapanır.

BAŞLAT | STOP | STOP_ABORT

SQLdiag hizmetini başlatır veya durdurur. STOP_ABORT , şu anda topladığı tanılama koleksiyonunu tamamlamadan hizmeti mümkün olan en kısa sürede kapatmaya zorlar.

Bu hizmet denetimi bağımsız değişkenleri kullanıldığında, komut satırında kullanılan ilk bağımsız değişken olmalıdır. Örneğin:

sqldiag START

/A Yalnızca SQLdiag adlandırılmış bir örneğini belirten bağımsız değişken, START, STOP veya STOP_ABORT ile SQLdiag hizmetinin belirli bir örneğini denetlemek için kullanılabilir. Bu örnekte, SQLdiag_application_name için uygun değerle <SQLdiag_application_name> değiştirin:

sqldiag START /A <SQLdiag_application_name>

Güvenlik gereksinimleri

SQLdiag genel modda çalıştırılmadığı sürece (komut satırı bağımsız değişkeni belirterek/G), SQLdiag çalıştıran kullanıcının Windows Administrators grubunun ve SQL Server sysadmin sabit sunucu rolünün üyesi olması gerekir. Varsayılan olarak , SQLdiag Windows Kimlik Doğrulaması kullanarak SQL Server'a bağlanır, ancak SQL Server Kimlik Doğrulamasını da destekler.

Performansla ilgili dikkat edilmesi gerekenler

SQLdiag çalıştırmanın performans etkileri, toplamak üzere yapılandırdığınız tanılama verilerinin türüne bağlıdır. Örneğin, SQL Server Profiler izleme bilgilerini toplamak için SQLdiag'ı yapılandırdıysanız, izlemeyi ne kadar çok olay sınıfı seçerseniz sunucu performansınız o kadar fazla etkilenir.

SQLdiag çalıştırmanın performans etkisi, yapılandırılan tanılamaları ayrı ayrı toplama maliyetlerinin toplamına yaklaşık olarak eşdeğerdir. Örneğin, SQLdiag ile bir izleme toplamak, SQL Server Profiler ile toplamayla aynı performans maliyetine neden olur. SQLdiag kullanmanın performans etkisi göz ardı edilebilir.

Gerekli disk alanı

SQLdiag farklı türde tanılama bilgileri toplayabileceğinden, SQLdiag'ı çalıştırmak için gereken boş disk alanı değişir. Toplanan tanılama bilgilerinin miktarı, sunucunun işlemekte olduğu iş yükünün niteliğine ve hacmine bağlıdır ve birkaç megabayt ile birkaç gigabayt arasında değişebilir.

Yapılandırma dosyaları

Başlangıçta SQLdiag yapılandırma dosyasını ve belirtilen komut satırı bağımsız değişkenlerini okur. SQLdiag'ın yapılandırma dosyasında topladığı tanılama bilgisi türlerini belirtirsiniz. Varsayılan olarak, SQLdiag araç her çalıştığında ayıklanan ve SQLdiag.xml yardımcı programı başlangıç klasöründe bulunan yapılandırma dosyasını kullanır. Yapılandırma dosyası, SQLdiag her çalıştığında yürütülebilir dosyadan yardımcı program başlangıç dizinine ayıklanan SQLDiag_schema.xsd XML şemasını kullanır.

Yapılandırma dosyalarını düzenleme

SQLdiag.xml topladığı tanılama verilerinin türlerini değiştirmek için kopyalayıp düzenleyebilirsiniz. Yapılandırma dosyasını düzenlerken her zaman yapılandırma dosyasını Management Studio gibi XML şemasına göre doğrulayan bir XML düzenleyicisi kullanın. SQLdiag.xml öğesini doğrudan değiştirmemelisiniz. Bunun yerine bir kopyasını SQLdiag.xml oluşturun ve aynı klasörde yeni bir dosya adıyla yeniden adlandırın. Ardından yeni dosyayı düzenleyin ve bağımsız değişken olarak /I'i kullanarak SQLdiag'a geçirin.

SQLdiag hizmet olarak çalıştığında yapılandırma dosyasını düzenleme

SQLdiag'ı zaten bir hizmet olarak çalıştırdıysanız ve yapılandırma dosyasını düzenlemeniz gerekiyorsa, komut satırı bağımsız değişkenini belirterek SQLDIAG hizmetin kaydını /U kaldırın ve ardından komut satırı bağımsız değişkenini /R kullanarak hizmeti yeniden kaydedin. Hizmetin kaydının kaldırılması ve yeniden kaydedilmesi, Windows kayıt defterinde önbelleğe alınmış olan eski yapılandırma bilgilerini kaldırır.

Çıkış klasörü

Bağımsız değişkeniyle /O bir çıkış klasörü belirtmezseniz, SQLdiag, SQLDIAG başlangıç klasörünün altında adlı bir alt klasör oluşturur. SQL Server Profiler gibi yüksek hacimli izleme içeren tanılama bilgileri koleksiyonu için, çıkış klasörünün istenen tanılama çıkışını depolamak için yeterli alana sahip bir yerel sürücüde olduğundan emin olun.

SQLdiag yeniden başlatıldığında çıkış klasörünün içeriğinin üzerine yazar. Bunu önlemek için komut satırında belirtin /N 2 .

Veri toplama işlemi

SQLdiag başladığında, içinde SQLdiag.xmlbelirtilen tanılama verilerini toplamak için gerekli başlatma denetimlerini gerçekleştirir. Bu işlem birkaç saniye sürebilir. SQLdiag bir konsol uygulaması olarak çalıştığında tanılama verilerini toplamaya başladıktan sonra, SQLdiag koleksiyonunun başladığını ve durdurmak için CTRL+C tuşlarına basabileceğinizi bildiren bir ileti görüntülenir. SQLdiag bir hizmet olarak çalıştırıldığında, Windows olay günlüğüne benzer bir ileti yazılır.

Yeniden oluşturabileceğiniz bir sorunu tanılamak için SQLdiag kullanıyorsanız, sorunu sunucunuzda yeniden oluşturmadan önce bu iletiyi alıncaya kadar bekleyin.

SQLdiag çoğu tanılama verilerini paralel olarak toplar. Tüm tanılama bilgileri, Windows performans günlüklerinden ve olay günlüklerinden bilgi toplanması dışında SQL Server sqlcmd yardımcı programı veya Windows komut işlemcisi gibi araçlara bağlanılarak toplanır. SQLdiag , bu diğer araçların tanılama veri toplamasını izlemek için bilgisayar başına bir çalışan iş parçacığı kullanır ve genellikle aynı anda birkaç aracının tamamlanmasını bekler. Toplama işlemi sırasında , SQLdiag her tanılamadan çıkışı çıkış klasörüne yönlendirir.

Veri toplamayı durdurma

SQLdiag tanılama verilerini toplamaya başladıktan sonra, onu manual olarak Ctrl+C ile durdurmadığınız, bir sqldiag.stop dosyası oluşturmadığınız veya belirli bir zamanda duracak şekilde yapılandırmadığınız müddetçe toplamaya devam eder. SQLdiag'ı, /E bağımsız değişkeni ile belirli bir zamanda duracak şekilde veya /X bağımsız değişkeni ile anlık görüntü modunda çalışacak şekilde yapılandırabilirsiniz.

SQLdiag durduğunda, başlattığı tüm tanılamaları durdurur. Örneğin, topladığı SQL Server Profiler izlemelerini durdurur, çalıştırdığı Transact-SQL betikleri yürütmeyi durdurur ve veri toplama sırasında ortaya çıkardığı tüm alt işlemleri durdurur. Tanılama veri toplama işlemi tamamlandıktan sonra SQLdiag çıkar.

Konsol uygulaması olarak çalışırken SQLdiag'ı durdurma

SQLdiag'ı konsol uygulaması olarak çalıştırıyorsanız, durdurmak için SQLdiag'ın çalıştığı konsol penceresinde CTRL+C tuşlarına basın. CTRL+C tuşlarına bastıktan sonra konsol penceresinde SQLdiag veri toplama işleminin sona erdiğini ve işlem kapatılana kadar beklemeniz gerektiğini bildiren bir ileti görüntülenir ve bu işlem birkaç dakika sürebilir.

Tüm alt tanılama işlemlerini sonlandırmak ve uygulamayı hemen sonlandırmak için Ctrl+C tuşlarına iki kez basın.

Hizmet olarak çalışırken SQLdiag'ı durdurma

SQLdiag'ı hizmet olarak çalıştırıyorsanız durdurmak için sqldiag STOP başlangıç klasöründe komutunu çalıştırın. Veya Services.msc uygulamasında SQLdiag hizmetlerini durdurabilirsiniz.

Uyarı

SQLdiag hizmetinin duraklatılması desteklenmez. SQLdiag hizmetini duraklatmaya çalışırsanız, siz duraklattığınızda topladığı tanılamayı toplamayı tamamladıktan sonra durur. SQLdiag'ı durdurduktan sonra yeniden başlatırsanız, uygulama yeniden başlatılır ve çıkış klasörünün üzerine yazılır. Çıktı klasörünün üzerine yazılmasını önlemek için komut satırında belirtin /N 2 .

Aynı bilgisayarda birden çok SQLdiag örneği çalıştırıyorsanız, hizmeti durdurduğunuzda komut satırına SQLdiag örneği adını da geçirebilirsiniz. Örneğin, Instance1 adlı bir SQLdiag örneğini durdurmak için aşağıdaki söz dizimini kullanın:

sqldiag STOP /A Instance1

/A, START, STOP veya STOP_ABORT ile kullanılabilen tek komut satırı bağımsız değişkenidir. Hizmet denetimi fiillerinden biriyle SQLdiag'ın adlandırılmış bir örneğini belirtmeniz gerekiyorsa, önceki söz dizimi örneğinde gösterildiği gibi komut satırında denetim fiilinden sonra belirtin /A . Denetim fiilleri kullanıldığında, bunlar komut satırındaki ilk bağımsız değişken olmalıdır.

Hizmeti mümkün olan en kısa sürede durdurmak için yardımcı program başlangıç klasöründe komutunu çalıştırın sqldiag STOP_ABORT . Bu komut, şu anda gerçekleştirilmekte olan tanılamaları tamamlanmasını beklemeden durdurur.

Uyarı

sqldiag STOP veya sqldiag STOP_ABORT kullanarak SQLdiag hizmetini durdurun. SQLdiag'ı veya diğer SQL Server hizmetlerini durdurmak için Windows Hizmetleri Konsolu'nu kullanmayın.

sqldiag.stop dosyasını kullanarak SQLdiag'ı durdurma

SQLdiag, yardımcı programın sqldiag.stop klasöründe adlı \Output bir dosya bulduğunda da otomatik olarak kapanır. Bu seçenek, SQLdiag'ın bir konsol uygulaması veya hizmet olarak çalıştığından bağımsız olarak geçerlidir. .stop Bir olay gerçekleştikten sonra SQLdiag'ı program aracılığıyla kapatmak istediğinizde dosya oluşturmak yararlı olabilir, ancak bu olayın gerçekleştiği zamanı önceden bilmiyorsunuz. Dosyanın içeriği sqldiag.stop ilgisizdir. Dosyayı el ile oluşturmanın yanı sıra, bir toplu iş dosyasında aşağıdakine benzer bir komut kullanarak oluşturun sqldiag.stop:

ECHO stop > F:\PSSDIAG\Output\sqldiag.stop

Bir diğer seçenek de PowerShell kullanmaktır:

Set-Content -Value "stop" -Path "F:\PSSDIAG\Output\sqldiag.stop"

SQLdiag'ı otomatik olarak başlatma ve durdurma

Tanılama verisi toplamayı belirli bir saatte otomatik olarak başlatıp durdurmak için, 24 saatlik gösterim kullanarak /B <start_time> ve /E <stop_time> bağımsız değişkenlerini kullanın. Örneğin, sürekli olarak yaklaşık 02:00:00'da görünen bir sorunu gideriyorsanız, SQLdiag'ı tanılama verilerini otomatik olarak 01:45'te toplamaya başlayacak ve otomatik olarak 03:00:00'da duracak şekilde yapılandırabilirsiniz.

/B ve /E bağımsız değişkenlerini başlangıç ve durdurma zamanını belirtmek için kullanın. Tam bir başlangıç ve bitiş tarihi ile saati belirtmek için 24 saat gösterimini kullanın ve genel biçim olarak yyyyMMdd_HH:mm:ss kullanın. Aşağıdaki örnek, veri toplama işlemini 01:45'te başlatır ve 3:00'te durdurur.

sqldiag /B 01:45:00 /E 03:00:00

Göreli bir başlangıç veya durdurma saati belirtmek için, başlangıç ve durdurma saatini ön ekleyip + aşağıdaki örnekte gösterildiği gibi tarih bölümünü (yyyyMMdd_) atlayın. Bu, SQLdiag'ın bilgi toplamaya başlamadan önce bir saat beklemesine neden olur, ardından durdurulup çıkmadan önce iki buçuk saat boyunca bilgi toplar:

sqldiag /B +01:00:00 /E +02:30:00

Göreli bir start_time belirtildiğinde, SQLdiag geçerli tarih ve saate göre bir saatte başlar. Göreli bir end_time belirtildiğinde, SQLdiag belirtilen start_time göre sona erer. Belirttiğiniz başlangıç veya bitiş tarihi ve saati geçmişteyse, SQLdiag başlangıç tarihini zorla değiştirir, böylece başlangıç tarihi ve saati gelecekte olur.

Bunun, seçtiğiniz başlangıç ve bitiş tarihleri üzerinde önemli etkileri vardır. Aşağıdaki örneği göz önünde bulundurun:

sqldiag /B +01:00:00 /E 08:30:00

Geçerli saat 08:00 ise, tanılama verilerinin toplanması başlamadan önce bitiş saati gerçekleşir. SQLdiag, başlangıç ve bitiş tarihlerini otomatik olarak geçmişte gerçekleştiği bir sonraki güne ayarladığından, bu örnekte tanılama koleksiyonu bugün saat 09:00'da başlar (göreli başlangıç saati şu andan itibaren 1 saat sonra kullanılarak +belirtilmiştir) ve ertesi sabah 08:30'a kadar toplamaya devam eder.

Günlük tanılamaları toplamak için SQLdiag'ı durdurma ve yeniden başlatma

SQLdiag'ı el ile başlatmak ve durdurmak zorunda kalmadan, verilen belirli bir tanılama kümesini günlük olarak toplamak için /L bağımsız değişkenini kullanın. Bağımsız değişken /LSQLdiag'ın zamanlanmış kapatmadan sonra otomatik olarak yeniden başlatılarak kesintisiz çalışmasına neden olur. Eğer /L belirtilmişse, SQLdiag, /E bağımsız değişkeniyle belirtilen bitiş zamanına ulaştığı için durur veya /X bağımsız değişkeni kullanılarak anlık görüntü modunda çalıştırıldığı için durursa, SQLdiag, çıkmak yerine yeniden başlatılır.

Aşağıdaki örnek, tanılama verileri toplandıktan sonra 03:00:00 ile 05:00:00 arasında otomatik olarak yeniden başlatmak için SQLdiag'ın sürekli modda çalıştırıldığını belirtir.

sqldiag /B 03:00:00 /E 05:00:00 /L

Aşağıdaki örnek , SQLdiag'ın 03:00:00'da tanılama verileri anlık görüntüsü aldıktan sonra otomatik olarak yeniden başlatmak için sürekli modda çalıştırıldığını belirtir.

sqldiag /B 03:00:00 /X /L

SQLdiag'ı hizmet olarak çalıştırma

SQLdiag'ı kullanarak tanılama verilerini uzun süre toplamak istediğinizde, SQLdiag'ın çalıştığı bilgisayarın oturumunu kapatmanız gerekebilir. Bunu hizmet olarak çalıştırabilirsiniz.

SQLdiag'ı hizmet olarak çalışacak şekilde kaydetme

Komut satırında /R bağımsız değişkenini belirterek SQLdiag'i hizmet olarak çalışacak şekilde kaydedebilirsiniz. Bu, SQLdiag'ı hizmet olarak çalışacak şekilde kaydeder. SQLdiag hizmeti adıdırSQLDIAG. SQLdiag'ı hizmet olarak kaydederken komut satırında belirttiğiniz diğer bağımsız değişkenler, hizmet başlatıldığında korunur ve yeniden kullanılır.

Varsayılan SQLDIAG hizmet adını değiştirmek için komut satırı bağımsız değişkenini /A kullanarak başka bir ad belirtin. SQLdiag, anlamlı hizmet adları oluşturmak için ile belirtilen herhangi bir /A örneği adına otomatik olarak DIAG$ ön ekini ekler.

SQLDIAG hizmetinin kaydını kaldırma

Hizmetin kaydını kaldırmak için /U bağımsız değişkenini belirtin. SQLdiag'ın hizmet olarak kaydının silinmesi, hizmetin Windows kayıt defteri anahtarlarını da siler.

SQLDIAG hizmetini başlatma veya yeniden başlatma

Hizmeti başlatmak veya yeniden başlatmak için, komut satırında sqldiag START komutunu çalıştırın SQLDIAG.

Bağımsız değişkenini kullanarak birden çok /A örneği çalıştırıyorsanız, hizmeti başlattığınızda komut satırına SQLdiag örneği adını da geçirebilirsiniz. Örneğin, Instance1 adlı bir SQLdiag örneği başlatmak için aşağıdaki söz dizimini kullanın:

sqldiag START /A Instance1

net start komutunu SQLDIAG hizmetini başlatmak için de kullanabilirsiniz.

SQLdiag'ı yeniden başlattığınızda, geçerli çıkış klasöründeki mevcut içeriği üzerine yazar. Bunu önlemek için, yardımcı program başlatıldığında çıkış klasörünü yeniden adlandırmak için komut satırında belirtin /N 2 .

SQLdiag hizmetinin duraklatılması desteklenmez.

SQLdiag'ın birden çok örneğini çalıştırma

Komut satırında belirterek aynı bilgisayarda birden çok /A <SQLdiag_application_name> örneği çalıştırın. Bu, aynı SQL Server örneğinden aynı anda farklı tanılama kümeleri toplamak için kullanışlıdır. Örneğin, basit veri toplamayı sürekli gerçekleştirmek için adlandırılmış bir SQLdiag örneğini yapılandırabilirsiniz. Ardından SQL Server'da belirli bir sorun oluşursa, varsayılan SQLdiag örneğini çalıştırarak bu sorunun tanılamalarını toplayabilir veya Microsoft Müşteri Destek Hizmetleri'nin bir sorunu tanılamak için sizden istediği bir dizi tanılamayı toplayabilirsiniz.

Kümelenmiş SQL Server örneklerinden tanılama verileri toplama

SQLdiag , kümelenmiş SQL Server örneklerinden tanılama verilerini toplamayı destekler. Kümelenmiş SQL Server örneklerinden tanılama toplamak için, yapılandırma dosyasında <Machine> öğesinin "." özniteliği olarak belirtildiğinden ve komut satırında /G bağımsız değişkenini belirtmediğinizden emin olun. Varsayılan olarak, yapılandırma dosyasında "." için name özniteliği belirtilir ve /G argümanı devre dışı bırakılır. Genellikle, kümelenmiş bir SQL Server örneğinden toplama yaparken yapılandırma dosyasını düzenlemeniz veya komut satırı bağımsız değişkenlerini değiştirmeniz gerekmez.

"." Makine adı olarak belirtildiğinde, SQLdiag kümede çalıştığını algılar ve kümede yüklü olan tüm SQL Server sanal örneklerinden tanılama bilgilerini aynı anda alır. Bilgisayarda çalışan yalnızca bir sanal SQL Server örneğinden tanılama bilgileri toplamak istiyorsanız, SQLdiag.xml içindeki <Machine> öğesinin name özniteliği için bu sanal SQL Server'ı belirtin.

Uyarı

Kümelenmiş SQL Server örneklerinden SQL Server Profiler izleme bilgilerini toplamak için, kümede yönetim paylaşımlarının (ADMIN$) etkinleştirilmesi gerekir.