用 SqlProfiler 跟踪超时的语句

来源:互联网 发布:手机淘宝怎么清理缓存 编辑:程序博客网 时间:2024/04/30 23:26

超时的语句, 直接用脚本无法查询其执行情况, 只能用 sqlprofiler 来跟踪了。

测试程序:

using System;using System.Data.SqlClient;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            string connString = @"data source=(local)\sqlserver2005;initial catalog=tempdb;user id=dba;password=xxx;";            string sql = "WAITFOR DELAY '00:00:05'";    //等待5秒            try            {                using (SqlConnection conn = new SqlConnection(connString))                {                    conn.Open();                    SqlCommand cmd = new SqlCommand(sql, conn);                    cmd.CommandTimeout = 10;     //第1次超时设置为 2 秒, 第2次改为10秒。默认值为30秒                    cmd.ExecuteNonQuery();                }            }            catch (Exception ex)            {                Console.WriteLine(ex.Message);            }            Console.WriteLine("End");            Console.Read();        }    }}

SqlProfiler:


程序中第1次会产生异常, 执行 2 秒就退出了;第2次正常执行, 耗时 5 秒。但这两次都能捕获到相应的情况。


CPU:事件所使用的CPU时间总计(以毫秒为单位)READ:服务器代表事件执行的逻辑磁盘读取数WRITE:服务器代表事件执行的物理磁盘写入数DURATION:事件花费的时间总计(以毫秒为单位)


0 0
原创粉丝点击