Bonjour,
je suis sur SQL server mais à travers SAP. Je ne sais donc pas si ma question est à sa place ici. Si ce n'est pas le cas, n'hésitez pas à me le dire ou à déplacer mon post.
J'ai une requete de type
SELECT * FROM table FOR ALL ENTRIES IN table_interne WHERE ....
La requete est transformée avec des UNION ALL
et lorsque je lance un explain SQL qui me permet de voir si la requete passe par un index j'ai :
SELECT
|--Nested Loops(Inner Join, OUTER REFERENCES[Union1590], [Union1591], [Union1592], [Union1593], [Union1594], [Union1595]))
|--Concatenation
| |--Constant Scan
| |--Constant Scan
| |--Constant Scan
|--Nested Loops(Inner Join, OUTER REFERENCES[Expr1605], [Expr1606], [Expr1607]))
|--Merge Interval
| |--Sort(TOP 4, ORDER BY[Expr1608] DESC, [Expr1609] ASC, [Expr1605] ASC, [Expr1610] DESC))
| |--Compute Scalar(DEFINE[Expr1608]=(4&[Expr1607])=4 AND NULL=[Expr1605], [Expr1609]=4&[Expr1607], [Expr1610]=16&[Expr1607]))
| |--Concatenation
| |--Compute Scalar(DEFINE[Union1595]=[Union1595], [Union1595]=[Union1595], [Expr1598]=62))
| | |--Constant Scan
| |--Compute Scalar(DEFINE[Union1594]=[Union1594], [Union1594]=[Union1594], [Expr1601]=62))
| | |--Constant Scan
| |--Compute Scalar(DEFINE[Union1593]=[Union1593], [Union1593]=[Union1593], [Expr1604]=62))
| | |--Constant Scan
| |--Compute Scalar(DEFINE[Union1592]=[Union1592], [Union1592]=[Union1592], [Expr1607]=62))
| |--Constant Scan
|--Clustered Index Seek(OBJECT[PRE].[pre].[IHPA].[IHPA~0]), SEEK
[IHPA].[MANDT]=[Union1590] AND [IHPA].[OBJNR]=[Union1591] AND [IHPA].[PARVW] > [Expr1605] AND [IHPA].[PARVW] < [Expr1606]) ORDERED FORWARD)
Je suis totalement incapable de dire ce qu'il fait à l'exception de la fin où il passe dans l'index. Quelqu'un a-t-il deja eu ce cas ?
Quelqu'un aurait des explications sur la signification du constant scan ?
Merci d'avance
Partager