Bonjour à tous,

J'ai un problème que je n'arrive pas à comprendre et j'espère que vous allez pouvoir m'aider ...
J'ai un SI avec plusieurs tables structurées de la même manière. Dans chacune d'entre elles je stocke plusieurs versions de ma data.

Coté intégration, j'ai un service Windows qui intègre en multithreading la data dans ces tables dites "splittées".
Dès lors que l'intégration est terminée, toujours en multithreading, je lance une procédure stockée qui intègre dans une table consolidée la version la plus à jour de la data en faisant un simple delete / insert.

Tout fonctionne bien sauf lorsque j'intègre trop de ligne d'un coup (plusieurs milliers). J'ai l'impression que SQL Server me met un lock sur ma table consolidée.
Du coup si j'essaie de faire un simple "select" sur la table consolidée pendant l'insertion ça mouline, je n'ai plus la main ...

Plusieurs questions:
1. Comment voir si j'ai un lock sur ma table ?
2. Pourquoi le lock ne s'activerai que sur des grosses insertions ?
3. Du moment ou je fais du delete / insert je ne devrai pas avoir de problème d'intégrité, est-ce propre de consolider avec le mot clé WITH NO LOCK ?
4. Comment faire du NO LOCK sur un DELETE / INSERT ?

Merci pour vos suggestions