Forum >> Programmazione Python >> Database >> Tempi lunghissimi popolamento tabella

Pagina: 1

Buonasera a tutti, il problema è presto spiegato.

Ho un file .txt che contiene circa 166.000 righe di articoli, ogni riga è composta da due solo campi.

Possibile che per caricare il file in una tabella Sqlite3 è da oltra 30 minuti .... e non si vede ancora traccia della fine.

Premetto che la macchina che sto usando è un Hp con processore i7 e 8 GB di ram; non è mica un po troppo lento il popolamento della tabella ?

Chiedo questo perchè dovro creare un'altra tabella che avra 25/30 campi e conterra' oltre le 250.000 righe.... ci mettera una settimama !!

Chiedo ... ma il db Sqlite3 che è lento .... oppure ???




for articolo_1 in dati_1:
codici_a_barre = [(articolo_10,articolo_11)]
c.executemany ('INSERT INTO Barcodes VALUES (?,?)',codici_a_barre)
conn.commit()





Queste sono le 4 righe di numero che stanno caricando i dati.




Grazie a chi mi puo' aiutare

P.s. : il oltre un'ora ha caricato SOLO 24.000 righe circa su 166.000.






--- Ultima modifica di trescon in data 2018-06-11 00:26:24 ---
------
Alberto
Buonasera a tutti, il problema è presto spiegato.
Ho un file .txt che contiene circa 166.000 righe di articoli, ogni riga è composta da due solo campi.
Possibile che per caricare il file in una tabella Sqlite3 è da oltra 30 minuti .... e non si vede ancora traccia della fine.
Premetto che la macchina che sto usando è un Hp con processore i7 e 8 GB di ram; non è mica un po troppo lento il popolamento della tabella ?
Chiedo questo perchè dovro creare un'altra tabella che avra 25/30 campi e conterra' oltre le 250.000 righe.... ci mettera una settimama !!
Chiedo ... ma il db Sqlite3 che è lento .... oppure ???
Oppure, direi :P

cm@hemp:/tmp
$ echo 'create table Barcodes(a, b);'|sqlite3 trescon.db
cm@hemp:/tmp
$ for i in $(seq 166000); do printf '%s,%s\n' $i $i >> trescon.csv; done
cm@hemp:/tmp
$ ed trescon.py
trescon.py: File o directory non esistente
a
import sqlite3
c = sqlite3.connect('trescon.db')
codici_a_barre = [i.split(',') for i in open('trescon.csv')]
c.executemany('INSERT INTO Barcodes VALUES (?,?)', codici_a_barre)
c.commit()
.
wq
188
cm@hemp:/tmp
$ t python trescon.py
0.26u 0.03s 0.32r 94%CPU 57728kB python trescon.py
cm@hemp:/tmp
$ echo 'select count(*) from Barcodes;' | sqlite3 trescon.db 
166000


THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Buonasera a tutti, il problema è presto spiegato.
Ho un file .txt che contiene circa 166.000 righe di articoli, ogni riga è composta da due solo campi.
Possibile che per caricare il file in una tabella Sqlite3 è da oltra 30 minuti .... e non si vede ancora traccia della fine.
Premetto che la macchina che sto usando è un Hp con processore i7 e 8 GB di ram; non è mica un po troppo lento il popolamento della tabella ?
Chiedo questo perchè dovro creare un'altra tabella che avra 25/30 campi e conterra' oltre le 250.000 righe.... ci mettera una settimama !!
Chiedo ... ma il db Sqlite3 che è lento .... oppure ???
Oppure, direi :P

cm@hemp:/tmp
$ echo 'create table Barcodes(a, b);'|sqlite3 trescon.db
cm@hemp:/tmp
$ for i in $(seq 166000); do printf '%s,%s\n' $i $i >> trescon.csv; done
cm@hemp:/tmp
$ ed trescon.py
trescon.py: File o directory non esistente
a
import sqlite3
c = sqlite3.connect('trescon.db')
codici_a_barre = [i.split(',') for i in open('trescon.csv')]
c.executemany('INSERT INTO Barcodes VALUES (?,?)', codici_a_barre)
c.commit()
.
wq
188
cm@hemp:/tmp
$ t python trescon.py
0.26u 0.03s 0.32r 94%CPU 57728kB python trescon.py
cm@hemp:/tmp
$ echo 'select count(*) from Barcodes;' | sqlite3 trescon.db 
166000



Ciao cm , immagino che tu lo sappia altrimenti te lo dico io .... sono un MEGA ignorante in python.... quindi

partiamo che mi spieghi la prima riga ...




cm@hemp:/tmp


Che tra l'altro sia l'IDLE ufficiale si Geany me la segnala come ERRORE.


Cosa fa ?

Grazie




Alberto

------
Alberto
Ciao cm , immagino che tu lo sappia altrimenti te lo dico io .... sono un MEGA ignorante in python.... quindi
partiamo che mi spieghi la prima riga ...
cm@hemp:/tmp 
Che tra l'altro sia l'IDLE ufficiale si Geany me la segnala come ERRORE.
Cosa fa ?
Ignorala, è il mio prompt (assieme al $ all'inizio della riga successiva)

THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Io l'ho considerato cosi ...




echo 'create table Barcodes(a, b);'|sqlite3 trescon.db

for i in $(seq 166000); do printf '%s,%s\n' $i $i >> trescon.csv; done

ed trescon.py
trescon.py: File o directory non esistente
a
import sqlite3
c = sqlite3.connect('trescon.db')
codici_a_barre = [i.split(',') for i in open('trescon.csv')]
c.executemany('INSERT INTO Barcodes VALUES (?,?)', codici_a_barre)
c.commit()
.
wq
188

t python trescon.py
0.26u 0.03s 0.32r 94%CPU 57728kB python trescon.py

echo 'select count(*) from Barcodes;' | sqlite3 trescon.db 
166000
ma mi da errore alla prima riga, sulla " ' " (virgoletta)

Non ci capisco molto.

Grazie

Alberto

------
Alberto


Pagina: 1



Esegui il login per scrivere una risposta.