Я делаю запрос из базы данных 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
)
Какая СУБД это? –
Похоже, что SQL Server из 'convert (datetime, ..., 102)' бит? Что-то должно быть катастрофически неправильно с планом выполнения или конфигурацией. Ни в коем случае полное сканирование таблицы на миллион записей занимает 8 часов. –
Этот запрос может быть уродливым, но не существует объединений или предложений GROUP BY, поэтому он не должен заметно замедляться, чем сканирование таблицы. И я не могу понять, что сканирование на таблице такого размера займет около 8 часов. Что-то странное в вашей конфигурации? Ваша таблица ужасно фрагментирована? Он хранится на RAID-массиве дискет? – zinglon