Salut à tous,
j'ai une requête SQL que je lance depuis Sql Serveur qui et connecté à un serveur Oracle 9i distant LinkedServeur, quand je lance cette même requête avec un paramètre direct dans OpenQuery elle prend juste 3 Seconde. Mais avec le même paramètre mais cette fois si à l'extérieur d'OpenQuery (requête paramétrer) elle prend 20 Secondes.
Je vais essayer d'être le plus possible expressif avec les deux requêtes:
Temps d'exécution de la requête 3 Secondes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT * FROM OpenQuery(LinkedOracle9i, 'SELECT t.Employer_Num, t.Date, t.Libelle, b.Nom, SubStr(t.Lib, 7, 15) Lib_Nom, SubStr(t.Lib, 1, 6) Lib_Nom1, Sum(t.Credit) As Credit, FROM Table1 t, Table2 b WHERE t.Centre = 1001 And t.Date = ''20181030'' And t.Centre = b.Centre And t.Canaux = ''9'' AND t.Employer_Num = b.Employer_Num Group By t.Employer_Num, t.lib, b.Nom, t.Date Order by SubStr(t.Libe, 1, 7), t.Employer_Num')
Temps d'exécution de la requête 22 Secondes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT * FROM OpenQuery(LinkedOracle9i, 'SELECT t.Employer_Num, t.Date, t.Libelle, b.Nom, SubStr(t.Lib, 7, 15) Lib_Nom, SubStr(t.Lib, 1, 6) Lib_Nom1, Sum(t.Credit) As Credit, FROM Table1 t, Table2 b WHERE t.Centre = 1001 -- And t.Date = ''20181030'' And t.Centre = b.Centre And t.Canaux = ''9'' AND t.Employer_Num = b.Employer_Num Group By t.Employer_Num, t.lib, b.Nom, t.Date Order by SubStr(t.Libe, 1, 7), t.Employer_Num') T1 Where T1.Date = CONVERT(NVARCHAR(MAX), CAST('30/10/2018' as date), 112)
Edi utiliser : Delphi 8X
j'ai essayé d'utiliser cette requête dans Delphi en utilisant les composants FIREDAC "FDQuery" voici la requête:
Le Nombre de guillemets utiliser c'est pour avoir une requête paramétrer, mais j'ai un message d'erreur le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT * FROM OpenQuery(LinkedOracle9i, 'SELECT t.Employer_Num, t.Date, t.Libelle, b.Nom, SubStr(t.Lib, 7, 15) Lib_Nom, SubStr(t.Lib, 1, 6) Lib_Nom1, Sum(t.Credit) As Credit, FROM Table1 t, Table2 b WHERE t.Centre = 1001 And t.Date = '''20181030''' And t.Centre = b.Centre And t.Canaux = ''9'' AND t.Employer_Num = b.Employer_Num Group By t.Employer_Num, t.lib, b.Nom, t.Date Order by SubStr(t.Libe, 1, 7), t.Employer_Num')
[FireDac][Phys][ODBC][Microsoft][SQL Server Native 10.0][SQL Server]Syntaxe incorrecte vers '@P1'..
J'espère avoir donnée assez d'information pour mon problème merci.
Partager