Ordre implicite du server Sql par dans le plan d'exécution

Quand je regarde le plan d'exécution pour une requête SELECT, je remarque souvent les sortings lancés là-bas. Le problème est que je n'ai aucun ordre par dans ma requête, et il semble que la cause des sortings soit l'ordre croissant / décroissant défini pour la colonne sur l'index utilisé dans la requête.

Pourquoi cela arrive-t-il et peut-il être désactivé (et devrais-je le faire)?

Il existe plusieurs opérations dans SQL Server qui peuvent provoquer l'ajout d'un sorting au plan sans ORDER BY dans la requête.

DISTINCT et UNION vont provoquer un sorting pour se débarrasser des duplicates.

GROUP BY peut nécessiter un sort dans la colonne GROUP BY si le plan a un agrégat de stream plutôt qu'un agrégat de hachage et qu'aucun index approprié ne renvoie datatables requirejses pré-sortingées.

L'iterator de segment (utilisé pour les fonctions de classment) nécessite que son input soit sortingée sur la colonne de segment.

Avez-vous un exemple particulier?

Le résultat est sortingé en utilisant l'index automatiquement. Vous pouvez spécifier la clause order by by.
C'est le but d'un index, sortinger datatables afin de find quelques lignes rapidement.