Criando um arquivo de trace com PowerShell via SMO

Não muito diferente do artigo original com .NET, com PowerShell também conseguimos criar um script simples para gerar um arquivo de trace de uma determinada instancia do SQL Server.

# Referências
[void][system.reflection.assembly]::loadfrom("C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll")
[void][system.reflection.assembly]::loadfrom("C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfoExtended.dll")

function Get-Date2(){
    [System.DateTime]::UtcNow
}

$template = "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Profiler\Templates\Microsoft SQL Server\100\Tuning.tdf"

$date = Get-Date

$file = "C:\Temp\Trace$($date.Year)-$($date.Month)-$($date.Day) $($date.Hour)-$($date.Minute)-$($date.Second).trc"

$conn = new-object Microsoft.SqlServer.Management.Common.SqlConnectionInfo

$conn.ServerName = "Dalilah"

$traceReader = new-object Microsoft.SqlServer.Management.Trace.TraceServer

$traceReader.InitializeAsReader($conn, $template)

$traceFile = new-object Microsoft.SqlServer.Management.Trace.TraceFile

$traceFile.InitializeAsWriter($traceReader, $file)

$timeout = (Get-Date2).AddSeconds(30)

while ($traceFile.Write() -eq $TRUE -and $timeout -gt (Get-Date2)) { }

$traceFile.Close()

$traceReader.Close()

E o resultado:

Arquivo de trace gerado com PowerShell via SMO

Anúncios

Um pensamento sobre “Criando um arquivo de trace com PowerShell via SMO

  1. Pingback: Trabalhando com SMO – Resumo « SQL From Hell.com

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s