使用SqlServer_Profiler跟踪慢查询

 

 

使用SQLProfiler(事件探查器)跟踪数据库操作及慢查询

1:应用程序连接SQL SERVER数据库服务器;

2:打开SQL Profiler开启数据库事件跟踪;

(1):打开SQL Server Management Studio,选择 “工具”—“SQL Server Profiler”,如下图:

 

 

 

(2): 连接到指定服务器,并制定跟踪计划;

 

 

选择需要连接的服务器之后;

默认弹出跟踪属性设置界面,

可以设置跟踪结果保存到文件或者保存到表,并能设置跟踪的停止时间;如下图:

 

 

 

在事件选择框中选择要跟踪的事件,如下图:

 

 

具体事件类别请参考。

上图可以看出,可以跟踪指定的应用程序,指定的机器名,指定的数据库登录名,能记录所有应用程序发出的SQL操作请求以及执行开始时间,结束时间,持续时间等;

在上图的列筛选器中对需要跟踪的事件设置筛选条件;如下图:

 

 

如有多个应用程序或者多个人同时登陆连接到这台数据库服务器,可以在这里进行筛选设置,只跟踪指定机器,指定应用程序,指定数据库登录用户的所有数据库操作;

具体跟踪各事件列的含义请参考:

点运行之后,可自动运行,无须值守,可自动运行到之前设置跟踪计划时指定的停止时间,停止跟踪;

 

 

 

(3):运行应用程序,进行测试操作;

应用程序包括:所有连接数据库的应用程序都可以,无论是C/S架构的软件,还是B/S架构的浏览器,或者数据库本身,所有连接到数据库,对数据库做的任何操作都可以记录,并可以根据设置的跟踪条件进行筛选;

如设置超过指定时间的查询:

 

 

(4):对跟踪结果进行分析;如下图:

 

 

如上图所示,已经记录了执行的SQL查询语句,开始时间,结束时间,持续时间,查询的应用程序名,发起人等;

注:有时候可能显示时间都0,此时可以工具——>选项中对时间单位进行设置。

 

 

 

 

附录:

事件类别

 

Broker 事件类别包括由 Service Broker 生成的事件类。

 

Cursors 事件类别包括由游标操作生成的事件类。

 

CLR 事件类别 包括通过执行 .NET 公共语言运行时 (CLR) 对象而生成的事件类。

 

Database 事件类别包括自动增大或收缩数据文件或日志文件时生成的事件类。

 

Deprecation 事件类别包括与不推荐使用的情况相关的事件。

 

Errors and Warnings 事件类别(数据库引擎)包括返回 SQL Server 错误或警告时产生的事件类。例如,编译存储过程时发生的错误或 SQL Server 中的异常错误。

 

Full Text 事件类别包括启动、中断或停止全文搜索时生成的事件类。

 

Locks 事件类别包括在获取、取消、释放锁时或者在对锁执行一些其他操作时生成的事件类。

 

Objects 事件类别包括在创建、打开、关闭或删除数据库对象时生成的事件类。

 

OLEDB 事件类别包括由 OLE DB 调用生成的事件类。

 

Performance 事件类别包括在执行 SQL 数据操作语言 (DML) 运算符时生成的事件类。

 

Progress Report 事件类别包括 Progress Report: Online Index Operation 事件类。

 

Scans 事件类别包括扫描表和索引时生成的事件类。

 

Security Audit 事件类别包括用于审核服务器活动的事件类。

 

Server 事件类别包含常规服务器事件。

 

Sessions 事件类别包括在连接和断开 SQL Server 实例的客户端时生成的事件类。

 

Stored Procedures 事件类别包括执行存储过程时生成的事件类。

 

Transactions 事件类别包括执行 Microsoft 分布式事务处理协调器事务时或写入事务日志时生成的事件类。

 

TSQL 事件类别包括执行从客户端传递到 SQL Server 实例的 Transact-SQL 语句时生成的事件类。

 

User-Configurable 事件类别包括可以定义的事件类。

详情请参考:http://technet.microsoft.com/zh-cn/library/ms175481(v=sql.90).aspx

 



 

转载于:https://www.cnblogs.com/ai594ai/p/7883159.html

【赛迪网-IT技术报道】SQL Server数据库查询速度的原因有很多,常见的有以下几种:   1、没有索引或者没有用到索引(这是查询最常见的问题,是程序设计的缺陷)     2、I/O吞吐量小,形成了瓶颈效应。     3、没有创建计算列导致查询不优化。     4、内存不足     5、网络速度     6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)     7、锁或者死锁(这也是查询最常见的问题,是程序设计的缺陷)     8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。     9、返回了不必要的行和列     10、查询语句不好,没有优化 ●可以通过以下方法来优化查询 : 1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要。 2、纵向、横向分割表,减少表的尺寸(sp_spaceuse) 3、升级硬件 4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段。 5、提高网速。 6、扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。 配置虚拟内存:虚拟内存大小应基于计算机上并发运行的服务进行配置。运行 Microsoft SQL Server? 2000时,可考虑将虚拟内存大小设置为计算机中安装的物理内存的1.5倍。如果另外安装了全文检索功能,并打算运行Microsoft搜索服务以便执行全文索引和查询,可考虑:将虚拟内存大小配置为至少是计算机中安装的物理内存的3倍。将SQL Server max server memory服务器配置选项配置为物理内存的1.5倍(虚拟内存大小设置的一半)。 7、增加服务器CPU个数;但是必须 明白并行处理串行处理更需要资源例如内存。使用并行还是串行程是MsSQL自动评估选择的。单个任务分解成多个任务,就可以在处理器上运行。例如耽搁查询 的排序、连接、扫描和GROUP BY字句同时执行,SQL SERVER根据系统的负载情况决定最优的并行等级,复杂的需要消耗大量的CPU的查询最适合并行处理。但是更新操作UPDATE,INSERT, DELETE还不能并行处理。 8、如果是使用like进行查询的话,简单的使用index是不行的,但是全文索引,耗空间。 like ''a%'' 使用索引 like ''%a'' 不使用索引用 like ''%a%'' 查询时,查询耗时和字段值总长度成正比,所以不能用CHAR类型,而是VARCHAR。对于字段的值很长的建全文索引。 9、DB Server 和APPLication Server 分离;OLTP和OLAP分离 10、分布式分区视图可用于实现数据库服务器联合体。 联合体是一组分开管理的服务器,但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制能够扩大一组服务器,以支持大型的多层 Web 站点的处理需要。有关更多信息,参见设计联合数据库服务器。(参照SQL帮助文件''分区视图'') a、在实现分区视图之前,必须先水平分区表 b、 在创建成员表后,在每个成员服务器上定义一个分布式分区视图,并且每个视图具有相同的名称。这样,引用分布式分区视图名的查询可以在任何一个成员服务器上 运行。系统操作如同每个成员服务器上都有一个原始表的复本一样,但其实每个服务器上只有一个成员表和一个分布式分区视图。数据的位置对应用程序是透明的。 11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收缩数据和日志 DBCC SHRINKDB,DBCC SHRINKFILE. 设置自动收缩日志.对于大的数据库不要设置数据库自动增长,它会降低服务器的性能。 在T-sql的写法上有很大的讲究,下面列出常见的要点:首先,DBMS处理查询计划的过程是这样的:   1、 查询语句的词法、语法检查     2、 将语句提交给DBMS的查询优化器     3、 优化器做代数优化和存取路径的优化     4、 由预编译模块生成查询规划     5、 然后在合适的时间提交给系统处理执行     6、 最后将执行结果返回给用户。 其次,看一下SQL SERVER的数据存放的结构:一个页面的大小为8K(8060)字节,8个页面为一个盘区,按照B树存放。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值