profiler加入计划任务

创建profiler的存储过程:

USE [xxxDB]
GO

/****** Object:  StoredProcedure [dbo].[CreateProfile]    Script Date: 2015/12/16 17:23:32 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE proc [dbo].[CreateProfile]
as

-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @tracefile nvarchar(256)
set @maxfilesize = 500
--设置最大跟踪文件的大小500M
set @tracefile = ‘d:\tracefile\‘+convert(char(8),getdate(),112)
-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
-- will be appended to the filename automatically. If you are writing from
-- remote server to local drive, please use UNC path and make sure server has
-- write access to your network share

exec @rc = sp_trace_create @TraceID output, 0, @tracefile, @maxfilesize, NULL
-- 创建跟踪
if (@rc != 0) goto error

-- Client side File and Table cannot be scripted

-- Set the events
--设置跟踪事件
-- sp_trace_setevent [ @traceid = ] trace_id  , [ @eventid = ] event_id , [ @columnid = ] column_id , [ @on = ] on 其中on=1 开启 on=0 停止 on=2 关闭
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 10, 1, @on
exec sp_trace_setevent @TraceID, 10, 9, @on
exec sp_trace_setevent @TraceID, 10, 2, @on
exec sp_trace_setevent @TraceID, 10, 4, @on
exec sp_trace_setevent @TraceID, 10, 8, @on
exec sp_trace_setevent @TraceID, 10, 11, @on
exec sp_trace_setevent @TraceID, 10, 12, @on
exec sp_trace_setevent @TraceID, 10, 13, @on
exec sp_trace_setevent @TraceID, 10, 14, @on
exec sp_trace_setevent @TraceID, 10, 16, @on
exec sp_trace_setevent @TraceID, 10, 17, @on
exec sp_trace_setevent @TraceID, 10, 18, @on
exec sp_trace_setevent @TraceID, 10, 35, @on
exec sp_trace_setevent @TraceID, 10, 49, @on
exec sp_trace_setevent @TraceID, 12, 1, @on
exec sp_trace_setevent @TraceID, 12, 9, @on
exec sp_trace_setevent @TraceID, 12, 11, @on
exec sp_trace_setevent @TraceID, 12, 4, @on
exec sp_trace_setevent @TraceID, 12, 8, @on
exec sp_trace_setevent @TraceID, 12, 12, @on
exec sp_trace_setevent @TraceID, 12, 13, @on
exec sp_trace_setevent @TraceID, 12, 14, @on
exec sp_trace_setevent @TraceID, 12, 16, @on
exec sp_trace_setevent @TraceID, 12, 17, @on
exec sp_trace_setevent @TraceID, 12, 18, @on
exec sp_trace_setevent @TraceID, 12, 35, @on
exec sp_trace_setevent @TraceID, 12, 49, @on

-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

set @bigintfilter = 4000000
exec sp_trace_setfilter @TraceID, 13, 0, 4, @bigintfilter

-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1

-- display trace id for future references
select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc

finish: 

GO

结束profiler的存储过程:

Create proc [dbo].[StopProfile]
as

declare @traceid int

select @traceid = id
from sys.traces
where path like ‘d:\tracefile%‘
-- path 为跟踪文件的存储路径

exec sp_trace_setstatus @traceid,0

exec sp_trace_setstatus @traceid,2

具体profiler的开启关闭的时间,可以在sqlserver代理的作业中根据需要更改。

时间: 2024-12-24 23:13:23

profiler加入计划任务的相关文章

SQL Server 执行计划缓存

原文:SQL Server 执行计划缓存 标签:SQL SERVER/MSSQL SERVER/数据库/DBA/内存池/缓冲区 概述 了解执行计划对数据库性能分析很重要,其中涉及到了语句性能分析与存储,这也是写这篇文章的目的,在了解执行计划之前先要了解一些基础知识,所以文章前面会讲一些概念,学起来会比较枯燥,但是这些基础知识非常重要. 目录 概述 基础概念 怎样缓存执行计划 SQL Server自动删除执行计划 重新编译执行计划 测试 执行计划相关系统视图 手动清空缓存执行计划 测试索引更改对执

了解SQL Server执行计划

当需要分析某个查询的效能时,最好的方式之一查看这个查询的执行计划.执行计划描述SQL Server查询优化器如何实际运行(或者将会如何运行)一个特定的查询. 查看查询的执行计划有几种不同的方式.它们包括: SQL Server查询分析器里有一个叫做”显示实际执行计划”的选项(位于”查询”下拉菜单中).如果打开了这个选项,那么无论何时在查询分析器中运行一个查询,都会得到一个显示在单独窗口的查询执行计划(以图形的格式). 如果只是想看下执行计划而不想运行查询,那么可以选择”显示预估的执行计划”选项(

SQL Profiler工具简介

SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问题: 调试T-SQL语句: 模拟重放SQL Server活动: 也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动.这样的活动被称为Profiler跟踪. 1.Profiler跟踪 从开始=>所有程序=>Microsoft SQL Server 2008=>性能工具打开Profiler工具,也可以打开S

执行计划的重用

当查询被提交时,SQL Server检查过程缓冲中匹配的执行计划,如果没有找到,SQL Server执行查询编译和优化以生成新的执行计划. 如果执行计划存在于缓冲中,它在私有的执行上下文中重用,这节约了CPU的编译和优化周期. 具有不同过滤条件的相同查询提交到SQL Server时,如: SELECT * FROM Person WHERE Id = 1 当这个查询被提交时,优化器创建一个执行计划并将其存储在过程缓冲中以被将来重用.如果这个查询使用不同的过滤条件,如:WHERE Id = 2重新

SqlServer 中如何查看某一个Sql语句是复用了执行计划,还是重新生成了执行计划

我们知道SqlServer的查询优化器会将所执行的Sql语句的执行计划作缓存,如果后续查询可以复用缓存中的执行计划,那么SqlServer就会为后续查询复用执行计划而不是重新生成一个新的执行计划,因为复用执行计划的性能比生成执行计划的性能要高很多,所以SqlServer的这一特性可以大大提高Sql语句的执行效率.特别是对于存储过程,因为存储过程的执行计划是在存储过程第一次执行的时候生成的,存储过程的执行计划生成后就会被缓存到SqlServer的执行计划列表中,如果以后存储过程再被执行,那么存储过

[网站性能3]SqlServer中Profiler的使用

原文链接:http://www.cnblogs.com/caishuhua226/p/3838060.html   http://www.cnblogs.com/lyhabc/articles/2946938.html http://www.cnblogs.com/lipeng0824/p/4417581.html(还需要学习) 1)菜单路径:开始--程序--Microsoft SQL Server 2008--性能工具--SQL Server Profiler 或者在SSMS里打开,工具--S

SQL Server Profiler工具

一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问题: 调试T-SQL语句: 模拟重放SQL Server活动: 也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动.这样的活动被称为Profiler跟踪. 1.Profiler跟踪 从开始=>所有程序=>Microsoft SQL Server 2008=>性能工具

Query Profiler 和Explain 用法详解

一.Query Profiler  MySQL 的Query Profiler 是一个使用非常方便的Query 诊断分析工具,通过该工具可以获取一条Query 在整个执行过程中多种资源的消耗情况,如CPU,IO,IPC,SWAP 等,以及发生的PAGE FAULTS,CONTEXT SWITCHE 等等,同时还能得到该Query 执行过程中MySQL 所调用的各个函数在源文件中的位置. 默认的情况下,Query Profiler的功能并没有打开,需要手动开启.可以通过如下方法查看当前mysql服

了解Sql Server的执行计划

前一篇总结了Sql Server Profiler,它主要用来监控数据库,并跟踪生成的sql语句.但是只拿到生成的sql语句没有什么用,我们可以利用这些sql语句,然后结合执行计划来分析sql语句的性能问题,这才是我们的最终目的,那么如何使用执行计划呢?我准备从以下几点来总结. 如何启动执行计划 执行计划结果要看什么 Sql Server的五种查找方式 查看更具体的执行过程 如何启动执行计划 运行一条sql,并且在工具栏中选中'Include Actual Execution Plan'按钮,此