Discussione:
indicizzare tabella con circa 3 milioni di record
(troppo vecchio per rispondere)
pileggi
2007-10-23 08:26:01 UTC
Permalink
ho acquistato un database access consistente in una tabella con l'anagrafica
di circa 3 milioni di aziende italiane (per la precisione 2.715.097). La
tabella non è indicizzata e non c'è nemmeno un campo "CodiceAzienda", così
volevo crearlo, ma ho riscontrato delle difficoltà: se ad esempio creo un
campo "contatore" mi dice "superato il numero di blocchi per la condivisione
di file. Aumentare la voce di registro MaxLocksPerFile". Se vado nel registro
di sistema MaxLocksPerFile attualmente vale 251c in esadecimale. Prima di
cambiarla volevo chiedere consiglio (non sono un gran esperto).
Altri problemi li ho riscontrati provando a valorizzare un campo testuale
con un recordset e una variabile Long: arrivava ad aggiornarmi circa 300.000
record poi mi dava un errore che non ricordo.
Ho letto che in Access una tabella è limitata dalle sue dimensioni (non può
pesare più di 2 Gb) ma il mio database pesa complessivamente 758 Mb, non può
essere quello il problema.
Qualcuno può aiutarmi?
Grazie,
Pileggi
giorgio rancati
2007-10-23 08:37:06 UTC
Permalink
Post by pileggi
ho acquistato un database access consistente in una tabella con l'anagrafica
di circa 3 milioni di aziende italiane (per la precisione 2.715.097). La
tabella non è indicizzata e non c'è nemmeno un campo "CodiceAzienda", così
volevo crearlo, ma ho riscontrato delle difficoltà: se ad esempio creo un
campo "contatore" mi dice "superato il numero di blocchi per la condivisione
di file. Aumentare la voce di registro MaxLocksPerFile". Se vado nel registro
di sistema MaxLocksPerFile attualmente vale 251c in esadecimale. Prima di
cambiarla volevo chiedere consiglio (non sono un gran esperto).
Altri problemi li ho riscontrati provando a valorizzare un campo testuale
con un recordset e una variabile Long: arrivava ad aggiornarmi circa 300.000
record poi mi dava un errore che non ricordo.
Ho letto che in Access una tabella è limitata dalle sue dimensioni (non può
pesare più di 2 Gb) ma il mio database pesa complessivamente 758 Mb, non può
essere quello il problema.
Qualcuno può aiutarmi?
Ciao,
apri il database con l'opzione "Apertura Esclusiva" e apporta le modifiche.

Ciao
--
Giorgio Rancati
[Office Access MVP]
pileggi
2007-10-23 08:56:00 UTC
Permalink
Post by giorgio rancati
Ciao,
apri il database con l'opzione "Apertura Esclusiva" e apporta le modifiche.
Ciao Giorgio, grazie!
Adesso però mi dice "spazio insufficiente sul disco temporaneo". Sulla
partizione ove risiede il database ho 25,3 Gb liberi, ma forse intende
qualcos'altro...
C'è qualcos'altro che posso fare?
Grazie ancora,
Pileggi
giorgio rancati
2007-10-23 17:00:46 UTC
Permalink
Post by pileggi
Post by giorgio rancati
Ciao,
apri il database con l'opzione "Apertura Esclusiva" e apporta le modifiche.
Ciao Giorgio, grazie!
Adesso però mi dice "spazio insufficiente sul disco temporaneo". Sulla
partizione ove risiede il database ho 25,3 Gb liberi, ma forse intende
qualcos'altro...
C'è qualcos'altro che posso fare?
Grazie ancora,
umm.. quello è l'errore che viene generato quando non si apre il database
con l'opzione "Apertura Esclusiva"
Sicuro di aver selezionato l'opzione "Apertura Esclusiva" nella casella
combinata "Apri" ?

Ciao
--
Giorgio Rancati
[Office Access MVP]
pileggi
2007-10-23 17:37:02 UTC
Permalink
Post by giorgio rancati
umm.. quello è l'errore che viene generato quando non si apre il database
con l'opzione "Apertura Esclusiva"
Sicuro di aver selezionato l'opzione "Apertura Esclusiva" nella casella
combinata "Apri" ?
Si, l'ho rifatto anche adesso, stesso errore!
Sto anche provando a importare i dati in SQL Server e a indicizzare lì la
tabella ma ogni operazione che faccio è lentissima, mi sarebbe molto più
comodo lavorare in Access!

Ho appena importato la tabella in SQL Server, sto creando il campo
chiave-primaria e non sembra aver intenzione di sbrigarsi, non oso pensare
cosa succederà quando reimporterò la tabella in Access!
Approfitto che sono in contatto con te per chiederti questa cosa: prima di
riuscire a importare i dati ho fatto alcune prove esportando da Access con
connessione ODBC. Dopo lunge attese mi dava vari errori. La domanda è: non
restano in SQL Server tracce dei tentativi di esportazione, vero? (non vorrei
appesantire inutilmente il server)

Come sempre grazie,
Pileggi
giorgio rancati
2007-10-24 08:46:06 UTC
Permalink
Post by pileggi
Si, l'ho rifatto anche adesso, stesso errore!
Sto anche provando a importare i dati in SQL Server e a indicizzare lì la
tabella ma ogni operazione che faccio è lentissima, mi sarebbe molto più
comodo lavorare in Access!
Sql Server è un database strutturato per contenere miliardi di righe quindi
penso che il problema sia il metodo con cui lo interroghi.
Post by pileggi
Ho appena importato la tabella in SQL Server, sto creando il campo
chiave-primaria e non sembra aver intenzione di sbrigarsi, non oso pensare
cosa succederà quando reimporterò la tabella in Access!
se usi il driver odbc devi considerare che ogni record inserito comporta
un'istruzione inviata a Sql Server.
Per i grossi caricamenti di massa ti conviene usare Sql Server Managment
Studio, premi click di destra sul database di destinazione, poi
Attività-->Importa Dati e segui il wizard.
Post by pileggi
Approfitto che sono in contatto con te per chiederti questa cosa: prima di
riuscire a importare i dati ho fatto alcune prove esportando da Access con
connessione ODBC. Dopo lunge attese mi dava vari errori. La domanda è: non
restano in SQL Server tracce dei tentativi di esportazione, vero? (non vorrei
appesantire inutilmente il server)
Dipende da cosa hai risposto quando sono usciti gli errori, comunque basta
che guardi se la tebella di destinazione è vuota o no. Sicuramente il
tentativo non andato a buon fine è passato per il file di Log che ovviamente
sarà di dimensioni più grandi ma questa è una cosa normale.

Ciao
--
Giorgio Rancati
[Office Access MVP]
pileggi
2007-10-24 12:53:00 UTC
Permalink
Post by giorgio rancati
Per i grossi caricamenti di massa ti conviene usare Sql Server Managment
Studio, premi click di destra sul database di destinazione, poi
Attività-->Importa Dati e segui il wizard.
Grazie, alla fine ero arrivato alla stessa conclusione!
Post by giorgio rancati
Post by pileggi
Approfitto che sono in contatto con te per chiederti questa cosa: prima di
riuscire a importare i dati ho fatto alcune prove esportando da Access con
connessione ODBC. Dopo lunge attese mi dava vari errori. La domanda è: non
restano in SQL Server tracce dei tentativi di esportazione, vero? (non vorrei
appesantire inutilmente il server)
Dipende da cosa hai risposto quando sono usciti gli errori, comunque basta
che guardi se la tebella di destinazione è vuota o no. Sicuramente il
tentativo non andato a buon fine è passato per il file di Log che ovviamente
sarà di dimensioni più grandi ma questa è una cosa normale.
Grazie! Alla fine sono riuscito a fare tutto, anche se non in modo celere.
Ciao,
Pileggi
pileggi
2007-10-23 18:06:04 UTC
Permalink
Post by giorgio rancati
umm.. quello è l'errore che viene generato quando non si apre il database
con l'opzione "Apertura Esclusiva"
Sicuro di aver selezionato l'opzione "Apertura Esclusiva" nella casella
combinata "Apri" ?
scusa, ti spiego meglio cosa faccio:
- apro access
- file - apri
dalla finestra di dialogo clicco sulla freccettina a fianco a al pulsante
"Apri" quindi su "Apertura Esclusiva"
Pileggi
pileggi
2007-11-09 18:11:01 UTC
Permalink
Post by giorgio rancati
umm.. quello è l'errore che viene generato quando non si apre il database
con l'opzione "Apertura Esclusiva"
Sicuro di aver selezionato l'opzione "Apertura Esclusiva" nella casella
combinata "Apri" ?
Ti voglio segnalare un articolo della kb (tradotto automaticamente
dall'inglese, ma qualcosa si capisce):
http://support.microsoft.com/kb/286153/
Un po' aiuta, ma ho capito che con tabelle così grosse ci vuole proprio SQL
Server.
Ciao,
Pileggi
giorgio rancati
2007-11-10 01:57:22 UTC
Permalink
Post by pileggi
Post by giorgio rancati
umm.. quello è l'errore che viene generato quando non si apre il database
con l'opzione "Apertura Esclusiva"
Sicuro di aver selezionato l'opzione "Apertura Esclusiva" nella casella
combinata "Apri" ?
Ti voglio segnalare un articolo della kb (tradotto automaticamente
http://support.microsoft.com/kb/286153/
Un po' aiuta, ma ho capito che con tabelle così grosse ci vuole proprio SQL
Server.
conosco quell'articolo ma è inerente ad un db aperto in modalità non
esclusiva.
I db aperti in modalità esclusiva non hanno bisogno di bloccare i records.
In genere questo tipo di apertura come puoi vedere
----
Memoria o spazio disco insufficiente
http://www.google.it/groups?threadm=***@tk2msftngp13.phx.gbl
----
risolve

Comunque buon per te che hai scelto di fare il tutto con Sql Server.
:-)
--
Giorgio Rancati
[Office Access MVP]

Loading...