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:
Nella stringa di connessione è specificato il DNS, User e Password. Le prestazioni di lettura variano a seconda del tipo di QUERY che lancio.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
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.