Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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)"
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+