Jointure simple entre 2 ou 3 tables

soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011 - 20 août 2009 à 13:38
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 20 août 2009 à 14:23
salut à toute la communauté !
Cela fait des heures que cherches à établir une jointure entre (2 ou 3 tables qu'importe).
Ce que je voudrais, c'est réunir dans une nouvelle table la plupart des champs (LADATE, [VOISINE DECLAREE], CELL_SERVEUSE, SBS_Name, [ETAT SYMETRIE]) de ma table [ALL_ASYMETRIES], avec le champ nVOISINES de ma 2eme table [VOISINES_DECLAREES]. Alors, J'ai écrit cette requète :

select c.ID,
a.LADATE, a.[VOISINE DECLAREE], a.CELL_SERVEUSE, a.SBS_Name, a.[ETAT SYMETRIE],
b.nVOISINES As [RELATIONS VOISINES]
from dbo.ALL_ASYMETRIES a inner join dbo.VOISINES_DECLAREES b
on a.[VOISINE DECLAREE] = b.NOM_CELLULE
inner join dbo.ADJACENT_LIST_GENERATED c
on c.ID = b.nVOISINES

MAlheureusement, bien qu'elle marche, elle s'exécute en 49 seconde ! c'est beaucoup trop long, car je voudrais en faire une vue: une fois la vue créée, j'arrive pas à l'ouvrir car le temps d'exécution est trop long !

voici la structure de mes 2 tables (qui sont en fait des vues):

vue 1= ALL_ASYMETRIES
create view [dbo].[ALL_ASYMETRIES] As select distinct a.LADATE, b.[VOISINE DECLAREE], a.CELL_SERVEUSE, a.SBS_Name, a.BTSM_SERV, a.BTS_SERV, a.BTSM_VOIS, a.BTS_VOIS, b.[ETAT SYMETRIE] from CELL_SBS a, ASYMETRIES_OMC b where a.CELL_SERVEUSE = b.[CELLULE SERVEUSE] and b.[VOISINE DECLAREE] = a.TARGET_CELL

VUE 2= VOISINES_DECLAREES
create view [dbo].[VOISINES_DECLAREES](NOM_CELLULE, nVOISINES) As select CELL_SERVEUSE, count(*) As NombreDeDéclaration from ADJACENT_LIST_GENERATED Group by CELL_SERVEUSE

quelqu'un peut t-il m'aider ? Il me faut absolument sortir cette table rapidement

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
20 août 2009 à 14:09
Salut,

As-tu des index et des clés primaire sur tes tables?
0
soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011
20 août 2009 à 14:14
Aucun index, ni clé ! il s'agit d'une base plate sans relation. Pour extraire les données qui m'intéresse, je procède en général par des vues que je crée !
AU fait, est il possible d'ajouter des index ou des clé à des vues ? ça pourrait peut être accélérer les process
0
soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011
20 août 2009 à 14:17
J'utilise énormément les vues : je serai ravi de savoir que je peux les optimiser !
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
20 août 2009 à 14:23
Les vues indexés existe mais il est préférabble d'utiliser les index sur les tables.

Aucun index, ni clé ! il s'agit d'une base plate sans relation. Pour extraire les données qui m'intéresse, je procède en général par des vues que je crée !


pas de relations --> pas d'accélaration pour tes inner join
pas d'index/clés --> pas d'optimisation.

Mets des clés primaire sur les tables et des foreign key dans un premier temps.
0
Rejoignez-nous