Dans SQL Server, pourquoi une analyse en arrière d'un index cluster ne peut-elle pas ne pas utiliser le parallélisme?


21

J'ai lu des informations sur SQL Server et chaque livre ou blog en parle à propos des analyses en arrière.

Une analyse en arrière d'un index cluster ne peut pas utiliser le parallélisme

Le seul message qui a dit quelque chose est celui-ci ci-dessous. Le message indique que l'équipe SQL Server n'a pas mis en œuvre les optimisations requises pour une analyse en arrière. https://www.itprotoday.com/sql-server/descending-indexes

Étant donné que les pages de niveau feuille sont liées à l'aide d'une liste à double liaison, je ne comprends pas pourquoi une analyse vers l'arrière est différente d'une analyse vers l'avant. Toute clarification est vraiment appréciée.

Réponses:


19

L'article référencé indique spécifiquement que la raison pour laquelle les analyses en amont n'ont pas été parallélisées dans SQL Server 2008 (à partir de CU6) n'est pas technique, mais parce que la fonctionnalité n'a pas été demandée par les clients et que l'équipe de développement n'a pas pris la peine de l'implémenter.

Notez que l'article a été écrit il y a près de 10 ans dans le contexte de la version désormais non prise en charge de SQL Server 2008. Des modifications importantes ont été apportées au moteur de stockage et à l'optimiseur. Cela dit, je vois toujours un plan parallèle pour la ASCrequête et un plan série pour la DESCversion de la requête de démonstration de l'article sur SQL Server 2017:

SELECT *
FROM dbo.Orders
WHERE orderid <= 100000
ORDER BY orderdate ASC;

SELECT *
FROM dbo.Orders
WHERE orderid <= 100000
ORDER BY orderdate DESC;

L'exécution de ces mêmes requêtes sous SQL 2019 CTP 3.2 montre un plan de série pour les deux, sauf si j'ai changé la requête en WHERE orderid <= 50000, où j'ai ensuite observé le même comportement que SQL Server 2017. Il semble donc que l'analyse parallèle vers l'arrière n'a pas encore été implémentée ou un scénario différent est nécessaire pour l'observer.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.