Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
je suis entrain de préparer un tableau de bord , au niveau script je dois faire de calcul à partir des données récupérées par des requête SQL(la quantité de données est très grande).
Exemple :
FACT:
select A from AAA;
left join
select B from BBB;
left join
select C from CCC;
left join
select D from DDD;
et maintenant je dois faire le calcul :
Load A+B+C-D as Gap
resident FACT ;
L’étape de load est très gourmande au niveau mémoire et le calcul de ce GAP au niveau graphique est un peu lent.
Merci de m'aider pour optimiser cette solution.
Construire une vue en sql puis lire dans QlikView
c-à-d il y pas une solution au niveau QLIKVIEW ?
What is the key field between each of the loads? It's taking forever because it's joining everything to everything. I'm guessing you have to have a key field somewhere...
Désolé pour le mauvais français;
vous pouvez construire un QVD (qui consomme de la mémoire), puis l'enregistrer avec le "STORE"de lire les données prêt
Moi aussi je suis faible en francais .
Bon je suis entrain de tester le store dans de fichier QVD et je veux charger juste le GAP qui sont différent de 0, j’imagine que cette méthode est plus optimisé.
Est ce que le script suivant est juste (charger juste les gap différent de 0) ?:
load A,B,C,D, A+B+C-D as GAP
where num(GAP,'# ##0,000')<>'0,000'
Vous pourriez rajouter des Load optimisés.
Exemple:
Commencez par une table de valeurs requises
Optimise_Temp:
LOAD * INLINE [
Attribut
1
2
3
];
Ensuite chargez la table requise à condition qu'elle contienne le champ faisant l'objet de l'optimisation.
Dans cet exemple, ce sera le champ Attribut.
Table_But:
LOAD
Attribut,
Vente
From [fichierSource.qvd]
Where Exists ( Valeur);
DROP TABLE 'Optimise_Temp';
Ridha,
Je suis étonné que le second LOAD n'ait pas de clefs communes avec le LOAD No 1. QlikView n'empêchera pas le JOIN mais le nombre de lignes résultant sera la multiplication du nombre de lignes du 1er load x le nombre de lignes du second. Et comme il y a 4 LOAD, le nombre de lignes peut être colossal. D'ù la remarque que c'est très long.
Oui, on peut tenter de créer la bonne requête SQL. Et la charger dans QlikView.
Oui, on peut utiliser les QVD pour toutes les lignes qui ne bougeront pas (à déterminer par application)
LOAD A, B, C, D
WHERE round(A+B+C-D, 0.0001) <> 0 ; //ce sont des champs numériques, non ? si ce sont des champs décimaux, il est probable que la différence ne fasse pas 0, utiliser Round avec le bon facteur.
Fabrice
Il y a des clefs communes entre tous les requêtes , j'ai fait juste un exemple par hasard.
oui il sont des champs numériques.
Il y a des clefs communes entre tous les requêtes , j'ai fait juste un exemple par hasard.