Mere fart på SQL
Jeg har indlæst en logfil til en tabel i MS SQL Server 2019.I Server Management Studio v18.5.1 forsøger jeg at lave en liste over unikke brugere, med et eksempel på hvornår brugeren har været registreret i loggen.
Hvilket tidspunkt MS SQL finder frem til mig, er ligegyldig, bare den passer til brugeren.
Der er tale om en database med data af midlertidig karakter, og som ikke skal i egentlig produktion.
Normalisering er ikke noget krav eller ønske.
Virtuelt Hardware i brug er 8 kerner Xeon Silver 4215 @ 2.5GHz, 128 GB RAM, 335 GB VHD (på spindel i RAID 10)
I en lille test-tabel med 9 rækker, har jeg testet nedenstående queries, og de giver begge to de resultater jeg ønsker og queryen afvikles hurtigt.
I en lidt større log-tabel med 3.800.000 rækker tager det 3 timer.
Og det endelige mål er at køre den på tabel med 19.500.000 rækker.
Hvordan kan jeg skrive min query så den afvikler hurtigere?
SELECT [Col_Navn] as Bruger,
( SELECT TOP 1 [col_Tid] as Tid
FROM [Tab_Log]
WHERE [Col_Navn] = Tabellen.[Col_Navn] )
FROM [Tab_Log] AS Tabellen
WHERE [Col_Navn] IS NOT NULL
GROUP BY [Col_Navn]
SELECT DISTINCT [Col_Navn] as Bruger,
( SELECT TOP 1 [col_Tid] as Tid
FROM [Tab_Log]
WHERE [Col_Navn] = Tabellen.[Col_Navn] )
FROM [Tab_Log] AS Tabellen
WHERE [Col_Navn] IS NOT NULL