Estoy ejecutando una 350GB
base de datos en mi PC con ~ 40 millones de filas.
SQL Server 2014, Win7, AMD 8350 @ 4.8GHZ, 16 GB de RAM y un SSD de 500 GB (la base de datos está alojada en su propio SSD de 500 GB, con un rendimiento de lectura / escritura de 500MB / 500MB).
La base de datos no se está actualizando, solo la estoy analizando / leyendo. Con la creación de unos pocos indexes
, cualquiera join
, count(*)
etc., toma menos de 1 minuto, lo cual está bien para mis propósitos. He estado ejecutando algunas consultas (después de ejecutar una sola consulta de combinación, 40-50 veces, se vuelve lenta) en los datos, y ahora las llamadas que tomaron 1 minuto, todavía se ejecutan 20 minutos más tarde.
Mantengo un ojo cuidadoso en los recursos del sistema, y puedo ver el efecto SSD
cuando comienza la consulta, se lee durante 20-30 segundos, luego se lee en 121kB/second
los próximos 20 minutos. Esto no es un problema de CPU o problema de disco. Estoy limitado con mi cantidad de RAM, sin embargo, las llamadas funcionan bien cuando cargué la base de datos por primera vez, ahora, nada se ejecuta, 25 minutos después.
Efectivamente, ya no puedo consultar la base de datos, cualquier llamada lleva demasiado tiempo, incluso una SELECT
declaración básica . He intentado reconstruir los índices y actualizar las estadísticas, pero no hay diferencia.
No tengo mucha experiencia en esto, por lo que es muy posible que mi consulta SQL sea incorrecta, en cuyo caso esperaría un error o que termine de ejecutarse con 0 resultados, pero ninguno de los dos ocurre.
Lo que estoy tratando de hacer es contar todas las instancias de un 'TypeID', en los 5 segundos anteriores a un tiempo basado en la tabla 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