我调试的存储过程,而现在我很感兴趣,在什么跑什么样的顺序以及相对于快的东西如何运行,哪些可以与忙里偷闲,并导致经济放缓哪些参数。
所以,我捕捉到一丝值得的几分钟。问题是,有太多的东西,我需要将它缩小。如果我做File -> Save As
,我得到了以下选项:
现在,这些都是不错的选择,但我真正想要的是一个表格格式,如CSV。我认为,在SP跟踪逗号大概会弄乱CSV格式。我很乐意用别的东西,比如||
作为分隔符。
一旦我有表格格式,我可以使用grep
等过滤下来,然后轻松地与Python处理它,看看具体的事情,我想。我开始解析与脚本的XML文件,但发现自己在跟踪XML
文件格式花费太多时间(以前没有使用过lxml
库)。
所以......有没有更简单的方法?可我至少把它复制到Excel不知何故?
如果你保存它到一个跟踪表;你可以在SQL Server中的表,这将让你操纵它到你的心内容的数据;包括如果仍然需要为之倾倒出来的CSV。文本数据列在表中充分体现。
如果您选择保存→跟踪表。系统将提示您对表和数据库的名称。比方说,你叫它ProfilerTemp数据库中的划伤。
进入那些;您可以通过查询该表
select * from scratch.dbo.ProfilerTemp
你会看到在表中的跟踪窗口的一切。如果你没有过滤下降到只有存储过程,并希望他们只是在选择
Select textdata from [Scratch].[dbo].[ProfilerTemp]
where eventclass = 10
And textdata like 'exec %'
and not cast(TextData as nvarchar(max))= 'exec sp_reset_connection'
这种过滤掉非过程调用和您的任何连接重置。您可能需要添加这取决于你正在尝试做更多的过滤器。
如果你想这个作为一个文本文件;选择查询 - 结果文件并运行查询。这将提示输入文件名,并给您的参数文本为文本文件。
TL; DR:复制到一个文本编辑器,手动准备,然后粘贴到Excel中。
我与SQL Server的经验非常少,所以我不知道这是否会为别人打工,但它确实对我来说:
(N'(''')?[^']*?)\r\n(([^']*?)\r\n)?(([^']*?)\r\n)?
$1 $4 $6
这将清除SQL脚本中的所有换行符。
继续做“全部替换”,直到没有找到结果。(Batch(Starting|Completed)[^\\]*?)\r\n
$1
这将清除更多的SQL的东西换行。再次,不断替换,直到没有结果。\r\nset
set
这将清除审核登录脚本中的所有换行符我有一堆包含我需要分析死锁跟踪事件SQL事件探查器跟踪文件。最后我把它们转换成使用SQL事件探查一个XML文件,然后阅读与Python是XML文件,并使用lxml
和pandas
库。
由于数据在大熊猫Dataframe
结束了,你可以很容易地将其转换为CSV,Excel等或在Python分析它(如果你熟悉的熊猫)。
该脚本可以作为一个gist。它是专门写了死锁跟踪文件,因为我没有任何其他的痕迹可用。换句话说,你可能需要调整它一点点地服务于你的目的。如果XML文件较大(几百MBS)不要担心;脚本使用iterparse()
,这意味着该文件将不会被读入内存,只有相关内容将被捕获。例如。约的xdl
文件220MB在不到13秒解析。
保存跟踪文件的XML(扩展xdl
):
确保你在一个文件中选择该选项的所有事件。