|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
Bonjour à tous,
J'ai un petit soucis sous sql server 2008R2 pour faire une requête sous un un serveur oracle. Ma requête est faite sous toad, et fonctionne. Mon but serai de créer une table contenant le résultat de ma requête sous sql server. Déjà, j'essaye de faire la requête sélection ... Code :
Qui aurai une idée ? Merci d'avance ! CG |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Et avec cette syntaxe ?
Code :
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
Bonjour !
J'y avait penser ... Seul soucis, c'est la taille de la table dans oracle ... plus de 250Gb ... En plus, cette table oracle possède une architecture en "arbre" je crois. Sachant que dans ma requete oracle, je fais un tri ... Voici la requête : Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() |
Commencez déjà par améliorer votre requête, utilisez la méthode décrite dans ce sujet :
http://www.developpez.net/forums/d10...l/#post5959473 Si c'est un problème de longueur de requête, vous pouvez toujours créer une vue sur Oracle et faire un select sur celle-ci depuis SQL-Server.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Votre requete vous renvoie une seule ligne par DEM_ID ?
que donne celle-ci (qui est "Waldar certified" Code SQL :
|
||
|
|
10
|
|
|
#6 |
![]() ![]() |
Bien vu aieeeuuuuu
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
Merci pour la requête oracle, c'est de l'optimisation.
Effectivement la requête est trop longue ... Le hic c'est que je ne suis pas admin de la base oracle, et demander une vue est chose longue, j'ai déjà essayer et abandonné vu les procédures qu'on me demande... C'est pour ça que je voulais utiliser la méthode serveur lié. |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
J'ai modifier la requête comme dit plus haut, ça fait 10 mn qu'elle tourne
Je vais me faire tapper sur les doigts pour l'occupation serveur
|
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
En fait, la condition DI1.DI_VALUE LIKE 'XXX%' permet de filtrer 95% des lignes ...
|
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() |
Citation:
J'entends par là regardez le plan d'execution estimé et regardez si le nbr de ligne qu'il s'attend à retourner est correct...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
10
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
Le soucis est justement la dessus, je n'arrive pas à l'exécuter via le serveur lié ...
La seule méthode que j'ai trouver c'est comme suit sous sql-server ... Code :
|
||
|
|
00
|
|
|
#13 | |
![]() ![]() |
Citation:
Ce filtre est effectivement essentiel, mais il faut s'assurer qu'avec la réécriture on peut le mettre dans le WHERE avec les autres filtres. Plus fonctionnellement, ce filtre vous ne l'avez mis en place que pour le paramètre "/client". Est-il également valide pour les autres paramètres ?
__________________
Email : http://scr.im/waldar |
|
|
10
|
|
|
#14 | ||||
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
Actuellement, pour un dem_id on a :
DEM_ID DI_PARAM DI_VALUE 014242 /line/statut A 014242 /id L0754126 014242 /contrat/commande_client XXX01564891 Et ainsi de suite. L'objectif étant d'avoir les infos sur une ligne pour un même dem_id. Sinon, je voudrai savoir avec une variable, comment la mettre dans openquery ? C'est à dire, imaginons la requête suivante : Code :
J'ai testé : Code :
merci d'avance ... |
||||
|
|
00
|
|
|
#15 | ||||
![]() ![]() |
Ok, par rapport à vos données il vaut compléter la requête que vous a proposé aieeeuuuuu :
Code :
Code :
Une de ces requêtes doit aller plus vite que votre requête initiale. Testez-la directement sous TOAD.
__________________
Email : http://scr.im/waldar |
||||
|
10
|
|
|
#16 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
Pour la première méthode 1 j'ai 7mn30 de traitement sous toad. Celle ci s'exécutant la nuit le weekend, c'est largement bon.
Maintenant reste à déterminer comment l'implémenter dans sql server... Thx ! |
|
|
00
|
|
|
#17 |
![]() ![]() |
Oui enfin si votre requête précédente faisait deux minutes, ça ne va pas dans le bon sens.
Il faudrait tester les deux requêtes bout à bout pour avoir des conditions d'exécution relativement similaires.
__________________
Email : http://scr.im/waldar |
|
10
|
|
|
#18 | ||
|
Membre Expert
![]() |
Citation:
Citation:
A voir si vous ne pourriez pas importer les données en lignes puis faire le traitement côté SQL SERVER sur des/une table(s) nettement plus petite(s).
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
||
|
|
10
|
|
|
#19 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
@Waldar, soit je ne comprends pas ta requête, soit je la comprend, et il y a une erreur
car il me semble que le but de ta jointure était de traiter "à part" le cas "client" qui doit subir un filtre supplémentaire non ?!? Code SQL :
|
||
|
|
10
|
|
|
#20 | ||
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 12 ![]() |
Bonjour,
Alors voici le plan d'exécution que sqlserver me dit : J'ai tenter une exécution cette nuit, au bout de 16heures d'exécution... J'ai pas réussi à mettre en place les conditions, je vais tenter de le faire là. Voici la requête qui au bout de 16h, n'a rien donné (tourner toujours...) Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com