Всем доброго времени суток!
Заполнение текстового файла в 1000 строк занимает времени меньше секунды.
Заполнение же таблицы SQLite происходит в 100 раз медленнее (50-60 сек).
Это нормальная скорость для Autoit или можно как-то оптимизировать?
Вообще, хотелось бы обработать около 50-70 тыс. строк максимум.
Пример скрипта:
Заполнение текстового файла в 1000 строк занимает времени меньше секунды.
Заполнение же таблицы SQLite происходит в 100 раз медленнее (50-60 сек).
Это нормальная скорость для Autoit или можно как-то оптимизировать?
Вообще, хотелось бы обработать около 50-70 тыс. строк максимум.
Пример скрипта:
Код:
#include <Date.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
_SQLite_Startup()
If @error Then
MsgBox(16, "Ошибка SQLite", "Не удалось загрузить SQLite.dll")
Exit -1
EndIf
; Запись в TXT
$StartDateTime= _NowCalc()
$hFile=FileOpen(@ScriptDir&'\test.txt',2)
For $i=1 To 1000
FileWriteLine($hFile,$i)
Next
FileClose($hFile)
; Время работы
$EndDateTime= _NowCalc()
$TimeWork=_DateDiff("s", $StartDateTime, $EndDateTime)
MsgBox(64,'Длительность (сек)',$TimeWork)
; Запись в SQLite данных из TXT-файла
$StartDateTime= _NowCalc()
$SQLite_Data_Path=@ScriptDir&'\test.db'
; Создать Базу данных
If FileExists($SQLite_Data_Path) Then FileDelete($SQLite_Data_Path) ; Удалить Базу данных, если она существует
_SQLite_Open($SQLite_Data_Path) ; Создать БД
If @error Then
MsgBox(16, "Ошибка SQLite", "Не удалось создать базу данных")
EndIf
; Создать таблицу tList
_SQLite_Exec(-1, "Create Table IF NOT Exists tList (ID INTEGER PRIMARY KEY AUTOINCREMENT, Num Text);")
_SQLite_Close()
$hFile=FileOpen(@ScriptDir&'\test.txt')
While 1
$line = FileReadLine($hFile) ; Считываем строку из файла
IF @error = -1 Then ExitLoop
; Запись данных в таблицу
_SQLite_Open($SQLite_Data_Path)
_SQLite_Exec(-1, "Insert into tList (Num) values ('"&$line&"');")
_SQLite_Close()
WEnd
; Время работы
$EndDateTime= _NowCalc()
$TimeWork=_DateDiff("s", $StartDateTime, $EndDateTime)
MsgBox(64,'Длительность (сек)',$TimeWork)
Exit