Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    389

    Come velocizzare query?

    Come posso velocizzare query access in quanto è lentissimo il caricamento, considerando che deve interrogare 10.000 record.

    Grazie.

    Ho provato anche con ado, senza query access ma solo con istruzioni sql.

    In Particolare:
    ho un treview che popolo con dei dati raccolti da database. Il formarsi di questo treeview è lentissimo.

    Come fare per velocizzare le query, qualsiasi cosa??

  2. #2
    prova a postare la query :quipy:

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    389

    vorrei un consiglio più generale

    ..non che faccia al caso mio, ma volevo sapere se collego piu tabelle, volevo sapere come poter rendere veloce il caricamento di record considerando una media di 10.000 record.

    Grazie.

  4. #4
    Usare gl'indici sui campi di ricerca o join

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    271
    Se lavori con una media di 10000 record il caricamento dell'albero richiederà comunque del tempo, qualsiasi tipo di query tu utilizzi.

    Prova ad ottimizzare il codice che carica i dati nel TreeView

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    389

    e come?

    era proprio quello che chiedevo, ossia come riuscire (in generale)ad ottimizzare il codice per rendere il tutto + veloce?

  7. #7
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877

    Re: e come?

    Originariamente inviato da cla80
    era proprio quello che chiedevo, ossia come riuscire (in generale)ad ottimizzare il codice per rendere il tutto + veloce?
    Dipende che tecnologie usi, nel senso di versione di Access e nel senso di tecnologia per accedere ai dati (DAO, ADO)
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    271
    Penso che la tecnologia che usi (DAO o ADO) non faccia la differenza quando il problema è riempire un albero con 10000 sottorami.

    Il rallentamento sta proprio nel fatto che tu fai un ciclo su tutta la tabella e quindi riempi in un unica volta l'albero.

    Se i tuoi dati sono suddivisibili in sottosezioni (come penso che sia altrimenti a cosa serve l'albero?), potresti usare proprio queste sottosezioni. Mi spiego meglio:

    All'avvio del form riempi l'albero solo con il primo livello di dati.
    Es. se stai inserendo delle anagrafiche, il primo livello sara "Comune", quindi fai una
    codice:
    SELECT Comune FROM TABELLA GROUP BY Comune
    Quando vai ad aprire un ramo (es. ROMA) carichi come "figli" del ramo ROMA i record Estratti con
    codice:
    SELECT Cognome FROM TABELLA WHERE Comune = 'ROMA' GROUP BY Cognome
    e così via per tutti i livelli di dettaglio che vuoi aggiungere.

    In questo modo l'apertura sara molto più veloce e dividi il tempo di attesa (comunque non troppo alto) man mano che esplori l'albero.

    Spero di essere stao esauriente

  9. #9
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Originariamente inviato da IKON
    Penso che la tecnologia che usi (DAO o ADO) non faccia la differenza quando il problema è riempire un albero con 10000 sottorami.
    Cambia molto la velocità di scorrimento di dati tra DAO e ADO.

    Il rallentamento sta proprio nel fatto che tu fai un ciclo su tutta la tabella e quindi riempi in un unica volta l'albero.

    Se i tuoi dati sono suddivisibili in sottosezioni (come penso che sia altrimenti a cosa serve l'albero?), potresti usare proprio queste sottosezioni. Mi spiego meglio:

    All'avvio del form riempi l'albero solo con il primo livello di dati.
    Es. se stai inserendo delle anagrafiche, il primo livello sara "Comune", quindi fai una
    codice:
    SELECT Comune FROM TABELLA GROUP BY Comune
    Quando vai ad aprire un ramo (es. ROMA) carichi come "figli" del ramo ROMA i record Estratti con
    codice:
    SELECT Cognome FROM TABELLA WHERE Comune = 'ROMA' GROUP BY Cognome
    e così via per tutti i livelli di dettaglio che vuoi aggiungere.

    In questo modo l'apertura sara molto più veloce e dividi il tempo di attesa (comunque non troppo alto) man mano che esplori l'albero.

    Spero di essere stao esauriente
    Così se l'utente ti clicca continuamente sul "+" dell'albero per aprire o chiudere un ramo ti manda in palla tutto ...:quipy:
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  10. #10
    Originariamente inviato da biste
    Cambia molto la velocità di scorrimento di dati tra DAO e ADO.



    Così se l'utente ti clicca continuamente sul "+" dell'albero per aprire o chiudere un ramo ti manda in palla tutto ...:quipy:
    basta caricare il ramo solo quando non è ancora stato fatto. Se chiudi e riapri il ramo lo hai gia caricato.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.