ich habe eine tabelle mit 9300 rows auf einer disk datenbank
ein select count dauert da ca. 1s auf einem p4 mit 3ghz
kann das normal sein?
pysqlite super langsam?
Kann ... hast du häufig z.B. einen Int Datentyp vorhanden? Meinen Infos nach bildet pySQlite z.B. Int Werte nicht einheitlich codiert (8 Byte, 16 Byte), etc. ab, sondern gerade nur mit "soviel wie notwendig". Dadurch kommen zwar (in Relation zu anderen DMBS Instanzen) kleine DB-Dateien zu stande, aber das "durcharbeiten" dauert länger.
Falls es wirklich ein "SELECT count(*) FROM foo" ist, dann sollte die Kodierung von Zellen egal sein.
Kannst Du etwas mehr über die Tabelle und die genaue Abfrage verraten?
Kannst Du etwas mehr über die Tabelle und die genaue Abfrage verraten?
ist wirklich sehr komisch
py2exe macht es extrem schneller
der qry geht da immer ca 1s (von "start qry" bis "end qry")
hab schon alle Arten von count probiert
ist aber kein Problem da es ja mit dem py2exe geht
Edit (Leonidas): Code in Python-Tags gesetzt.
py2exe macht es extrem schneller
Code: Alles auswählen
#print "start qry"
#qry = "SELECT COUNT(hash) FROM cache"
#qry = "select count( piece_id) from cache "
#print qry
self.cur.execute(qry)
res = self.cur.fetchall()
if res == []:
return 0
#print res
res = res[0]
#print "end qry"
#print res
hab schon alle Arten von count probiert
ist aber kein Problem da es ja mit dem py2exe geht
Edit (Leonidas): Code in Python-Tags gesetzt.
ich denke nicht dass das an der DB Verbindung liegt, sondern eher daran dass er beim Aufrufen eines Python Files an sich länger braucht als beim aufrufen einer py2exe. - Zumindest meine Erfahrungen.
Evtl. liegt das ja daran dass er bei py2exe nur einen abgespeckten Interpreter lädt.
Probier doch mal folgendes, lass so ein Skript laufen, bevor du das Python File mit der DBVerbindung aufrufst, dann ist der Interpreter schon im Speicher... Dann hast du evtl. die Ursache ...
Evtl. liegt das ja daran dass er bei py2exe nur einen abgespeckten Interpreter lädt.
Probier doch mal folgendes, lass so ein Skript laufen, bevor du das Python File mit der DBVerbindung aufrufst, dann ist der Interpreter schon im Speicher...
Code: Alles auswählen
import time
time.sleep(10000)
Grüße
Matthias
- Fluchen befreit von Kummer und Leid -
Matthias
- Fluchen befreit von Kummer und Leid -
ne das Script rennt schon die ganze Zeit und andere Zugriffe auf die Datenbank sind schnell.mr.hide hat geschrieben:ich denke nicht dass das an der DB Verbindung liegt, sondern eher daran dass er beim Aufrufen eines Python Files an sich länger braucht als beim aufrufen einer py2exe. - Zumindest meine Erfahrungen.
Evtl. liegt das ja daran dass er bei py2exe nur einen abgespeckten Interpreter lädt.
Probier doch mal folgendes, lass so ein Skript laufen, bevor du das Python File mit der DBVerbindung aufrufst, dann ist der Interpreter schon im Speicher...Dann hast du evtl. die Ursache ...Code: Alles auswählen
import time time.sleep(10000)
Nur dieser ist superlangsam.
Kann mir das nicht erklären.
Wers mal sehen will
www.proxyshare.com