
Envoyé par
Pol63
si ta requete retourne 10 lignes et qu'elle met plusieurs secondes/minutes, ca veut dire que ca lit toutes les lignes de la table ...
pour ne pas lire toutes les lignes d'une table lors d'une requete il faut des indexes, et qu'ils soient utilisables
un where mid(colonne, x, y) fait qu'un index sur colonne ne pourra pas être utilisé par exemple
Requête 1 :
select Top 10 targethostname, count(*) as 'NumberThreat' from [EPOEvents] left join [EPOLeafNode] on [EPOEvents].[AgentGUID] = [EPOLeafNode].[AgentGUID] where ( ( ( [EPOEvents].[AnalyzerName] like N'VirusScan Ent%' ) and ( [EPOEvents].[AnalyzerName] not like N'%for%' ) ) and ( [EPOEvents].[DetectedUTC] between CONVERT(datetime,dateadd(hh,-24,getdate()),102) and CONVERT(datetime,getdate(),102)) and ( ( [EPOEvents].[ThreatType] = N'app' ) or ( [EPOEvents].[ThreatType] = N'app_adware' ) or ( [EPOEvents].[ThreatType] = N'app_remoteadmin' ) or ( [EPOEvents].[ThreatType] = N'app_pua' ) or ( [EPOEvents].[ThreatType] = N'app_puo' ) or ( [EPOEvents].[ThreatType] = N'app_package' ) or ( [EPOEvents].[ThreatType] = N'app_rootkit' ) or ( [EPOEvents].[ThreatType] = N'app_P2P' ) or ( [EPOEvents].[ThreatType] = N'app_IM' ) or ( [EPOEvents].[ThreatType] = N'app_keylogger' ) or ( [EPOEvents].[ThreatType] = N'app_pwcracker' ) or ( [EPOEvents].[ThreatType] = N'app_dialer' ) or ( [EPOEvents].[ThreatType] = N'app_spyware' ) or ( [EPOEvents].[ThreatType] = N'virus' ) or ( [EPOEvents].[ThreatType] = N'comp' ) or ( [EPOEvents].[ThreatType] = N'trojan' ) or ( [EPOEvents].[ThreatType] = N'joke' ) or ( [EPOEvents].[ThreatType] = N'test' ) ) ) group by targethostname order by 'NumberThreat' desc"
Requête 2 :
Dim sql1 As String = "SELECT TOP 1 SourceHostName, count(*) AS NumberThreat from [EPOEvents] left join [EPOLeafNode] on [EPOEvents].[AgentGUID] = [EPOLeafNode].[AgentGUID] where ( ( ( [EPOEvents].[AnalyzerName] like N'VirusScan Ent%' ) and ( [EPOEvents].[AnalyzerName] not like N'%for%' ) ) and ( [EPOEvents].[DetectedUTC] between CONVERT(datetime,dateadd(hh,-24,getdate()),102) and CONVERT(datetime,getdate(),102)) and TargetHostName='" + variable + "' and ( ( [EPOEvents].[ThreatType] = N'app' ) or ( [EPOEvents].[ThreatType] = N'app_adware' ) or ( [EPOEvents].[ThreatType] = N'app_remoteadmin' ) or ( [EPOEvents].[ThreatType] = N'app_pua' ) or ( [EPOEvents].[ThreatType] = N'app_puo' ) or ( [EPOEvents].[ThreatType] = N'app_package' ) or ( [EPOEvents].[ThreatType] = N'app_rootkit' ) or ( [EPOEvents].[ThreatType] = N'app_P2P' ) or ( [EPOEvents].[ThreatType] = N'app_IM' ) or ( [EPOEvents].[ThreatType] = N'app_keylogger' ) or ( [EPOEvents].[ThreatType] = N'app_pwcracker' ) or ( [EPOEvents].[ThreatType] = N'app_dialer' ) or ( [EPOEvents].[ThreatType] = N'app_spyware' ) or ( [EPOEvents].[ThreatType] = N'virus' ) or ( [EPOEvents].[ThreatType] = N'comp' ) or ( [EPOEvents].[ThreatType] = N'trojan' ) or ( [EPOEvents].[ThreatType] = N'joke' ) or ( [EPOEvents].[ThreatType] = N'test' ) ) ) GROUP BY SourceHostName ORDER BY NumberThreat DESC"
Ce sont les deux requête (1 et 2) qui servent à remplir les 2 DataGridView (Utilisées par McAfee, j'ai juste changé les champs à afficher et la période)
Partager