我正在从SQL数据库执行查询。该表有超过一百万条记录。SQL语句需要超过8小时才能运行
这是我的SQL语句。它需要超过8小时才能运行。有人有主意吗?提前致谢。
Select
Count (userID) as DIBWIZHits, Sum (ssnCount) as SSNs
From
tbl_hits10
Where
(appName='DIBwiz QMT' or
appName like 'DIBwiz-Full%' or
appName like 'DIBwiz-Abb%' or
appName like 'DIBwiz-Qual%')
-- or appName like 'DIBwiz%Open%' or appName like 'DIBwiz%Q%')
and
lu_date between
convert (datetime, '2010-09-01 00:00:00', 102) and
convert (datetime, '2010-09-30 23:59:59', 102)
AND
(userID<>'888888' and
userID<>'999999' and
userID<>'777777' and
userID<>'666666' and
)
的数据库引擎是什么? – 2010-10-15 20:23:51
从'convert(datetime,...,102)'位看起来像SQL Server?尽管如此,执行计划或配置必定会有灾难性的错误。一百万条记录上的全表扫描无法持续8个小时。 – 2010-10-15 20:31:10
此查询可能很难看,但没有连接或GROUP BY子句,所以它不应该比表扫描慢得多。我无法理解,在这样大小的桌子上进行扫描会花费8个小时的数量级。你的配置有什么奇怪的地方吗?你的桌子可怕地分裂了吗?它是否存储在软盘的RAID阵列上? – zinglon 2010-10-15 21:17:36