Bonjours,
voilà le probléme :
une table Ta : (id int identity, etat tinyint)
~40.000 rows
une table Tb : (id int identity, refTa int, status tinyint)
~150.000.000 rows
une vue V :
SELECT
Ta.id AS refTa,
Tb.id AS refTb,
Tb.status AS status,
COUNT_BIG(*)
FROM Ta
INNER JOIN Tb
ON Tb.refTa = Ta.id
WHERE Ta.etat IN (5, 6)
GROUP BY
Ta.id,
Tb.id,
Tb.status
un index IX_V sur la vue V :
UNIQUE CLUSTERED INDEX (refTa,refTb,status)
Quand je met a jours l'état dans Ta :
UPDATE Ta WITH (ROWLOCK)
SET etat = 5
WHERE etat <> 5
AND id = <id>
mon index V est donc mis à jours lui aussi (éventuellement) seulement à se moment il ouvre un Vérou S sur la table Tb ce qui bloque les autres requettes de mis a jour sur Tb.
->Y'a t'il un moyen pour que se vérrou soit appliquer au niveau de la page ou de la clef?
(SQL Server 2005, ou 2008 si impossible en 2005).
Merci pour votre attention et n'hésiter pas à me demander des précisions si besoin.