par Guillaume Lelarge

Résultats partiels


Quelquefois, vous n'avez pas besoin de toutes les lignes d'une requête SQL. Seules les premières lignes vous intéressent, par exemple les dix premières. Dans ce cas, il est fréquent de permettre aux utilisateurs de naviguer parmi les anciens messages, soit en utilisant de la pagination traditionnelle, soit en utilisant une variante plus moderne de parcours infini. Néanmoins, les requêtes SQL utilisées pour cette fonction peuvent causer de sérieux problèmes de performances si tous les messages doivent être triés pour trouver les plus récents. Du coup, un order by en pipeline est une optimisation très puissante pour ce type de requêtes.

Utiliser un order by en pipeline permet de ne pas avoir à faire le tri du résultat, mais cela permet surtout de renvoyer les premiers résultats sans avoir à lire et à trier toutes les lignes. Autrement dit, un order by en pipeline a un coût de démarrage très bas. Du coup, il est possible d'annuler l'exécution après avoir récupéré quelques lignes tout en permettant de récupérer tout si besoin était.

Ce chapitre démontre comment utiliser un order by en pipeline dans le but de récupérer efficacement des résultats partiels. Bien que la syntaxe de ces requêtes varie suivant les bases de données, ces dernières exécutent les requêtes d'une façon très similaire. Cela démontre une fois de plus qu'elle ne font pas de miracles.

Contenu

  1. Sélectionner les N premières lignes — si vous avez seulement besoin des quelques premières lignes

  2. Récupérer la page suivante — Comparaison des méthodes de décalage et de recherche

  3. Fonctions de fenêtrage — Pagination utilisant des requêtes analytiques

Section précédenteSection suivante

You can’t learn everything in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up. Have a look at modern-⁠sql.com as well.

À propos de l'auteur

Photo de Markus Winand

Markus Winand est l’ambassadeur de la renaissance SQL. Il a pour mission d’initier les développeurs à l’évolution du SQL au 21ème siècle. Markus peut être engagé comme formateur, conférencier et consultant chez winand.at.

Livre de Markus

Couverture du livre « SQL : Au cœur des performances »

L'essence de SQL tuning dans 200 pages.

Acheter de Markus
(Livre de poche et PDF)

Entrer en contact avec Markus Winand

Listes de diffusion de Markus WinandFlux RSSMarkus Winand sur LinkedInMarkus Winand sur XINGMarkus Winand sur TwitterMarkus Winand sur Bluesky
Copyright 2013-2025 Guillaume Lelarge, Markus Winand. All righs reserved.
Mentions légales | Contact | NO WARRANTY | Marque déposée | Confidentialité et RGPD