SQL Profiler是个很强大的工具, 分析原理的时候按顺序读读也还好的, 可是如果要分析一些比较复杂的情况, 就需要比较更多的一点东西了.

在这里介绍一种方法, 可以将像操作SQL的table一样的操作Profiler Trace, 这样就可以进行使用select这样的操作来查看自己感兴趣的信息了.

完成这样功能的方法是使用一个叫做fn_trace_gettable的内建函数.

select *
from fn_trace_gettable('c:\MyTraceFile.trc', default)

第一个参数很显然是磁盘上的profiler trace的路径.

第二个参数是应该被读取的文件的数量, default的值是-1, 意味着所有文件均要读取.

尽管你可以使用这个函数每次读取trace文件, 还有一个更好的方法, 那就是将文件中的数据导入到一张table中, 然后对表进行查询, 这样比每次都去读取文件要快许多.

方法如下:

select IDENTITY(BIGINT, 1, 1) AS RowNumber, *
into MyTraceTable
from fn_trace_gettable('D:\MyProfilerTrace.trc', default)
where 1 = 0  --just create the table without any data

一旦你创建好了表定义, 下一步就是把数据插入到表中.

insert into MyTraceTable
select *
from fn_trace_gettable('D:\MyProfilerTrace.trc', default)

额外添加

===========

读入表后, 可以尝试运行下面的语句来选择运行时间最长的语句或存储过程.

select top 50 T.RowNumber, TE.name,T.duration DurationMicroSeconds,T.TextData from MyTraceTable Tjoin sys.trace_events TE ON T.EventClass = TE.trace_event_id
where eventclass <> 15
order by T.duration
desc

在这里你可以看到行号. 用SQL profiler打开trace文件, 就可以定位到问题语句的上下文了.

参考资料:

Reading a SQL Profiler Trace file

http://sql2005ted.blogspot.com/2009/06/reading-sql-profiler-trace-file.html

如何将SQL Profiler Trace读入到SQL的表中?相关推荐

  1. flink sql 如何upsert 到一张hologres表中

    Flink Table 的三种 Sink 模式 作为计算引擎 Flink 应用的计算结果总要以某种方式输出,比如调试阶段的打印到控制台或者生产阶段的写到数据库.而对于本来就需要在 Flink 内存保存 ...

  2. 如何使用 SQL INSERT 语句将数据插入到表中

    文章目录 一.数据插入 1.1 插入完整的行 1.2 插入部分行 1.3 插入检索出的数据 二.从一个表复制到另一个表 三.小结 本文介绍如何使用 SQL INSERT 语句将数据插入到表中,如何用 ...

  3. SQL 汉字转拼音函数(转)+将表中汉字转拼音

    [叶子函数分享五十四]汉字转拼音函数 分类: SQL函数分享系列2011-03-30 22:10 290人阅读 评论(0) 收藏 举报 /* ----------------------------- ...

  4. ORA-01400: cannot insert NULL into | 通过SQL链接服务器 往Oracle库的表中 插入默认值问题

    ORACLE表中字段设置为 不为空,有设置默认值, 用sql数据库链接会提示"ORA-01400: cannot insert NULL into 表.... 解决方案: 把字段的 ON N ...

  5. 【SQL怎么写】查询同一张表中同一个ID对应最新时间的数据记录

    需求 同一张表中,怎么查询出同一个ID的最新记录,比如,某一个用户做过很多次修改,我只以最后一次提交记录为准,这时候是不是犯难了 1.数据准备 SET NAMES utf8mb4; SET FOREI ...

  6. SQL Server查询某个字段存在哪些表中

    一.查询SQL Server中所有的表 SQL语句:SELECT * FROM sys.tables name列表示所有的表名. 二.查询SQL Server中所有的列 SQL语句:SELECT * ...

  7. SQL Server 清空或删除所有数据库表中的数据

    方法一: --生成数据库脚本的方法最快,处理的也最好       sql2000企业管理器         --右键要清理的数据库         --所有任务         --生成SQL脚本   ...

  8. arcsde mysql_通过SQL直接插入、修改ArcGIS SDE空间表中的数据

    myeclipse 8.5安装freemarker插件方法 1. 下载freemarker最新版本,目前本人下载时最新版本是:freemarker-ide-0.9.14.zip, ide版本的free ...

  9. SQL Server查询某字段在哪些表中

    2019独角兽企业重金招聘Python工程师标准>>> select a.name 表名,b.name 列名 from sys.objects a,sys.columns b whe ...

最新文章

  1. C语言中的CONST使用
  2. 慢SQL,压垮团队的最后一根稻草No.92
  3. Win64 驱动内核编程-8.内核里的其他常用
  4. java.swing调难度_Java Swing BorderLayout调整了难度
  5. 玩玩自动化测试之selenium篇
  6. 强大的.NET反编译工具Reflector及插件(转载)
  7. 经典实用SQL语句大全汇总
  8. 前端学习(607):javascript导读
  9. SQLserver数据库反编译生成Hibernate实体类和映射文件
  10. python 生成器_Python生成器中的GeneratorExit
  11. MATLAB学习笔记(十一)
  12. Objective-C语法与Cocoa框架
  13. ulipad python配置
  14. 安川服务器显示fn001,安川伺服驱动器功能参数设置
  15. java 贝叶斯抠图_毕业论文 基于贝叶斯算法的自动抠图程序设计与实现.doc
  16. 【预测模型-RF预测】基于随机森林算法实现数据回归预测附matlab代码
  17. 信息技术在园林绿化技师试题测试中的应用
  18. Python-pvm解释器运行程序原理
  19. 基于AD9850的多功能信号发生器
  20. 2018硅谷巨头七大丑闻算总账

热门文章

  1. 大小写 字符串_C# 读取环境变量,和字符串大小写转换
  2. sublime Text3安装可以使xml格式化的插件
  3. layui.use 在a标签内onclick调用
  4. Zigbee 学习计划——第3天——熟悉CC2530的基本例程(续)
  5. Linux命令速查手册
  6. 启动级别:init 0,1,2,3,4,5,6
  7. “你所知道的word2vec都是错的”:论文和代码天壤之别,是普遍现象了?
  8. 数据集查找神器!100个大型机器学习数据集都汇总在这了 | 资源
  9. 霍金临终论文公开:揭秘沉入黑洞的信息去向
  10. 干货分享 | 自然语言处理及词向量模型介绍(附PPT)