Aynı talebi "Python 2.7.4 + sqlite3" ve "Firefox SQLite Manager 0.8.0" ile aynı veritabanına işlemeye çalıştım.Neden python + sqlite3 aşırı derecede yavaş?
Küçük veritabanında (8000 kayıt) hem Python hem de Firefox hızlı çalışır ve aynı sonucu verir.
büyük veritabanı üzerinde(2.600.000 kayıtları): 28seconds içinde
- SQLite Yöneticisi işlenen veritabanı (24 kayıtları)
- Python programı sonuçsuz 20 dakika boyunca zaten çalışıyor
neler Aşağıdaki program ile yanlış olabilir, bu nedenle python sqlite3 sorguyu makul sürede işleyemezken aynı istek daha hızlı işlenebilir mi?
import sqlite3
_sql1 = """SELECT DISTINCT J2.rule_description,
J2.feature_type,
J2.action_item_id,
J2.rule_items
FROM journal J1,
journal J2
WHERE J1.base = J2.base
AND J1.action_item_id=J2.action_item_id
AND J1.type="Action disabled"
AND J2.type="Action applied"
AND J1.rule_description="Some test rule"
AND J1.action_item_id IN (1, 2, 3, 14, 15, 16, 17, 18, 19, 30, 31, 32)
"""
if __name__ == '__main__':
sqlite_output = r'D:\results.sqlite'
with sqlite3.connect(sqlite_output) as connection:
for row in connection.execute(_sql1):
print row
GÜNCELLEME: Sorun eski ile ilişkili olduğunu, sqlite3.sqlite_version olan '3.6.21'
Eğer SQLite Yöneticisi ** Tüm ** sonuç satırlarını işliyor olduğundan emin misin? Python programınız ... –
Evet, "SQLite için Komut Satırı Kabuğu" da aynı 24 kaydı veriyor –
Belki veritabanı dosyası SQLite Manager tarafından kilitleniyor mu? – warvariuc