Ciao a tutti,

ho un problema con l'esecuzione di una query su un archivio letto via ODBC e vorrei un vostro parere.

Dunque, il ponte ODBC mi permette di leggere i record direttamente da archivi Cobol grazie al driver RM Relativity.

Ho creato una parte di codice VB che consente di eseguire delle query su tali archivi...la struttura è la seguente:

codice:
cn = New OdbcConnection(STRINGADICONNESSIONE)
cn.ConnectionTimeout = 50
cm = New OdbcCommand(QUERY, cn)
cn.Open()
rd = cm.ExecuteReader(CommandBehavior.CloseConnection)

If rd.HasRows Then
      Do While rd.Read
            'Operazioni
      Loop
End If
Nella stringa di connessione è specificato il DNS, User e Password. Le prestazioni di lettura variano a seconda del tipo di QUERY che lancio.

se ad esempio eseguo una semplicissima query del tipo

SELECT * FROM Archivio1 ORDER BY Codice2

ho dei tempi di risposta abbastanza veloci, ma se imposto una query un pò più sofisticata del tipo

SELECT * FROM Archivio1 WHERE Codice1 IN (SELECT Codice FROM Archivio2 WHERE (Tipo=0 AND Valido NOT LIKE '0%')) ORDER BY Codice2

allora i tempi di risposta diventano indecenti e prima che l'esecuzione termini passano circa 5 minuti.

Va detto che l'Archivio1 contiene circa 7000 record mentre l'Archivio2 circa 6000. Secondo voi questi ordini di grandezza sono tali da giustificare dei tempi risposta così lunghi? E come potrei fare per ridurli?

Grazie per ogni informazione.