Я использую 350GB
базу данных на моем компьютере с ~ 40 миллионами строк.
SQL Server 2014, Win7, AMD 8350 @ 4,8 ГГц, 16 ГБ ОЗУ и твердотельный накопитель емкостью 500 ГБ (база данных размещается на собственном твердотельном накопителе емкостью 500 ГБ с пропускной способностью чтения / записи 500 МБ / 500 МБ).
База данных не обновляется, я просто анализирую / читаю ее. На создание нескольких indexes
, любых join
и count(*)
т. Д. Уходит менее 1 минуты, что вполне подходит для моих целей. Я выполнял некоторые запросы (после выполнения одного запроса на соединение, 40-50 раз, он становится медленным) для данных, и теперь вызовы, которые заняли 1 минуту, все еще выполняются через 20 минут.
Я внимательно слежу за системными ресурсами, и вижу, как SSD
запускается запрос, он читает в течение 20-30 секунд, а затем читает в 121kB/second
течение следующих 20 минут. Это не проблема процессора или проблема с диском. Я ограничен объемом оперативной памяти, однако при первой загрузке базы данных вызовы выполняются нормально, но через 25 минут ничего не происходит.
По сути, я больше не могу запрашивать базу данных, любой вызов занимает слишком много времени, даже базовое SELECT
утверждение. Я попытался перестроить индексы и обновить статистику, но без разницы.
У меня нет большого опыта в этом вопросе, поэтому вполне возможно, что мой SQL-запрос некорректен, и в этом случае я ожидаю ошибку, или он завершится с 0 результатами, но ни один из них не возникает.
Я пытаюсь подсчитать все экземпляры TypeID за 5 секунд до времени, основанного на таблице ACALLS.
SELECT ACALLS.StartTime, ACALLS.Time, ACALLS.ServerIP, ACALLS.SRVR, ACALLS.calls, ACALLS.TOKEN, COUNT(TypeID) as ExecRate
FROM ACALLS
INNER JOIN MAINVIEW ON
MainView.TimeStamp BETWEEN ACALLS.StartTime and DATEADD(ss,-5,ACALLS.StartTime)
WHERE DATEPART(hour,MainView.TimeStamp) BETWEEN 10 and 13 and
CAST(MainView.TimeStamp as date) = '2015-12-09' and
MainView.TypeID = '123456789'
GROUP BY Acalls.STartTime, ACALLs.TIME, ServerIp,SRVR, ACALLS.CALLS, ACALLS.TOKEN
ORDER BY Acalls.StartTime