|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre Expert
![]() ![]() |
Bonjour à tous.
J'ai un souci de conception d'une requête. Je voudrais faire une jointure qui va me chercher les enregistrements qui ne sont PAS dans une table. J'ai une table des Membres avec un identifiant et j'ai une table des Envois avec également un identifiant de membre (le même). En fin de topic, je met les script de création des deux tables. Donc, je voudrais selectionner les membres qui ne sont pas dans la table envoi pour un IdCampagne donné. Je pars sur une base tel que : Code :
Pouvez vous m'aider ? Code :
__________________
Mon blog de création d'univers : Qualhiryann Mon site qui parle de moi moi.ozouf.com |
||||
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() |
A force d'essai j'ai touvé une idée, mais je trouve que ça ressemble plus à du bricolage. Dites moi ce que vous en pensez d'un point de veu empirique, mais aussi d'un point de vue performance car la table membre est censée avoir dans les 100 000 enregistrements (une fois le site en plein régime) et la table envoi aura des millions de lignes à terme. Il est prévu 3 envois par jour pour la moitié au moins des membres.
Outre le fait que je vais travailler mes index à fond, je ne voudrais pas mettre en place une requête qui va me mettre mon serveur à genoux. Donc voici l'idée sur laquelle je suis actuellement : Code :
__________________
Mon blog de création d'univers : Qualhiryann Mon site qui parle de moi moi.ozouf.com |
||
|
00
|
|
|
#3 | ||||||
![]() ![]() |
Vous pouvez passer par une jointure externe :
Code :
Code :
Code :
Si vous cherchez de la performance, laissez tomber les uniqueidentifier.
__________________
Email : http://scr.im/waldar |
||||||
|
10
|
|
|
#4 |
|
Membre Expert
![]() ![]() |
Merci pour ton aide.
Sur le point du UniqueIdentifier, je ne peux pas le laisser tomber, c'est une contrainte de mon système. C'est le type d'identifiant pour le MemberShip en .NET et comme j'exploite à fond cette technologie, je suis "coincé" dedans. Par contre, c'est vrai que j'aurais pu mettre la colone UserId de la table Membre comme Primary Key, au lieu de mettre un banal compteur. Je réfléchi encore sur ce point car mon modèle de donnée n'est pas encore fixe. Merci pour les trois méthodes, en l'état elle fonctionne bien mais avec 10 enregistrement dans chaque table, j'ai du mal à voir les performances : qu'elle la méthode la moins gourmande en ressource sur le serveur ?
__________________
Mon blog de création d'univers : Qualhiryann Mon site qui parle de moi moi.ozouf.com |
|
00
|
|
|
#5 |
![]() ![]() |
Si vos tables sont correctement indexées ça devrait être équivalent (et rapide).
J'ai fait le test avec deux tables de 3M de lignes, ça répond en trois secondes (pour un résultat de presque 3M lignes aussi).
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() |
Merci pour tout, je garde les scripts précieusement dans un coin et j'utilise le premier pour mon cas présent.
Bon week-end.
__________________
Mon blog de création d'univers : Qualhiryann Mon site qui parle de moi moi.ozouf.com |
|
00
|
Copyright © 2000-2012 - www.developpez.com