我有这个查询:
SELECT
COUNT(*) AS 'RedactedCount'
,s.Redacted1
,s.[Redacted2]
,s.[Redacted3] AS 'Redacted3'
FROM RedactedTable1 s
LEFT OUTER JOIN RedactedTable2 g ON s.Redacted5= g.Redacted5
WHERE g.Redacted6= 31013 AND s.DateTime >= '2013-03-02 00:00:00'
GROUP BY s.Redacted1,s.Redacted2, s.Redacted3
其中有一个非常奇怪的行为。此查询需要整整 1 分 30 秒才能完成。如果我将日期更改为 2013-04-02 00:00:00(今天我正在写这篇文章),它几乎是即时的,这是预期的行为。
但是,如果我将日期更改为 2013-02-02(2 个月的时间跨度而不是 1),则查询只需 20 秒。
有没有人遇到过这个问题?我对结果完全震惊。这也将是我正在处理的 Web 应用程序的重要 SQL 请求。
- Microsoft SQL Server 管理工作室 11.0.3128.0
- Microsoft 数据访问组件 (MDAC) 6.1.7601.17514
- 微软 MSXML 3.0 6.0
- 微软 Internet Explorer 9.0.8112.16421
- 微软 .NET 框架4.0.30319.296
- 系统开发6.1.7601
注意:数据库设计得很糟糕,并且绝对不包含索引。是的,这很糟糕。不幸的是,这是一个商业软件,我无权更改数据库模型。但是,我不认为我的问题是由此引起的。
PS:对不起,如果我的查询被大量编辑,因为我在严格的 NDA 上。我试图让它尽可能可读。
谢谢 !