Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
SQL Server PowerShell sağlayıcısını kullanarak SQL Server Genişletilmiş Olayları yönetebilirsiniz. XEvent alt klasörü SQLSERVER sürücüsü altında kullanılabilir. Aşağıdaki yöntemlerden birini kullanarak klasöre erişebilirsiniz:
Komut isteminde sqlps yazın ve ENTER tuşuna basın. cd xevent yazın ve ENTER tuşuna basın. Buradan cd ve dir komutlarını (veya Set-Location ve Get-ChildItem cmdlet'lerini) kullanarak sunucu adı ve örnek adına gezinme yapabilirsiniz.
Nesne Gezgini'nde örnek adını genişletin, Yönetim'i genişletin, Genişletilmiş Olaylar'a sağ tıklayın ve ardından PowerShell'i Başlat'a tıklayın. Bu, PowerShell'i aşağıdaki yolda başlatır:
PS SQLSERVER:\XEvent\ServerName\InstanceName>
Uyarı
PowerShell'i Genişletilmiş Olaylar altındaki herhangi bir düğümden başlatabilirsiniz. Örneğin, Oturumlar'a sağ tıklayıp PowerShell'i Başlat'a tıklayabilirsiniz. Bu, PowerShell'i Oturumlar klasöründe bir düzey daha derine başlatır.
Mevcut Genişletilmiş Olaylar oturumlarını ve bunların ilişkili olaylarını, hedeflerini ve koşullarını görüntülemek için XEvent klasör ağacına göz atabilirsiniz. Örneğin, PS SQLSERVER:\XEvent\ServerName\InstanceName> yoluna gidip cd sessions yazarsanız ve ENTER tuşuna basarsanız, ardından dir yazıp tekrar ENTER tuşuna basarsanız, o örnekte depolanan oturumların listesini görebilirsiniz. Ayrıca oturumun çalışıp çalışmadığını (ve durum buysa, ne kadar süreyle) ve oturumun örnek başlatıldığında başlayacak şekilde yapılandırılıp yapılandırılmadığını da görüntüleyebilirsiniz.
Olayları, bunların tahminlerini ve bir oturumla ilişkili hedefleri görüntülemek için, dizinleri oturum adıyla değiştirebilir ve ardından olaylar veya hedefler klasörünü görüntüleyebilirsiniz. Örneğin, varsayılan sistem durumu oturumuyla ilişkili olayları ve bunların koşullarını görüntülemek için PS SQLSERVER:\XEvent\ServerName InstanceName\\Sessions>yolundan cd system_health\events yazın, ENTER tuşuna basın, dir yazın ve enter tuşuna basın.
SQL Server PowerShell sağlayıcısı, Genişletilmiş Olaylar oturumlarını oluşturmak, değiştirmek ve yönetmek için kullanabileceğiniz güçlü bir araçtır. Aşağıdaki bölümde, Genişletilmiş Olaylar ile PowerShell betiklerini kullanmanın bazı temel örnekleri verilmiştir.
Örnekler
Aşağıdaki örneklerde aşağıdakilere dikkat edin:
Betikler PS SQLSERVER:\> isteminden çalıştırılmalıdır (komut istemine sqlps yazarak kullanılabilir).
Betikler SQL Server'ın varsayılan örneğini kullanır.
.ps1 uzantısıyla betiklerin kaydedilmesi gerekir.
PowerShell yürütme ilkesi betiğin çalışmasına izin vermelidir. Yürütme ilkesini ayarlamak için Set-Executionpolicy cmdlet'ini kullanın. (Daha fazla bilgi için get-help set-executionpolicy -detailed yazın ve ENTER tuşuna basın.)
Aşağıdaki betik , 'TestSession' adlı yeni bir oturum oluşturur.
#Script for creating a session.
cd XEvent
$h = hostname
cd $h
#Use the default instance.
$store = dir | where {$_.DisplayName -ieq 'default'}
$session = new-object Microsoft.SqlServer.Management.XEvent.Session -argumentlist $store, "TestSession"
$event = $session.AddEvent("sqlserver.file_written")
$event.AddAction("package0.callstack")
$session.Create()
Aşağıdaki betik, halka arabelleği hedefini önceki örnekte oluşturulan oturuma ekler. (Bu örnekte Alter yönteminin kullanımı gösterilmektedir. Oturumu ilk oluşturduğunuzda hedefi ekleyebileceğinizi unutmayın.)
#Script to alter a session.
cd XEvent
$h = hostname
cd $h
cd DEFAULT\Sessions
#Used to find the specified session.
$session = dir|where {$_.Name -eq 'TestSession'}
#Add the ring buffer target and call the Alter method.
$session.AddTarget("package0.ring_buffer")
$session.Alter()
Aşağıdaki betik, koşul ifadesi kullanan yeni bir oturum oluşturur. Bu durumda, oturum c:\temp.log dosyasının ne zaman yazıldığında (sqlserver.file_written olayı aracılığıyla) hakkında bilgi toplar.
#Script for creating a session.
cd XEvent
$h = hostname
cd $h
#Use the default instance.
$store = dir | where {$_.DisplayName -ieq 'default'}
$session = new-object Microsoft.SqlServer.Management.XEvent.Session -argumentlist $store, "TestSession2"
$event = $session.AddEvent("sqlserver.file_written")
#Construct a predicate "equal_i_unicode_string(path, N'c:\temp.log')".
$column = $store.SqlServerPackage.EventInfoSet["file_written"].DataEventColumnInfoSet["path"]
$operand = new-object Microsoft.SqlServer.Management.XEvent.PredOperand -argumentlist $column
$value = new-object Microsoft.SqlServer.Management.XEvent.PredValue -argumentlist "c:\temp.log"
$compare = $store.Package0Package.PredCompareInfoSet["equal_i_unicode_string"]
$predicate = new-object Microsoft.SqlServer.Management.XEvent.PredFunctionExpr -argumentlist $compare, $operand, $value
$event.SetPredicate($predicate)
$session.Create()
Security
Genişletilmiş Olaylar oturumu oluşturmak, değiştirmek veya bırakmak için ALTER ANY EVENT SESSION iznine sahip olmanız gerekir.
Ayrıca Bkz.
SQL Server PowerShell
system_health Oturumunu Kullanma
Genişletilmiş Olaylar Araçları