Bonjour,
J'ai une bête question à vous soumettre
Lorsqu'on exécute plusieurs fois un SELECT sans spéficier un ORDER BY, le résultat retourné est-il toujours "trié" dans le même ordre ?
Si oui, en fonction de quoi ?
Merci d'avance,
Christophe
Bonjour,
J'ai une bête question à vous soumettre
Lorsqu'on exécute plusieurs fois un SELECT sans spéficier un ORDER BY, le résultat retourné est-il toujours "trié" dans le même ordre ?
Si oui, en fonction de quoi ?
Merci d'avance,
Christophe
Bonjour,
Si vous ne spécifiez pas de clause ORDER BY, alors votre résultat sera ordonné suivant la clé primaire de votre table.
En effet la création d'une contrainte de clé primaire sur une table entraîne la création d'un index cluster qui va ordonner (mais pas seulement cela) les données contenues dans votre table
A+
Merci pour la réponse.
En effet, j'ai une primary key (un int autoincrement).
Christophe
Heu, je ne comprends plus alors.
comment crée-t-on ce "clustered index" ?
Christophe
Bonjour,
Au sens SQL c'est tout à fait vrai.Cependant elsuket, ce n'est parceque vous avez une clé primaire que vous aurez un index ordonné.
En revanche, lorsqu'on spécifie une contrainte PRIMARY KEY pour une table, SQL Server garantit l'unicité des données en créant implicitement un index cluster pour la/les colonnes de clé primaire![]()
NON, NON et NON !Si vous ne spécifiez pas de clause ORDER BY, alors votre résultat sera ordonné suivant la clé primaire de votre table.
En effet aucune garantie d'aucune sorte ne peut être apporté dans l'ordre des lignes dans le cas d'un SELECT sans ORDER BY.
Lisez l'article que j'ai écrit à cet égard :
http://blog.developpez.com/sqlpro?ti..._sont_des_ense
En effet il peut utiliser indifféremment la lecture de tel ou tel index. De pus dans le cas de grandes tables, SQL Server commencera par vous livrer en premier les lignes des pages en mémoire tandis que le moteur de stockage montera les autres pages pour lecture. Dans ce cas, la lecture des lignes se fera dans un ordre totalement aléatoire.
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Merci SQLPro (et tous les autres).
Donc, pour résumer, si je ne spécifie pas un ORDER BY, je n'ai aucune garantie quant au résultat retourné ...
Il semble que vous ayez parfaitement compris....
Petite question : a votre avis... pourquoi as ton pris le soin de rajouter une clause ORDER BY ?
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Partager