Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    1

    lentezza nell' accesso ai dati

    SISTEMA OPERATIVO: WINDOWS 2003 SP1
    LINGUAGGIO DI PROGRAMMAZIONE: VISUAL STUDIO 2005
    Microsoft .NET Framework SDK v2.0

    Una domanda semplice semplice:
    ho un file MDB con dentro una semplice tabella chiamata abicab con 52.323 campi; ho creato una form con visual basic .net, messo l'accesso alla tabella ed inserito una griglia con la relativa toolbar dei controlli del database. In fase di avvio dell'applicazione per popolare la griglia occorrono circa 5/6 secondi.
    Perche' questo?
    Io che utilizzo foxpro per popolare una griglia di 230.000 record impiego 2/3 sec.

  2. #2
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    Re: lentezza nell' accesso ai dati

    Originariamente inviato da sgtec
    LINGUAGGIO DI PROGRAMMAZIONE: VISUAL STUDIO 2005
    VS 2005 è l'IDE e non il linguaggio di programmazione!
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Credo che il problema possa dipendere da molti fattori: innanzitutto, un database con un così elevato numero di colonne è molto probabilmente progettato in modo non corretto o comunque ha una struttura discutibile.

    Se la query costruita prevede il reperimento di tutti i campi della tabella, senz'altro questo rallenta le prestazioni, benché io sia convinto che non tutti quei campi siano di interesse per la visualizzazione all'interno di una griglia, per fare un esempio.

    In seguito, si dovrebbe vedere inoltre quanti record sono presenti nella tabella, e se ha un senso precaricarli tutti, considerando anche l'elevato numero di campi di cui è costituita.

    Infine, non è dato sapere quale sia il codice o comunque le classi adottate per la lettura dei record dalla tabella.

    In sostanza, ci sono alcuni aspetti oscuri a livello di progettazione del database e alcuni fattori sconosciuti che rendono impossibile stabilire il motivo della lentezza nel reperimento dei dati.

    Aggiungi le informazioni mancanti, così avremo la possibilità di approfondire.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580

    Re: lentezza nell' accesso ai dati

    Originariamente inviato da sgtec
    SISTEMA OPERATIVO: WINDOWS 2003 SP1
    LINGUAGGIO DI PROGRAMMAZIONE: VISUAL STUDIO 2005
    Microsoft .NET Framework SDK v2.0

    Una domanda semplice semplice:
    ho un file MDB con dentro una semplice tabella chiamata abicab con 52.323 campi; ho creato una form con visual basic .net, messo l'accesso alla tabella ed inserito una griglia con la relativa toolbar dei controlli del database. In fase di avvio dell'applicazione per popolare la griglia occorrono circa 5/6 secondi.
    Perche' questo?
    Io che utilizzo foxpro per popolare una griglia di 230.000 record impiego 2/3 sec.
    52.323 campi???????
    ascolta,contatta subito il dba, questo è un folle!
    forse ti conviene crearti una vista con SOLO i campi che ti servono! è l'unica soluzione secondo me, a parte il fatto di creare + tabelle per lo meno dividi quella attuale!

    a parte il fatto che fox pro lavora diversamente,non si puo' dare un giudizio su due piedi in quanto la griglia che ti offre visual studio è totalmente diversa da quella di fox pro
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  5. #5
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151

    Re: Re: lentezza nell' accesso ai dati

    Originariamente inviato da Kahm
    52.323 campi???????
    Immagino che volesse dire record... la vedo dura avere un record composto da tutti quei campi..

    Per quanto riguarda la lentezza per l'accesso ai dati, quoto quanto detto da alka. Ad esempio, c'è una notevole differenza tra usare un oggetto DataSet o un DataAdapter.
    Come già detto, vedi di filtrare i record invece di caricarli tutti insieme..
    Comunque sia,con la teconologia .NET l'accesso ai dati è un po' più lento che con altri linguaggi non facenti parte di questa tecnologia..
    Jupy

  6. #6
    Si scusate volevo scrivere record ma stavo pensando ad altro. Ora, comunque, sono 65.000 record e servono tutti quando viene caricata la form visto che sono gia' il risultato di un filtraggio dati da AS/400. Questa è una tabella piccolina. Noi di solito lavoriamo con dati che vanno dai 500.000 in su. Una tabella grandina fa' circa 1.762.432 record.
    Ora....il programma (molto semplice) che fa girare questo marasma di dati è stato generato con FOXPRO e finora si è dimostrato un'ottimo prodotto, veloce ed affidabile ma limitato per certi aspetti. Stavamo quindi valutando e provando l'export e la riprogettazione del programma ed abbiamo valutato alcuni prodotti (es visual studio, Delphi, ecc).
    Potrebbe essere valida l'idea di caricare parte dei dati e man mano che si scorre la tabella si caricano i restanti. Filtrarli non serve perche' son gia' filtrati e servono ad un robots che li analizza uno ad uno nella griglia (ma questo lo fa in brevissimo tempo).
    Per quanto riguarda il codice o la classe di lettura ed accesso alla tabella abbiamo provato tutte le soluzioni che Visual Studio puo' proporre.
    Concordo invece con Jupy64 :"....l'accesso ai dati è un po' più lento che con altri linguaggi non facenti parte di questa tecnologia.."
    Un po' piu' lenta vuol dire questo: Visual Basic 6 e tabella da 1.000.000 record = 4 secondi. Visual studio .net e tabella da 1.000.000 record = 10 min circa.. (sono prove che facciamo noi in laboratorio)

  7. #7
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Originariamente inviato da gssergio
    Si scusate volevo scrivere record ma stavo pensando ad altro. Ora, comunque, sono 65.000 record e servono tutti quando viene caricata la form visto che sono gia' il risultato di un filtraggio dati da AS/400. Questa è una tabella piccolina. Noi di solito lavoriamo con dati che vanno dai 500.000 in su. Una tabella grandina fa' circa 1.762.432 record.
    Ora....il programma (molto semplice) che fa girare questo marasma di dati è stato generato con FOXPRO e finora si è dimostrato un'ottimo prodotto, veloce ed affidabile ma limitato per certi aspetti. Stavamo quindi valutando e provando l'export e la riprogettazione del programma ed abbiamo valutato alcuni prodotti (es visual studio, Delphi, ecc).
    Potrebbe essere valida l'idea di caricare parte dei dati e man mano che si scorre la tabella si caricano i restanti. Filtrarli non serve perche' son gia' filtrati e servono ad un robots che li analizza uno ad uno nella griglia (ma questo lo fa in brevissimo tempo).
    Per quanto riguarda il codice o la classe di lettura ed accesso alla tabella abbiamo provato tutte le soluzioni che Visual Studio puo' proporre.
    Concordo invece con Jupy64 :"....l'accesso ai dati è un po' più lento che con altri linguaggi non facenti parte di questa tecnologia.."
    Un po' piu' lenta vuol dire questo: Visual Basic 6 e tabella da 1.000.000 record = 4 secondi. Visual studio .net e tabella da 1.000.000 record = 10 min circa.. (sono prove che facciamo noi in laboratorio)
    le risposte sono molteplici:
    se ti serve la velocita' e vuoi usare visual studio allora usa un datareader e un datagrid per caricare, se vuoi usare vb6...datagrid anche qui!
    se non vuoi usare la velocita' ma hai bisogno di manipolare i dati allora un datatable con visual studio

    come vedi le soluzioni ci sono, ma dipende da cosa ci dovresti fare, oltre al caricamento della griglia
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Io scriverei un po' di codice, tanto per verificare che sia corretto... non vorrei che nel fare tentativi con qualsiasi linguaggio e ambiente, ci fosse una certa "leggerezza" nello stendere codice che poi, alla fine, deve fare un compito semplice ma in cui l'imprecisione nell'uso di determinate classi può influire.

    In ogni caso, io valuterei l'adozione di un linguaggio o ambiente di sviluppo in base alla piattaforma indirizzata e ai requisiti dell'applicazione... gestire qualche decina di migliaia di record non è un problema per nessun linguaggio attuale, direi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.