2017-01-31 74 views
1

我已经在SQL Server 2016分析器中捕获了一个跟踪文件,并希望使用readtrace和reporter来可视化SQL摘要。我可以处理在该RML安装中在SQL Server 2008中捕获的跟踪文件。然而,当我尝试处理2016年跟踪文件我得到以下错误:SQL Server 2016 readtrace rml工具

01/31/17 08:45:11.227 [0X00004628] Attempting DOD5015 removal of [c:\temp\traces\trc2_out\ReadTrace.log] 
01/31/17 08:45:11.231 [0X00004638] I/O Completion manager started 
01/31/17 08:45:11.256 [0X00004628] Readtrace a SQL Server trace processing utility. 
Version 9.04.0051 built for x64. 
Copyright ⌐ 1997-2014 Microsoft. All Rights Reserved 
01/31/17 08:45:11.259 [0X00004628]    Computer: XXX 
01/31/17 08:45:11.260 [0X00004628]   Base Module: C:\Program Files\Microsoft Corporation\RMLUtils\ReadTrace.exe 
01/31/17 08:45:11.261 [0X00004628]   Process Id: 17956 
01/31/17 08:45:11.262 [0X00004628] Active proc mask(0): 0x00000001 
01/31/17 08:45:11.263 [0X00004628]   Architecture: 9 
01/31/17 08:45:11.264 [0X00004628]   Page size: 4096 
01/31/17 08:45:11.265 [0X00004628]     CPUs: 1 
01/31/17 08:45:11.265 [0X00004628]  Processor groups: 1 
01/31/17 08:45:11.266 [0X00004628]   Highest node: 0 
01/31/17 08:45:11.269 [0X00004628] Proximity: 00 Node: 00 
01/31/17 08:45:11.270 [0X00004628] --------------------------------------- 
01/31/17 08:45:11.271 [0X00004628]    Group: 0 
01/31/17 08:45:11.272 [0X00004628] --------------------------------------- 
01/31/17 08:45:11.273 [0X00004628]   Package mask: 0x00000001 
01/31/17 08:45:11.273 [0X00004628]   Processor(s): 0x00000001 Function units: Separated 
01/31/17 08:45:11.274 [0X00004628]   Processor(s): 0x00000001 assigned to Numa node: 0 
01/31/17 08:45:11.275 [0X00004628] Current time bias: -60 minutes -1.00 hours DST Standard 
01/31/17 08:45:11.276 [0X00004628] -Itrc2c.trc 
01/31/17 08:45:11.277 [0X00004628] -otrc2_out 
01/31/17 08:45:11.280 [0X00004628] -SXXX\XXX 
01/31/17 08:45:11.318 [0X00004628] Using language id (LCID): 1024 [English_United States.1252] for character formatting with NLS: 0x0006020E and Defined: 0x0006020E 
01/31/17 08:45:11.321 [0X00004628] Attempting to cleanup existing RML files from previous execution 
01/31/17 08:45:11.322 [0X00004628] Using extended RowsetFastload synchronization 
01/31/17 08:45:11.323 [0X00004628] Establishing initial database connection 
01/31/17 08:45:11.323 [0X00004628] Server: XXX\XXX 
01/31/17 08:45:11.324 [0X00004628] Database: PerfAnalysis 
01/31/17 08:45:11.325 [0X00004628] Authentication: Windows 
01/31/17 08:45:11.385 [0X00004628] Using SQLOLEDB version 11.0.6518.0 
01/31/17 08:45:11.394 [0X00004628] Connected to SQL Server Version, Major: 13, Minor: 0, Build: 4001 
01/31/17 08:45:11.395 [0X00004628] Creating or clearing the performance database 
01/31/17 08:45:11.759 [0X00004628] The major version number (13) in the trace file header is not a supported file version. 
01/31/17 08:45:11.763 [0X00004628] ERROR: Read of file header for file c:\temp\traces\trc2c.trc failed with operating system error 0x8007000D (The data is invalid) 

看来跟踪文件具有不能通过readtrace处理的格式不正确。有没有解决方案?有没有其他方法来获得我的跟踪文件的统计概览?我知道跟踪文件已被弃用,应该使用扩展事件。扩展事件现在不是一个选项。

+0

你为什么试图在2008工具中使用2016跟踪文件?你有没有下载[最新版本?]。此外,Profiler本身已被弃用,你想要什么可以通过dmvs,扩展事件和已经是SQL Server的一部分的报告 –

+1

我已经安装了https://www.microsoft.com/en-us/download/confirmation.aspx ?id = 4511这是最新版本。 –

回答

0

需要修改跟踪文件的标题以供ReadTrace处理。我使用找到的的powershell代码。

## ============================================= 
## 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()