Readtrace : relecture RML (SQL Server Profiler 2012)

En attendant que Microsoft nous propose une mise à jours de « Readtrace » voici une solution de contournement pour traiter les fichiers .trc en provenance du Profiler SQL 2012. Cette méthode est proposée par Gianluca Sartori sur le site spagettidba.com : http://spaghettidba.com/2012/11/08/more-on-converting-trace-files/.

## =============================================
## Author:      Gianluca Sartori - @spaghettidba
## Create date: 2012-11-07
## Description: Changes the version information
##              in the header of a SQL Server trace
## =============================================
cls
# Enter your filename here
$fileName = "somefile.trc"
# The version information we want to write: 0x0A = 10 = SQLServer 2008
[Byte[]] $versionData = 0x0A
# The offset of the version information in the file
$offset = 390
[System.IO.FileMode] $open = [System.IO.FileMode]::OpenOrCreate
$stream = New-Object System.IO.FileStream -ArgumentList $fileName, $open
$stream.Seek($offset, [System.IO.SeekOrigin]::Begin);
$stream.Write($versionData, 0, $versionData.Length);
$stream.Close()


Il s’agit en fait, d’un octet dans le fichier trace qui identifie la version SQL d’origine. Readtrace ne connaissant pas encore SQL 2012, nous allons lui faire croire qu’il s’agit d’une version 2008 R2. Il y a très peut de changement dans le format de la trace, surtout si l’on reste sur la trace standard par défaut pour l’utilisation de Readtrace.

J’ai eu l’occasion de tester ce script, et il marche parfaitement et m’a permis de traiter un fichier profiler (« .trc »). Espérons tout de même que Microsoft nous propose rapidement une nouvelle version de cette outils fabuleux !!!

Voir le post sur l’utilisation de Readtrace : Utilisation de Readtrace.

1 comment to Readtrace : relecture RML (SQL Server Profiler 2012)

Leave a Reply