URL: https://linuxfr.org/forums/programmation-sql/posts/fetch-comment-sa-marche Title: FETCH : comment sa marche ?!!! Authors: Amine Mokhtari Date: 2008年06月30日T20:06:00+02:00 Tags: postgresql Score: 0 bonjour, À travers certaines mesures expérimentales sur les bases de données dans mon boulot ; j'ai pu constater l'énorme lenteur de la commande FETCH (NEXT). je travail sous postgreSQL v8.2. J’ai écrit un programme en ECPG dans lequel je devais poser une requête Q1 et récupérer son résultat qui est un ensemble de ligne. Grâce à un curseur je parcourrai ce résultat et effectué un certain traitement sur chaque ligne. Ma première implémentation utilisée la commande FETCH NEXT afin de passé d'une ligne à une autre. J’ai constaté un énorme écart de temps d'exécution entre le fait de récupérer directement toutes les lignes de Q1, les stockés en mémoire dans une structure de données que le fait d'utiliser la commande Fetch Next. La commande FETCH NEXT à elle toute seul comptabilisée 95% du temps d'exécution. Face à une base de données importante il est clair que ça serai impossible de tout charger dans la mémoire ; je me suis donc mis à chercher une solution sur le Web. À travers ma recherche j'ai pu constater que ce problème ne se pose pas uniquement sur postgresSQL, mais sur la plus part des bases de données. J’ai trouvé certains post qui préconisé de charger par bloc grâce à la commande FETCH FORWARD au lieu de ligne par ligne (FETCH NEXT). En expérimentant cette approche, j'ai pu constater des améliorations non négligeables, de l'ordre de 70 à 95 % (waw). Mais alors pourquoi je poste ce message ? La réponse est simple : POURQUOI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Pourquoi la commande FETCH (NEXT) est aussi lente quand on lit ligne par ligne ? Cette question selon mon raisonnement nous renvoie à son implémentation ; au principe même de cette commande. Je me tourne donc vers vous pour vous demander une explication. Et surtout savoir comment ça marche. Merci d'avance. PS : Tout document ou schéma expliquant le principe est le bienvenu.

AltStyle によって変換されたページ (->オリジナル) /