我想在C#程序里获得一条SQL语句执行所用的时间,请问如何获得?数据库是MS SQLSERVER

解决方案 »

  1.   

    用profiler监控下吧。这个比较准确。
      

  2.   

    与SQL类似呀,用时间相减DATETIME DTSTRART=DATETIME.NOW;
    语句最后用TIMESPAN SP=DATETIME.NOW-DTSTART;
      

  3.   

    SQL 语句执行时间及IO情况查看
    http://blog.csdn.net/wufeng4552/archive/2009/08/19/4463567.aspx
      

  4.   

    啊,这样子都行啊,不是在SQL语句里处理的么?
      

  5.   

    用StopWatch类
    StopWatch sw=new StopWatch();
    sw.Start();
    .....SQL执行语句
    sw.Stop();
    sw.ElapsedMilliseconds.ToString();//花费的时间毫秒
      

  6.   

    CHECKPOINT
    GO
    DBCC FREEPROCCACHE 
    GO
    DBCC DROPCLEANBUFFERS 
    GO
    DBCC FREESYSTEMCACHE('ALL') ;
    GO
    SET Statistics IO ON
    GO
    SET Statistics TIME ON
    GO
    declare @b datetime,@e datetime
    set @b =getdate()
    select * from tbset @e =getdate()
    select datediff(ms,@b,@e)
    SET Statistics IO OFF
    GO
    SET Statistics TIME OFF
    GO
    DBCC DROPCLEANBUFFERS 從緩衝集區中移除所有的清除緩衝區 DBCC FREEPROCCACHE 
      

  7.   

    StopWatch在那个命名空间下,好像没找到
      

  8.   


    Dim sw As System.Diagnostics.Stopwatch = New Stopwatch()
    sw.Start()执行SQLsw.Stop()sw.Elapsed就是经过的时间上面是VB.NET的命令,找一下C#对应的stopwatch类就行了
    个人觉得没必要非常精确
      

  9.   

    在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能。
    set   statistics   profile   on
    set   statistics   io   on
    set   statistics   time   on
    go
    你执行的SQL语句
    go
    set   statistics   profile   off
    set   statistics   io   off
    set   statistics   time   off执行完后点消息即可。补充说明:set   statistics   io 检查查询所产生的读和写set   statistics   time 检查查询的运行时间当运行一sql语句,在消息中会显示如:SQL Server 分析和编译时间:
    CPU 时间 = 0 毫秒,占用时间 = 10 毫秒。
    SQL Server 分析和编译时间:
    CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
      

  10.   

    stopwatch属于  System.Diagnostics
      

  11.   

    net 2.0
    System.Diagnostics.Stopwatch stw = new System.Diagnostics.Stopwatch(); stw.Start();
    //sql 测试程序
     stw.Stop();
    Console.WriteLine("{0}{1}", stw.Elapsed.Seconds.ToString(), stw.Elapsed.Milliseconds.ToString());
      

  12.   

    Stopwatch 类  注意:此类在 .NET Framework 2.0 版中是新增的。 提供一组方法和属性,可用于准确地测量运行时间。 命名空间:System.Diagnostics
    程序集:System(在 system.dll 中)语法
    Visual Basic(声明) 
    Public Class Stopwatch
     
    Visual Basic(用法) 
    Dim instance As Stopwatch 
    C# 
    public class Stopwatch
     
    C++ 
    public ref class Stopwatch
     
    J# 
    public class Stopwatch
     
    JScript 
    public class Stopwatch
     备注
    Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间。Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwatch 的当前状态。使用 Start 可以开始测量运行时间;使用 Stop 可以停止测量运行时间。通过属性 Elapsed、ElapsedMilliseconds 或 ElapsedTicks 查询运行时间值。当实例正在运行或已停止时,可以查询运行时间属性。运行时间属性在 Stopwatch 运行期间稳固递增;在该实例停止时保持不变。默认情况下,Stopwatch 实例的运行时间值相当于所有测量的时间间隔的总和。每次调用 Start 时开始累计运行时间计数;每次调用 Stop 时结束当前时间间隔测量,并冻结累计运行时间值。使用 Reset 方法可以清除现有 Stopwatch 实例中的累计运行时间。Stopwatch 在基础计时器机制中对计时器的刻度进行计数,从而测量运行时间。如果安装的硬件和操作系统支持高分辨率性能的计数器,则 Stopwatch 类将使用该计数器来测量运行时间;否则,Stopwatch 类将使用系统计数器来测量运行时间。使用 Frequency 和 IsHighResolution 字段可以确定实现 Stopwatch 计时的精度和分辨率。Stopwatch 类为托管代码内与计时有关的性能计数器的操作提供帮助。具体说来,Frequency 字段和 GetTimestamp 方法可以用于替换非托管 Win32 API QueryPerformanceFrequency 和 QueryPerformanceCounter。注意 
    在多处理器计算机上,线程在哪个处理器上运行无关紧要。但是,由于 BIOS 或硬件抽象层 (HAL) 中的 bug,在不同的处理器上可能会得出不同的计时结果。若要为线程指定处理器关联,请使用 ProcessThread.ProcessorAffinity 方法。
     
      

  13.   

    感谢.NET
    C#和VB.NET就算语言不同也有很多共通类可用