为什么一个简单的UPDATE语句有时需要几秒钟才能运行



当页面执行超过一两秒时,我们的web应用程序会自动向我们发送电子邮件,其中包括运行每个SQL语句的时间。我们跟踪每个用户在每次页面加载时浏览的页面,这个查询有时需要几秒钟的时间才能运行(我们会收到一些自动电子邮件,告诉我们一个页面同时花费了几秒钟以上的时间)。

UPDATE whosonline
SET datetime = GETDATE(),
    url = '/user/thepage'
WHERE username = 'companynametheusername (0123456789)'

你知道是什么原因造成的吗?通常情况下,它会在一瞬间运行,但比如说每周左右,大约需要2或3秒,时间跨度可能为10秒。

这是一个非常广泛的问题,可能有很多原因:

  1. 一周中的哪一天/什么时候会发生这种情况,有规律吗?也许你的数据库机器刚刚出现

  2. 你有多少用户?数据库有索引吗?

  3. 数据库缓存呢?是否已配置?

  4. 你怎么知道这是数据库延迟而不是网络延迟?您是否尝试过从本地数据库服务器访问,并查看是否也发生了延迟?

如果您有权访问SQL事件探查器,您可能需要在语句上运行它,以查看服务器上是否发生了可能导致问题的任何事情。如果可以的话,我还会在ManagementStudio/QueryAnalyzer中检查执行路径。否则,如果这些没有显示任何内容,那么可能是与web端有关,而不是SQL。

最新更新