Accodamento tabelle

sabato 03 novembre 2012 - 14.36
Tag Elenco Tags  Windows 7  |  Windows XP  |  Access (.mdb)  |  Office 2010  |  Office 2007

sagrimal Profilo | Junior Member

Ciao a tutti, vengo subito al sodo
Ho una tabella che contiene 10.000 record, questa tabella è posta su un server ed è collegata ad un data base access, che tramite una maschera inserisce i record nella tabella che chiamerò "PACCHI_01"
il problema è che quabdo apro il data base access impiega un mare di tempo a collegare la tabella, Infatti in basso allo schermo si vede una barra di scorrimento che avanza lentamente, e quando vado ad inserire un record il database si blocca e si sblocca solo quando ha terminato la scrittura del record.
Ho pensato di creare una tabella gemella non collegata ma immessa direttamente nel database, in modo da inserire i record e poi con una macro o una routine accodare i record immessi alla tabella collegata. Ma non so come fare.
Es. Tabella collegata "PACCHI_01" tabella situata nel database "PACCHI" nella tabella pacchi inserisco 10 record, alla fine dell'inserimento con un comando devo accodare i pacchi inseriti nella tabella collegata, poi devo cancellare tutti i record accodati in modo da pulire la tabella PACCHI per poter effettuare un secodo accodamento in modo da non correre il rischio di duplucare i record.
Grazie a tutti
Salvatore

pieroalampi Profilo | Expert

Ciao, secondo me non ha molto senso anche perché se devi immettere più di 10 campi ti trovi a dover aspettare lo stesso del tempo, forse la stessa struttura potrebbe essere modificata e snellita? Non avendo il db non posso giudicare ma la prima domanda e' quanti record crei al massimo ogni volta??? È poi guarda che una soluzione più solida va trovata perché il db non farà altro che crescete
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------

renarig Profilo | Expert

>Ho pensato di creare una tabella gemella non collegata ma immessa
>direttamente nel database, in modo da inserire i record e poi
>con una macro o una routine accodare i record immessi alla tabella
>collegata.

Quello che stai meditando è un paliativo che ti potra dare un po di
respiro ma anche tanti problemi

ed è di difficile gestione anche per utenti esperti se hai
accesi multipli alla stessa tabella

____________________________________________________________________


Il tuo problema potrebbe dipendere
__ dal DB che ha pochi indici
__ dal DB che ha troppi indici inutili
__ dalla rete
__ da query progettate male
__ eccetera

_______________________________________________________________________________

Come ben ti ha ricordato
>pieroalampi
>È poi guarda che una soluzione più solida va trovata perché il db non farà altro che crescete

mi sento anch'io di darti lo stesso consiglio,
Forse oggi il problema non è il DB ( non lo sappiamo ancora )
ma prima o poi il problema sarà il DB !!!

____________________________________________________________________________

Ti basta trovare una versione di:
__ SQLServerExpress
__ MySql
__ .... Poi ce ne sono altri

Tutti hanno la versione di base che è legalmente gratuita e utilizzabile




.

sagrimal Profilo | Junior Member

Grazie mille a tutti voi, provo a dire una sciocchezza, posso accodare una tabella ad una tabella di un db senza doverla collegare al mio db ?
Ciao a tutti
Salvatore

pieroalampi Profilo | Expert

Tu poi accodare un intero db ma non risolvi il problema perche lo stesso rimane del db principale in poche parole essendo lento alla base (da vedere il perche? hardware o struttura? ) con l'andare del tempo il prblema non farà altro che diventare sempre più grosso aumentando i tempi in modo inaccettabile, ti consiglio di ruguardare la stuttura dello stesso, eventuali relazioni, agire con delle inner join fra tabelle o cambiare db e pensare ad una macchina server insomma ci sono diverse soluzioni.

CIAO
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------

sagrimal Profilo | Junior Member

Ciao grazie innanzitutto per la risposta, in effetti il server è un pc con windows 7 la distanza tra il server ed il client è circa 300 mt. e la lan viaggia su fibre ottiche. Se elimino dalla tabella interessata i record che non servono archiviandoli in una tabella "ARCHIVIO" che consulto solo in caso di interrogazioni statistiche ? In modo che la tabella principale resti sempre di piccole dimensioni.
Grazie mille
Salvatore

pieroalampi Profilo | Expert

Il fatto che la rete sia in fibra non vuol dire molto anche se viaggiasse sul gb, se volessimo essere meticolosi bisognerebbe vedere che tipo di media conv. ci sono collegati, ma tutto questo non ha attinenza mi riferivo all'hw del server il fatto che non hai un server vero e proprio con un db tipo sql quello già rallenta il tutto, ma se proprio vuoi fare una modifica sostanziale puoi creare un file access con i record vecchi ed una procedura notturna che determini e sposti i record quando ritenuti vecchi dall'attuale db a quello di archivio, potresti creare tanti db quanti sono gli anni di gestione e quindi ogni anno creare un nuovo db, stabilendo la politica di gestione nelle connection string, altrimenti non hai via di scampo, sempre che tui non decida di cambiare db e migrare o su my sql o su sql server con un s.o. adeguato e una macchina adeguata.

SE RITIENI CHE LA RISPOSTA SIA RISOLUTIVA CHIUDI IL POST CLICCANDO SU ACCETTA
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5