none
关于SQL执行时间 RRS feed

  • 问题

  • 场景:.net C# SQL Server

    程序框架里有记录每个SQL的执行,也就是SQL执行后的时间减去执行前的时间,若超过1秒,就插入日志表供统计、分析性能

    这个逻辑很正常、合理

    但却出现较多个例:记录的时间是两个SQL请求之间的间隔时间,而不是单个SQL的执行时间

    比如:

    第一个SQL:select name from sys.databases where database_id=1  --执行时间通常应该为1ms以内

    --间隔 2秒

    第二个SQL:select name from sys.tableswhere name='abcd'  --执行时间通常应该为1ms以内

    程序日志就记录了第一个SQL的执行时间为 2秒

    查看了C#记录日志代码,对比了数据库跟踪(trace),网络抓包,发现就是这个现象

    不知道有没描述清楚,或者其他小伙伴有没碰到这个现象?


    SQL Server 2016 ~ 2000 性能优化、方案设计 QQ:315054403 田园嘉兴

    2019年10月23日 1:28

全部回复

  • Hi,

    你是通过什么方式获取SQL语句运行时间的,或许你可以尝试直接使用SQL语句来实现它。我这里找到一篇博客,希望可以帮到你。

    SQLServer 查看SQL语句的执行时间

    Note: This response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites; Therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure that you completely understand the risk before retrieving any software from the Internet.

    Regards,

    Kyle


    如果您对Visual Studio 或Microsoft Azure相关产品感兴趣,请点击此链接,或扫描以下二维码注册获取相关信息。


    2019年10月23日 6:08