Process a 25% (lors d'un query utilisant un subselect)
voila ma requete qui consiste a recuperer tous les unique IP sur 24heure d'une meme campaign.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| CREATE PROCEDURE dbo.SP_Impressions24
(
@CampaignID int,
@loggedStart datetime,
@loggedEnd datetime
)
AS
select CONVERT(char(12),logat,1) As DayDate,count(*) as Clicks from impression_request as A WITH (NOLOCK)
where CampaignID=@CampaignID and logat between @loggedStart and @loggedEnd
and not EXISTS
(select * from impression_request as C WITH (NOLOCK)
where CampaignID = A.campaignid
and C.request_IP=A.request_IP and C.request_raw=A.request_raw and C.logat>DATEADD(hour,-24,A.logat) and C.logat<A.logat)
group by CONVERT(char(12),logat,1)
RETURN |
mon probleme est le suivant lors du lancement de cette requete le serveur rame et rame enormement (serveur : xeon 4 processeurs avec 2 gb ram et raid en hd).
si bien que lorsque je jette un oeil sur les process j'obtiens les infos suivantes pour le pid 85 (celui qui apperement cause probleme):
Object |LockType|Mode |Status |Owner| Index | Reso
CampLogDB | DB | S |GRANT|Sess | |
CampLogDB.ImpreTb |TAB |Sch-s|GRANT|Xact | |
a plusieurs reprises avec une journee d'intervalle jai mis des indexes sur ma table dont un avec cluster apres ces index placees au lancement de la requete tout se passe super bien achaque fois je crois que le probleme est resolu puis le lendemain le probleme recommance, pourtant je nai rien changer entre le moment ou ca allait et le moment ou les problemes recommencent .
voila j'espere avoir ete assez clair (c'est mon 1er poste dans ce forum alors un peu d'indulgence) et si vous avez besoin de plus de precision je me ferai une joie d'en aporter .