Domanda

Scenario : C'è un programma legacy (non so cosa la lingua) e mi è stato chiesto di "forme compatte e archiviare nel database". Nel momento in cui l'utente apre l'applicazione che sta prendendo circa 2-5min per caricare intorno 27000 Records !!! La mia teoria è che si sta caricando tutti i record in fase di start-up, ma che potrebbe non essere l'unica ragione. Dopo aver fatto qualche scavo e di trovare una fine Access Torna che è corretto, ho trovato anche gli stessi file di accesso a 15 + altri azioni all'interno della società. Ora, questa applicazione è stata creata intorno al 1997, quando sto cercando di indovinare accesso era la norma, ma sarebbe in realtà essere afferrando dati da database di Access 15+? Ciò che sembra essere la norma per accelerare questo programma è quello di archiviare i vecchi record a un altro database di accesso (che è il motivo per cui sto pensando è carico tutto ciò allo start-up.

Domanda : ho una riunione il Lunedi per discutere il programma e chiedevo se qualcuno potrebbe suggerire alcune domande utili, teorie, soluzioni, ecc Non è che io non posso fare questo sul mio proprio, penso solo che un altro punto di vista non poteva ferire. Anche un altro fatto divertente è che io possa essere o non essere in grado di ottenere il codice sorgente, perché potrebbe essere stato creato da un imprenditore e il codice perso molto tempo fa.

Nota laterale : Sarebbe possibile per l'Accesso ai vecchi dischi auto-archivio? Ciò significherebbe il loro trasferimento ad un altro DB chiamato XXXArch.

Grazie in anticipo. Cercherò di rispondere a tutte le domande che avete.

Modifica :

Ecco un aggiornamento sulla situazione.

Sembra che il suo solo utilizzando un database come il principale e uno per archiviare. Ho ancora ancora avere il mio account utente per aprire l'applicazione, ma quando si cerca nel database c'è una tabella utente con l'ID di accesso e la stessa password (password) così ho provato il login come uno di quegli utenti e semplicemente selezionando un po ' dati non modifica nulla. Quando si seleziona Sono stato in grado di ottenere i dati quasi istantaneamente e non vedevo alcuna del rallentamento che gli altri utenti stavano ottenendo. Non ho ancora visto il codice sorgente, ma da quello che posso dire (prendendo l'exe e la messa in notepad) sembra che è stato codificato in VBA e probabilmente creato con MS Access. Inoltre sembra che l'applicazione crea un temp.mdb in una cartella di dati. Attualmente non ha nulla in esso. Non ci sono tavoli, niente. Sto assumendo / sperando che questo è ciò che sta rallentando gli utenti verso il basso e può solo essere cancellato per migliorare le prestazioni. Io posto un altro aggiornamento Una volta che ho il codice sorgente e avere una migliore idea di ciò che è rallentarla.

È stato utile?

Soluzione

Un paio di cose da considerare:

Access (MDB) database tendono ad avere bisogno di regolare compatto / riparazione come avrete notato nel titolo se sono in uso frequente. Tuttavia raramente ho trovato che aiuta le prestazioni più che in minima parte. Se è passato davvero tanto tempo il file può gonfiare davvero grande e che potrebbe essere parte del problema se gli utenti accedono esso tramite una connessione di rete lenta.

Qualcuno sta per suggerire l'aggiornamento a un server "Bigger" DB come SQL, sia nella vostra azienda o in questo forum. Non farlo finché non si è isolato il problema o se non avete un motivo diverso prestazioni. C'è una possibilità ragionevole i problemi sono causati da una cattiva progettazione delle applicazioni o l'architettura DB. Lanciare uno strumento più potente al problema senza cambiare l'approccio è improbabile che aiuto.

Un Access DB sta per uscire sul massimo di utenti simultanei molto prima che arriva al massimo sui dati. Ha fatto un sacco di utenti (30+) basta iniziare a utilizzare il sistema? Questo potrebbe essere parte del problema.

Archiviazione vecchi dischi: Si stanno per avere a costruire qualcosa per fare questo. La buona notizia è che non è così difficile.

Accesso 15+ database: Sei sicuro che la GUI front-end non è scritto in Access. È un'architettura comune con accesso per avere un frontale MDB caricato sulla macchina dell'utente finale (copiato ovunque) connessione ad un file di dati MDB centrale sulla rete. Il modo migliore per raccontare è quello di aprire i database e vedere se contengono solo tabelle o tabelle + forme / rapporti.

Altri suggerimenti

Mi sembra il vostro primo ordine del giorno dovrebbe essere quello di risolvere il problema:

I può o non può essere in grado di ottenere il codice sorgente, perché potrebbe essere stato creato da un imprenditore e il codice perso molto tempo fa.

Allo stato attuale, si sta chiedendo a noi di speculare sulle cause e rimedi per la lentezza ... senza alcuna conoscenza di quello che sta realmente accadendo.

Se non si dispone di codice sorgente, non è possibile modificare il database back-end di SQL Server né altro.

Tuttavia, se effettivamente hanno accesso ai file di dati e sono in grado di modificarli, perché non controllare l'indicizzazione? record 27K è banale per qualsiasi database, tra cui accesso, e la lentezza nel caricamento dei dati suggeriscono a me che i tavoli sono semplicemente non indicizzati correttamente. Se si esaminano le tabelle e vedere nessun indice sui campi evidenti, quindi provare aggiungendoli e vedere se accelera le cose.

Se non lo fa, allora significa l'applicazione è mal progettato e dato che ti manca il codice sorgente, non c'è un bel po 'si può fare al riguardo.

Tutto ciò presuppone, ovviamente, che l'ambiente di rete è appropriato per Access / Jet / ACE. Cioè, se questi file di database vengono raggiunti attraverso qualcosa di diverso da una LAN cablata, allora non c'è nulla può essere fatto su di esso (WAN e Wi-Fi sono completamente fuori per Jet / ACE).

Infine, in materia di archiviazione, penso che non v'è alcuna giustificazione per l'archiviazione di dati mai a meno che realmente sta eseguendo contro i limiti duri su hardware / software. In questo caso, non si è nemmeno vicino a quello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top