代码之家  ›  专栏  ›  技术社区  ›  Mike Fielden

如何在SqlServer Management Studio 2005中显示总运行时间?

  •  1
  • Mike Fielden  · 技术社区  · 17 年前

    我通常不使用Sql Server Management Studio,我通常使用Linqpad来运行我所有的数据库查询。不管怎样。…我的老板似乎认为存储过程“比linq快得多”。

    因此,为了测试这一点,我想运行一个简单的存储过程,并显示对相等的linq语句运行所需的时间。

    关于如何实现这一点,有什么好主意吗?我相信你们(和女孩们)以前也遇到过这种情况。

    您对如何将其与linq语句的运行时进行比较有什么想法吗?

    编辑: 让我澄清一些事情;首先,当我的老板说“linq”时,我只能假设她是在对Sql说linq。其次,我愿意尝试一切可能的方法来检验这一理论。

    5 回复  |  直到 17 年前
        1
  •  3
  •   Cameron MacFarland    17 年前

    你的老板说得对,存储过程就像编译代码,而LINQ(使用SQL)更像解释代码。

    但是。..使用存储过程会失去灵活性。此外,你是否经常运行它们,每分钟超过10000次?如果没有,你就不会真正注意到区别。

    许多因素都会影响查询速度,其中存储过程与自由形式查询的影响最小。在担心将所有内容存储为过程之前,我会更多地担心数据库结构和索引等问题。

        2
  •  1
  •   George Mastros    17 年前

    我通常为此创建一个变量。前任:

    Declare @Start DateTime
    Set @Start = GetDate()
    
    Exec YourStoredProcedureHere
    
    Select DateDiff(Millisecond, @Start, GetDate())
    
        3
  •  1
  •   Jeremy French    17 年前

    我认为他所要求的不是一种记录时间的方法,而是更像是一些现实、有效的测试,以存储过程的形式运行,而不是Linq。

        4
  •  0
  •   Steven Robbins    17 年前

    你应该能够使用 SQL Profiler 跟踪这两个查询并查看差异。使用这种方法,您的计时将在同一个地方完成,而不是试图将TSql计时与C#中LINQ查询的计时进行比较。

        5
  •  0
  •   Mike Hofer    17 年前

    “存储过程比LINQ快得多”的说法有点模糊。我们是在谈论运行单个存储过程,还是使用同一数据库连接运行多个存储过程?我们是在谈论使用游标还是事务?一些细节将非常有帮助。

    我的理解是,LINQ to SQL对于处理从数据库服务器返回到应用程序的数据非常有用,或者使用更SQL风格的语法向数据库服务器发出命令。操作的类型和数量可能会对一种操作的性能产生重大影响。

    I、 我个人认为(基于我有限的经验)存储过程应该总是更快,因为它们与数据本身一起驻留在本地,并且可以消除应用程序可能需要的任何网络流量的开销 重复的 呼叫服务器。(建立连接时总是需要一些。)但这可以通过优化来缓解。

    正如我所说,需要澄清。

    编辑: 在我的文章中,我指的是端到端性能,而不是LINQ生成的SQL与存储过程中的SQL的性能。