Sto eseguendo un 350GB
database sul mio PC con circa 40 milioni di righe.
SQL Server 2014, Win7, AMD 8350 @ 4.8GHZ, 16 GB di RAM e un SSD da 500 GB (il database è ospitato sul proprio SSD da 500 GB, con una velocità di lettura / scrittura di 500 MB / 500 MB).
Il database non viene aggiornato, lo sto solo analizzando / leggendo. Con la creazione di alcuni indexes
, qualsiasi join
, count(*)
ecc., Richiede meno di 1 minuto, il che è ok per i miei scopi. Ho eseguito alcune query (dopo aver eseguito una query di join singolo, 40-50 volte, diventa lenta) sui dati e ora le chiamate che hanno richiesto 1 minuto, sono ancora in esecuzione 20 minuti dopo.
Tengo d'occhio le risorse di sistema e posso vedere il SSD
kick-in all'avvio della query, che legge per 20-30 secondi, quindi legge 121kB/second
per i successivi 20 minuti. Questo non è un problema alla CPU o al disco. Sono limitato con la mia quantità di RAM, tuttavia le chiamate vengono eseguite correttamente quando ho caricato il database per la prima volta, ora, non viene eseguito nulla, 25 minuti dopo.
In effetti non riesco più a interrogare il database, qualsiasi chiamata richiede troppo tempo anche SELECT
un'istruzione di base . Ho provato a ricostruire gli indici e ad aggiornare le statistiche, ma nessuna differenza.
Non ho molta esperienza su questo, quindi è del tutto possibile che la mia query SQL sia errata, nel qual caso mi aspetto un errore o che finisca l'esecuzione con 0 risultati, ma nessuno dei due si verifica.
Quello che sto cercando di fare è contare tutte le istanze di un 'TypeID', nei 5 secondi precedenti un tempo basato sulla tabella 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