Bonjour à tous,

J'ai un problème avec une requête SQL imbriquée qui ne s’exécute jamais !
Après avoir étudié le plan d’exécution en détails, rajouté 2 3 index et mis à jour les Statistiques, mon problème de blocage est toujours présent !

Comme la requête provient d'un univers Business Object, je n'ai pas forcément étudié le SQL au premier abord.
Néanmoins, il intéressant de voir que cette requête possède une sous-requête :

Requête principal (qui fonctionne parfaitement de manière indépendante) :

SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
Warning: Null value is eliminated by an aggregate or other SET operation.

(423221 row(s) affected)
Table 'SCHEDULE'. Scan count 0, logical reads 1623507, physical reads 0,
Table 'PARTNER'. Scan count 0, logical reads 1082338, physical reads 0,
Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0,
Table 'DTMPFO_IMPRESSIONS'. Scan count 4, logical reads 41732, physical reads 0,
Table 'POLICY_STATUS_ACTUAL'. Scan count 1, logical reads 7476, physical reads 0,
Table 'POLICY_STATUS'. Scan count 2, logical reads 4, physical reads 0,
Table 'POLICY'. Scan count 1, logical reads 72329, physical reads 0,
Table 'CALENDAR'. Scan count 1, logical reads 44, physical reads 0,

SQL Server Execution Times:
CPU time = 31719 ms, elapsed time = 43090 ms.


Requête secondaire qui s’exécute aussi parfaitement :

SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.

(6001 row(s) affected)
Table 'SCHEDULE'. Scan count 0, logical reads 18387, physical reads 0,
Table 'POLICY'. Scan count 0, logical reads 18387, physical reads 0,
Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0,
Table 'CALENDAR'. Scan count 1, logical reads 44, physical reads 0,
Table 'DTMPFO_IMPRESSIONS'. Scan count 1, logical reads 234279, physical reads 0,

SQL Server Execution Times:
CPU time = 1375 ms, elapsed time = 1437 ms.

D'après mon expertise , la requête imbriquée devrait fonctionner sans problème ! Je ne comprends pas d’où provient le problème !!!???

Quand j’exécute cette dernière, je ne constate pas de temps d'attente suspect ... Je me demande si ce n'est pas un problème d'isolation, pourtant je n'ai jamais eu de problème à ce niveau la !

Qu'en pensez-vous ?

Par avance,
Merci de vos réponses.





P.S.: Ce n'est pas la première fois que je constate des problèmes avec des sous-requêtes dont le SQL est généré par Deski. Il est certainement possible de revoir la logique de la requête (univers), mais cette requête devrait sortir ...

Config :
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)
Enterprise Edition (64-bit) on Windows NT 5.2 <X64>
(Build 3790: Service Pack 2).

Ressource Gouvernor configuré !