我正在從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