Avatar billede fuldstop Nybegynder
29. september 2007 - 17:31 Der er 7 kommentarer og
1 løsning

Select med flere betingelser - Oracle - ASP.

Jeg har følgende SQL-forespørgelse til en Oracle DB vha. ASP. Den virker sådan set også fint (det går hurtigt).

strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND STI1='OMRAADE' AND STI2='DELOMRAADE' ORDER BY TIMESTAMP"

Tilføjer jeg en betingelse til; til forespørgelsen, ja så sker der absolut intet og IIS laver en timeout. F.eks:

strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND STI1='OMRAADE' AND STI2='DELOMRAADE' STI3='HUSKI' ORDER BY TIMESTAMP"

Fjernes en af betingelserne igen, ja så virker det fint. En der kan forklare det, og hvordan man får flere betingelser på uden IIS "timer ud"?
Avatar billede fuldstop Nybegynder
29. september 2007 - 17:31 #1
Der skulle lige et AND med, men det er ikke det der er problemet...

strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND STI1='OMRAADE' AND STI2='DELOMRAADE' AND STI3='HUSKI' ORDER BY TIMESTAMP"
Avatar billede arne_v Ekspert
29. september 2007 - 20:12 #2
Der er ingen grund til at en ekstra betingelse skal give timeout.

Kan du copy paste de to stykker kode (med og uden den ekstra betingelse) ?
Avatar billede fuldstop Nybegynder
30. september 2007 - 08:24 #3
Her er koden med og uden den ekstra betingelse

Uden ekstra betingelse:

<%
Set con = Server.CreateObject("ADODB.Connection")
    con.Open "Driver={Microsoft ODBC for Oracle};Server=XXXXX;Uid=xxxxx;Pwd=xxxxxx;"
    con.Execute "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'"
    strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND PATH1='OMRAADE' AND PATH2='KC00' ORDER BY TIMESTAMP"
    Set rs = con.Execute(strSQL)
   
    Do
   
Response.Write rs("TIMESTAMP") & " " & rs("PATH1") & "_" & rs("PATH2") & "_" & rs("PATH3") & "_" & rs("PATH4") & "_" & rs("PATH5") & "&nbsp;&nbsp;&nbsp;" & rs("VALUE_AVG") & "<br>"

    rs.MoveNext

    Loop While Not rs.EOF
   
    con.Close
Set con = Nothing
%>


Med den ekstra betingelse (som giver timeout):

<%

Set con = Server.CreateObject("ADODB.Connection")
    con.Open "Driver={Microsoft ODBC for Oracle};Server=XXXXX;Uid=xxxxx;Pwd=xxxxxx;"
    con.Execute "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'"
    strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND PATH1='OMRAADE' AND PATH2='KC00' AND PATH3='FCKC00' ORDER BY TIMESTAMP"
    Set rs = con.Execute(strSQL)
   
    Do
   
Response.Write rs("TIMESTAMP") & " " & rs("PATH1") & "_" & rs("PATH2") & "_" & rs("PATH3") & "_" & rs("PATH4") & "_" & rs("PATH5") & "&nbsp;&nbsp;&nbsp;" & rs("VALUE_AVG") & "<br>"

    rs.MoveNext

    Loop While Not rs.EOF
   
    con.Close
Set con = Nothing
%>

Forstår det simpelthen ikke, går lyn hurtigt med at hente firespørgelsen i første tilfælde, men tilføjes den ekstra betingelse, ja så timer den ud.

Sletter jeg f.eks en af betingelserne, det er ligemeget hvilken af dem, ja så virker den igen (ingen timeout). F.eks:

<%

Set con = Server.CreateObject("ADODB.Connection")
    con.Open "Driver={Microsoft ODBC for Oracle};Server=XXXXX;Uid=xxxxx;Pwd=xxxxxx;"
    con.Execute "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'"
    strSQL = "SELECT * FROM FEM_MIN WHERE TIMESTAMP BETWEEN '2007-08-01 01:00:00' AND '2007-08-01 01:10:00' AND PATH2='KC00' AND PATH3='FCKC00' ORDER BY TIMESTAMP"
    Set rs = con.Execute(strSQL)
   
    Do
   
Response.Write rs("TIMESTAMP") & " " & rs("PATH1") & "_" & rs("PATH2") & "_" & rs("PATH3") & "_" & rs("PATH4") & "_" & rs("PATH5") & "&nbsp;&nbsp;&nbsp;" & rs("VALUE_AVG") & "<br>"

    rs.MoveNext

    Loop While Not rs.EOF
   
    con.Close
Set con = Nothing
%>
Avatar billede fuldstop Nybegynder
30. september 2007 - 12:05 #4
Hmm mærkeligt, hvis jeg prøver at importer eksterne data vha. excel fra samme Oracle DB, sker akkurat det samme. Bortset fra at excel "fryser" (Programmet svare ikke).
Avatar billede fuldstop Nybegynder
30. september 2007 - 13:23 #5
....og samme problem ved isqlplus :)
Avatar billede fuldstop Nybegynder
30. september 2007 - 14:11 #6
Kunne det være ODBC-driveren, det er galt med?
Avatar billede fuldstop Nybegynder
01. oktober 2007 - 19:37 #7
Er nok nået til den konklusion at det evt. kan være oracle optimizeren som ødelægger det.
Avatar billede fuldstop Nybegynder
01. december 2007 - 21:51 #8
lukket....(ingen løsningen fundet)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester