Maison >base de données >tutoriel mysql >Pourquoi utiliser « SELECT TOP 100 PERCENT » dans les requêtes SQL ?
Pourquoi utiliser SELECT TOP 100 Percent
Avant SQL Server 2005, TOP 100 PERCENT était utilisé dans les clauses SELECT pour activer l'ordre par utilisation dans afficher les définitions. Cependant, même dans les instructions SQL dynamiques des environnements modernes, cette pratique persiste.
Matérialisation intermédiaire
La principale raison de l'utilisation de TOP 100 PERCENT est la « matérialisation intermédiaire ». Comme l'explique Adam Machanic, cette technique met temporairement en attente les résultats de la requête, permettant un traitement ultérieur plus efficace. Plus précisément, il permet le traitement ligne par ligne d'un ensemble de résultats intermédiaires, ce qui peut optimiser les performances dans certains scénarios.
Exemple
Considérez la requête suivante :
SELECT foo FROM (SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar WHERE CAST(foo AS int) > 100
Dans SQL Server 2000, cette requête peut échouer en raison d'un ordre d'évaluation imprévisible. TOP 100 PERCENT peut être utilisé pour appliquer le traitement ligne par ligne, garantissant que les résultats sont équivalents à ceux obtenus en exécutant les requêtes de manière séquentielle :
SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 SELECT foo FROM bar WHERE CAST(foo AS int) > 100
Ce comportement continue de fonctionner dans SQL Server 2005, malgré l'introduction de techniques d'optimisation plus sophistiquées.
Précaution
Alors SELECT TOP 100 PERCENT peut offrir des avantages en termes de performances dans des circonstances spécifiques, il doit être utilisé judicieusement. Les modifications apportées aux niveaux de correctifs, au schéma, aux index ou au nombre de lignes peuvent modifier par inadvertance leur impact sur les performances. Il est donc essentiel de bien comprendre les conséquences avant d'utiliser cette technique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!