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

À propos de l'auteur

Photo de Markus Winand

Markus Winand teaches efficient SQL—inhouse and online. He minimizes the development time using modern SQL and optimizes the runtime with smart indexing—for that he also published the book SQL Performance Explained.

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)

Achetez chez Amazon
(Seulement en poche)

“Use The Index, Luke!” by Markus Winand and translated by Guillaume Lelarge is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Mentions légales | Contact | NO WARRANTY | Marque déposée | Privacy | CC-BY-NC-ND 3.0 license