SQL Server Profiler使用教程,通俗易懂才是王道(转载)

Stella981
• 阅读 318

  做开发,平时难免和数据库打交道,特别是写存储过程,对于我们这些不常写SQL的人来说是一件极其痛苦的事,每次写完运行总是有错,如果用的是本地数据库的话还好,可以在本机调试SQL,那如果在数据库在服务器上面,调试被禁用,那就悲剧了~

  最近,由于工作需求,写一个存储过程,有几十个参数,数据库在服务器上面,写完了,测试完查询语句没有问题,但是到了项目里面查询时就出错,很是气人!想到了用SQL Profiler这个工具,打开选择默认设置,开始跟踪,晕,海量数据涌来,看的头晕,根本找不到要跟踪的语句。后来,经过百度搜索和仔细研究,算是学会使用SQL Profiler了。下面和大家分享一下。

 一、SQL Server Profiler简介

SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:

  • 图形化监视SQL Server查询;
  • 在后台收集查询信息;
  • 分析性能;
  • 诊断像死锁之类的问题;
  • 调试T-SQL语句;
  • 模拟重放SQL Server活动;

也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler跟踪。

二、SQL Profiler的简单配置和使用

  不多说废话了,关于SQL Profiler的介绍网上多的是,大家自己找吧。下面说到实用的,开始动手操作吧!(注:本地数据库的就不用说了,可以调试运行,主要说数据库在服务器上面的情况。)

  首先说明一下SQL Server Express版本是没有SQL Profiler工具的,企业版有这个工具,其他版本没有用过。下面来看下SQL Profiler在什么地方,首先打开SQL Server Management Sutdio,点击菜单,Tools > SQL Server Profiler,如图:

SQL Server Profiler使用教程,通俗易懂才是王道(转载)

点击后,首先会出现登录界面,输入用户名密码后,会看到如下界面:

SQL Server Profiler使用教程,通俗易懂才是王道(转载)

第四行有一项Use the template,选择Standard,如果是本地数据库的话,访问数据库的只有你一个人,点击Run就可以了。如果在服务器上,访问数据的人很多,所以要对结果进行一些过了。然后,点击选项卡Events Selection,如图:

SQL Server Profiler使用教程,通俗易懂才是王道(转载)

可以看到Standard的默认选项,这个都不用管,选中复选框Show all columns,否则后面的HostName找不到。点击Column Filters...按钮,打开过滤选项页面:

SQL Server Profiler使用教程,通俗易懂才是王道(转载)

下拉找到HostName项,在Like里面加入自己的计算机名称,这样就只显示我们这台计算机发送的SQL了。

然后,点击OK,点击Run就开始跟踪了,之后你在你电脑上面进行的数据库访问,都会被记录下来。

注意:是在你电脑上面,你访问服务器上面的网站,数据库访问是在服务器上面进行的,不是在你的电脑上面。只有你调试运行的时候,才是从你的电脑访问服务器,才能被跟踪到。

跟踪结果如下:

SQL Server Profiler使用教程,通俗易懂才是王道(转载)

选中某条记录后就会显示执行的SQL,至于存储过程,我们可以清楚的看到传入的参数,还可以复制出来,进行调试。

如果记录过多,可以选择Edit > Find...下面的菜单,进行搜索。

 看到这里,是不是突然感觉很简单啊,呵呵,看了那么多教程,讲的东西挺多,搞半天找不到自己想要的东西,越整越烦!

三、建立自己的模版,方便下次使用

  如果每次都改计算机名称,很不方便,我们可以做一个自己的模版,下次使用时就不用再进行配置了。下面来看看如何建立自己的模版吧:

SQL Server Profiler使用教程,通俗易懂才是王道(转载)

如图,点击菜单,打开模版页面.如图所示:

SQL Server Profiler使用教程,通俗易懂才是王道(转载)

输入你自己的模版名称,如MyProfiler,然后勾选Base new template on existing one:,就是基于某个已存在的模版就行修改,我们依旧选择Standard,下面还有一个Use as default template for selected server type,就是设置为默认模版,勾选上后,我们每次新建跟踪的时候就会默认选中我们添加的这个模版,建议勾上。然后点击Events Selection选项卡,设置HostName就可以了。完成后保存就可以了。

然后,点击File > New trace...新建跟踪,会看到我们新建的模版,并且是默认选中的,此时我们直接点击Run就可以继续我们的工作了。

 转载来源:https://www.cnblogs.com/yunfeifei/p/4079490.html

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
2年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Stella981 Stella981
2年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Easter79 Easter79
2年前
SQL Server Profiler使用教程,通俗易懂才是王道(转载)
  做开发,平时难免和数据库打交道,特别是写存储过程,对于我们这些不常写SQL的人来说是一件极其痛苦的事,每次写完运行总是有错,如果用的是本地数据库的话还好,可以在本机调试SQL,那如果在数据库在服务器上面,调试被禁用,那就悲剧了~  最近,由于工作需求,写一个存储过程,有几十个参数,数据库在服务器上面,写完了,测试完查询语句没有问题,但是到了项目里面查
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这