Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/04/2011, 10h20   #1
Membre du Club
 
Inscription : juillet 2008
Messages : 106
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juillet 2008
Messages : 106
Points : 46
Points : 46
Par défaut lenteur avec lien ODBC base AS400

Bonjour,

Je développe un logiciel qui en gros se connecte à une base de données et alimente un ETL selon les requête faites par l'utilisateur.
Le problème que je rencontre est que le logiciel se connecte bien à la base de données AS400 via une connexion ODBC, on voit bien les différentes tables, par contre dès qu'on fait une requête c'est extrêmement lent (je ne peux vous dire combien de temps exactement, ma patience c'est arrêtée à 5 minutes sans aucun résultat).
Sauriez-vous d'où cela provient ?

Merci
Véro
veriecherie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 10h24   #2
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Généralement DB2 for i5/OS est extrêmement rapide.
Mais une lenteur constatée peut provenir de plusieurs source différentes.

- En quelle version d'OS es-tu ?
- Quelle est la version de Client/access installée sur ton poste.
- Ta table est-elle bien indexée ?
- Possèdes-tu une table nommée QAQQINI dans le schéma QUSRSYS ? Si oui que contient-elle ?
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 15h01   #3
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Peux-tu coller ici ta requête SQL ?
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 11h40   #4
Membre du Club
 
Inscription : juillet 2008
Messages : 106
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juillet 2008
Messages : 106
Points : 46
Points : 46
Bonjour,

Désolée pour le retard de ma réponse...
Alors réponse pour K2R400
Citation:
- En quelle version d'OS es-tu ?
windows Server 2088 R2 Satndard
Citation:
- Quelle est la version de Client/access installée sur ton poste.
iSeries Access ODBC Driver V12.64.00.00
Citation:
- Ta table est-elle bien indexée ?
Je ne sais pas, c'est une table d'une base de données d'un autre logiciel que je ne connais pas
Citation:
- Possèdes-tu une table nommée QAQQINI dans le schéma QUSRSYS ? Si oui que contient-elle ?
Pas de table de ce nom là...

Quand j'exécute ma requête j'ai un message d'erreur qui me dit :
Citation:
ERROR [HY000][IBM][Pilote I+ODBC System i Access][DB2 for i5/OS] SQL0666 - La requête dépasse la limité de durée ou de mémoire définie.
Et quand je décoche l'option "Admettre dépassement de délai d'attente pour requête" dans l'onglet "Performances" puis "options avancées" de ma liaison ODBC, je n'ai plus le message d'erreur mais c'est extrêmement long, j'arrête mon logiciel avant que ça ne finisse (au bout de 15 minutes environ)...

Voilà quelques détails de plus en espérant que vous pourrez m'aider.
Merci
A+
veriecherie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 11h46   #5
Membre du Club
 
Inscription : juillet 2008
Messages : 106
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juillet 2008
Messages : 106
Points : 46
Points : 46
Re,

Réponse à Mercure, voici ma requête :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
SELECT Cast(NADFIWOLF.FSTAT.DAFCTA AS Integer) AS "ANNEE FCT",
  Cast(NADFIWOLF.FSTAT.DAFCTM AS Integer) AS "MOIS FCT", NADFIWOLF.FSTAT.NATPRL
  AS NATURE, NADFIWOLF.FSTAT.PDTBAL AS "PRODUIT BASE", NADFIWOLF.FSTAT.APPELL AS
  APPELLATION, NADFIWOLF.FSTAT.CATEGL AS CATEGORIE, NADFIWOLF.FSTAT.COULEL AS
  COULEUR, NADFIWOLF.FSTAT.REGIOL AS REGION, NADFIWOLF.FSTAT.CUVEEL AS CUVEE,
  NADFIWOLF.FSTAT.GAMMEL AS GAMME, NADFIWOLF.FSTAT.GOUTL AS GOUT,
  NADFIWOLF.FSTAT.MILLE AS MILLESIME, NADFIWOLF.FSTAT.FORMAL AS FORMAT,
  NADFIWOLF.FSTAT.ETAPRL AS "ETAT PRODUIT", NADFIWOLF.FSTAT.ARTIC AS
  "CODE ARTICLE", NADFIWOLF.FSTAT.ARTICL AS ARTICLE,
  Sum(Cast(NADFIWOLF.FSTAT.QTEUB AS Float)) AS "QTE UB LIVREE",
  Sum(Cast(NADFIWOLF.FSTAT.QTEUBG AS Float)) AS "QTE UB GRATUIT",
  Sum(Cast(NADFIWOLF.FSTAT.QTEUB AS Float)) - Sum(Cast(NADFIWOLF.FSTAT.QTEUBG AS
  Float)) AS "QUE UB FACTUREE", Sum(NADFIWOLF.FSTAT.MTHTO) -
  Sum(NADFIWOLF.FSTAT.MTDE1) - Sum(NADFIWOLF.FSTAT.MTDE2) -
  Sum(NADFIWOLF.FSTAT.MTDE3) - Sum(NADFIWOLF.FSTAT.MTDE4) -
  Sum(NADFIWOLF.FSTAT.MTDE5) - Sum(NADFIWOLF.FSTAT.MTDE6) -
  Sum(NADFIWOLF.FSTAT.MTDE7) - Sum(NADFIWOLF.FSTAT.MTDE8) +
  Sum(NADFIWOLF.FSTAT.MTSU1) + Sum(NADFIWOLF.FSTAT.MTSU2) +
  Sum(NADFIWOLF.FSTAT.MTSU3) + Sum(NADFIWOLF.FSTAT.MTSU4) +
  Sum(NADFIWOLF.FSTAT.MTSU5) + Sum(NADFIWOLF.FSTAT.MTSU6) +
  Sum(NADFIWOLF.FSTAT.MTSU7) + Sum(NADFIWOLF.FSTAT.MTSU8) AS "CA HORS TOUT NET",
  Sum(Cast(NADFIWOLF.FSTAT.QTEUCO AS Float)) AS "QTE UCO",
  Sum(Cast(NADFIWOLF.FSTAT.QTEAP AS Float)) AS "QTE ALCOOL PUR",
  Sum(Cast(NADFIWOLF.FSTAT.QTECAP AS Float)) AS "QTE CAPACITE",
  Sum(Cast(NADFIWOLF.FSTAT.QTEPST AS Float)) AS "QTE POINT STAT",
  NADFIWOLF.FSTAT.NOMCLI AS "NOM CLIENT", NADFIWOLF.FSTAT.CLIENT AS
  "CODE CLIENT", NADFIWOLF.FSTAT.NUMCD AS "N° CDE",
  Sum(Cast(NADFIWOLF.FSTAT.PRV1V AS Float)) AS "VALO PRV1",
  Avg(Cast(NADFIWOLF.FSTAT.PRV1 AS Float)) AS PRV1, NADFIWOLF.FSTAT.ARTIC ||
  ' ' || NADFIWOLF.FSTAT.ARTICL AS "CODE ET LIB ART",
  Cast(SubString(NADFIWOLF.FSTAT.DAFCT, 5, 2) || '/' ||
  SubString(NADFIWOLF.FSTAT.DAFCT, 7, 2) || '/' ||
  SubString(NADFIWOLF.FSTAT.DAFCT, 1, 4) AS Date) AS "DATE FCT",
  Sum(NADFIWOLF.FSTAT.MTHTO) - Sum(NADFIWOLF.FSTAT.MTDE1) -
  Sum(NADFIWOLF.FSTAT.MTDE2) - Sum(NADFIWOLF.FSTAT.MTDE3) -
  Sum(NADFIWOLF.FSTAT.MTDE4) - Sum(NADFIWOLF.FSTAT.MTDE5) -
  Sum(NADFIWOLF.FSTAT.MTDE6) - Sum(NADFIWOLF.FSTAT.MTDE7) -
  Sum(NADFIWOLF.FSTAT.MTDE8) + Sum(NADFIWOLF.FSTAT.MTSU1) +
  Sum(NADFIWOLF.FSTAT.MTSU2) + Sum(NADFIWOLF.FSTAT.MTSU3) +
  Sum(NADFIWOLF.FSTAT.MTSU4) + Sum(NADFIWOLF.FSTAT.MTSU5) +
  Sum(NADFIWOLF.FSTAT.MTSU6) + Sum(NADFIWOLF.FSTAT.MTSU7) +
  Sum(NADFIWOLF.FSTAT.MTSU8) + Sum(NADFIWOLF.FSTAT.MTDRTI) +
  Sum(NADFIWOLF.FSTAT.MTPRTI) + Sum(NADFIWOLF.FSTAT.MTVRTI) AS
  "CA HORS TAXE NET", NADFIWOLF.FSTAT.TYORD AS "TYPE ORDRE",
  NADFIWOLF.FSTAT.REGIEL AS REGIE
FROM NADFIWOLF.FSTAT
WHERE NADFIWOLF.FSTAT.TYART <> 'B' AND NADFIWOLF.FSTAT.DAFCTA = 2011
GROUP BY Cast(NADFIWOLF.FSTAT.DAFCTA AS Integer), Cast(NADFIWOLF.FSTAT.DAFCTM AS
  Integer), NADFIWOLF.FSTAT.NATPRL, NADFIWOLF.FSTAT.PDTBAL,
  NADFIWOLF.FSTAT.APPELL, NADFIWOLF.FSTAT.CATEGL, NADFIWOLF.FSTAT.COULEL,
  NADFIWOLF.FSTAT.REGIOL, NADFIWOLF.FSTAT.CUVEEL, NADFIWOLF.FSTAT.GAMMEL,
  NADFIWOLF.FSTAT.GOUTL, NADFIWOLF.FSTAT.MILLE, NADFIWOLF.FSTAT.FORMAL,
  NADFIWOLF.FSTAT.ETAPRL, NADFIWOLF.FSTAT.ARTIC, NADFIWOLF.FSTAT.ARTICL,
  NADFIWOLF.FSTAT.NOMCLI, NADFIWOLF.FSTAT.CLIENT, NADFIWOLF.FSTAT.NUMCD,
  NADFIWOLF.FSTAT.ARTIC || ' ' || NADFIWOLF.FSTAT.ARTICL, NADFIWOLF.FSTAT.TYORD,
  NADFIWOLF.FSTAT.REGIEL, NADFIWOLF.FSTAT.DAFCTJ, NADFIWOLF.FSTAT.DAFCT,
  NADFIWOLF.FSTAT.DAFCTA
A+
veriecherie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 18h36   #6
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Côté IBM i (pas windows) en quelle version es-tu ?
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 09h08   #7
Membre du Club
 
Inscription : juillet 2008
Messages : 106
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juillet 2008
Messages : 106
Points : 46
Points : 46
Bonjour,

Alors pour IBM c'est la version 6 édition 1 niveau de modification 0.
J'espère que j'ai répondu bon cette fois ci

A+
Merci
veriecherie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 16h50   #8
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Ne fais aucun casting ni concat dans ton group by, ce qui donnera :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
GROUP BY NADFIWOLF.FSTAT.DAFCTA, 
NADFIWOLF.FSTAT.DAFCTM, 
NADFIWOLF.FSTAT.NATPRL, 
NADFIWOLF.FSTAT.PDTBAL,
NADFIWOLF.FSTAT.APPELL, 
NADFIWOLF.FSTAT.CATEGL, 
NADFIWOLF.FSTAT.COULEL,
NADFIWOLF.FSTAT.REGIOL, 
NADFIWOLF.FSTAT.CUVEEL, 
NADFIWOLF.FSTAT.GAMMEL,
NADFIWOLF.FSTAT.GOUTL, 
NADFIWOLF.FSTAT.MILLE, 
NADFIWOLF.FSTAT.FORMAL,
NADFIWOLF.FSTAT.ETAPRL, 
NADFIWOLF.FSTAT.ARTIC, 
NADFIWOLF.FSTAT.ARTICL,
NADFIWOLF.FSTAT.NOMCLI, 
NADFIWOLF.FSTAT.CLIENT, 
NADFIWOLF.FSTAT.NUMCD,
NADFIWOLF.FSTAT.ARTIC,
NADFIWOLF.FSTAT.ARTICL, 
NADFIWOLF.FSTAT.TYORD,
NADFIWOLF.FSTAT.REGIEL, 
NADFIWOLF.FSTAT.DAFCTJ, 
NADFIWOLF.FSTAT.DAFCT,
NADFIWOLF.FSTAT.DAFCTA
Aussi sur ton select, fais du casting à postériori :

Code :
1
2
3
Sum(Cast(NADFIWOLF.FSTAT.QTEUB AS Float)) 
doit devenir 
Cast(Sum(NADFIWOLF.FSTAT.QTEUB) AS Float)
et assures toi d'avoir au moins un index sur
DAFCTA, TYART
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h20.


 
 
 
 
Partenaires

Hébergement Web