Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Optimisation chargement Where

Bonjour tout le monde,

Dans mon script, je souhaite filtrer mes données, et je m'interroge sur l'optimisation : est il préférable de mettre une clause WHERE directement dans la requête SQL, ou plutôt WHERE EXISTS (xxx) dans le LOAD ?

J'obtiendrai le même résultat, mais je ne veux pas d'un temps de chargement trop long.

Merci,

Ulrich

11 Replies
Not applicable
Author

Qu'est ce que tu veux faire avec ton Exists?

Si c'est pour éviter d'avoir 2 fois la même valeur sur une colonne ça serait plutôt "Where not exists(IDENT_CLI)"

Anonymous
Not applicable
Author

Bonjour

Je souhaite filtre mes données, tout en limitant l'utilisation de la mémoire.

J'ai une table client, dont l'identifiant est IDENT_CLI, pour laquelle je ne charge qu'une partie des données, avec un filtre dans la clause where de la requête : je sais quels clients je veux, j'ai un filtre simple.

Je charge ensuite la table des sites qui sont liés à ces clients : je ne peux pas utiliser le même filtre, et je veux avoir 2 tables (oui, je sais que je pourrait tout charger dans une seule table, mais... non, je préfère séparer).

Dans un premier temps, j'utilisais un Where Exists(IDENT_CLI) dans le load, vu que ma table client est déjà chargée, je ne prend ainsi que les sites de ces clients, mais ça signifie que je lis et charge toute la table des sites, pour ensuite la filtrer.

La piste de Philippe me plait : je charge toute la table Site (T1) sans filtre, puis je crée une table T2, issu de T1, en filtrant, et enfin je supprime T1 : j'aurai tous mes sites, pour mes clients chargés, tout en limitant l'utilisation de la mémoire.

Et là, c'est le drame...

A+