Вверх ↑
Этот топик читают: Гость
Ответов: 321
Рейтинг: 10
#1: 2018-12-28 18:41:30 ЛС | профиль | цитата
Привет форум, привет ребята.
Подскажите, может кто сталкивался с проблемой - медленной скоростью добавления данных в бд ?!
Выборка из 9000 строк занимает на i7-8700k 11 секунд, с учетом, что 3200 mhz оперативка с хорошими таймингами и m2 ssd накопитель.

Цитата с https://www.sqlite.org/faq.html#q19

(19) INSERT is really slow - I can only do few dozen INSERTs per second

Actually, SQLite will easily do 50,000 or more INSERT statements per second on an average desktop computer. But it will only do a few dozen transactions per second. Transaction speed is limited by the rotational speed of your disk drive. A transaction normally requires two complete rotations of the disk platter, which on a 7200RPM disk drive limits you to about 60 transactions per second.
Transaction speed is limited by disk drive speed because (by default) SQLite actually waits until the data really is safely stored on the disk surface before the transaction is complete. That way, if you suddenly lose power or if your OS crashes, your data is still safe. For details, read about atomic commit in SQLite..

By default, each INSERT statement is its own transaction. But if you surround multiple INSERT statements with BEGIN...COMMIT then all the inserts are grouped into a single transaction. The time needed to commit the transaction is amortized over all the enclosed insert statements and so the time per insert statement is greatly reduced.

Another option is to run PRAGMA synchronous=OFF. This command will cause SQLite to not wait on data to reach the disk surface, which will make write operations appear to be much faster. But if you lose power in the middle of a transaction, your database file might go corrupt.

PRAGMA synchronous=OFF это что такое ?! Его выключить нужно или я лезу совсем не туда, у нас такого вообще наверное нету ?!

Цитата с https://habr.com/post/149356/

А почему все жалуются, что SQLite — тормозит?

Две причины. Первая — настройки по умолчанию. Они работают на надежность, а не на производительность.
Вторая — непонимание механизма фиксации транзакций. По умолчанию после любой команды SQlite будет фиксировать транзакцию (то есть ожидать пока БД окажется в целостном состоянии для отключения питания). В зависимости от режима паранойи SQLite потратит на это от 50 до 300 мс (ожидая окончания записи данных на диск).

Что делать-то? Мне нужно вставить 100 тыс записей и быстро!

Удалить индексы, включить режим синхронизации OFF (или NORMAL), вставлять порциями по N тысяч (N — подобрать, для начала взять 5000). Перед вставкой порции сделать BEGIN TRANSACTION, после — COMMIT.

Схема:

Add(MainForm,14842589,357,329)
{
Left=20
Top=105
Width=876
Height=496
Caption="SQLite_with_SQLiteDataSource"
Position=1
}
Add(DS_SQLite,10857796,490,343)
{
Name="db"
link(onOpen,12881291:doExec,[])
}
Add(DSC_Query,11075216,882,434)
{
SQL="SELECT color,mid ,loc ,obj ,x ,y ,z FROM "db";"
DSManager="db"
link(onQuery,15928964:doAddRow,[])
}
Add(MST_DB,15928964,931,434)
{
MSTControl="mtst"
}
Add(DSC_Exec,12881291,546,343)
{
@Hint=#19:Создание таблицы БД|
SQL="CREATE TABLE db (\r\ncolor int NULL,\r\nid TEXT NULL,\r\nmid int(3) NULL,\r\nloc TEXT NULL,\r\nobj TEXT NULL,\r\nx TEXT NULL,\r\ny TEXT NULL,\r\nz TEXT NULL);\r\n"
DSManager="db"
link(onExec,15116110:doStart,[])
AddHint(36,-34,129,13,@Hint)
}
Add(HTTPClient,6804313,658,343)
{
URL="ff.zzz.com.ua/load2.php"
Method=1
EncType=1
PostData="k=1000\r\nrealm=WoW Circle x1 PvE Virgin "
Point(PostData)
link(onFinish,2930276:doCharset,[])
}
Add(Charset,2930276,714,350)
{
Type=7
link(onCharset,3200969:doEnum,[])
}
Add(FormatStr,2243243,840,350)
{
DataCount=1
Mask="INSERT INTO "db" VALUES(%1);"
link(onFString,9164852:doExec,[])
}
Add(Str_Enum,3200969,770,350)
{
Delimiter="_"
From=0
link(onEnum,2243243:doString,[])
link(onEndEnum,14968106:doEvent1,[(824,363)(824,440)])
}
Add(DSC_Exec,9164852,889,350)
{
DSManager="db"
}
Add(Button,4618125,357,371)
{
Left=70
Top=230
Caption="Load"
link(onClick,9796737:doStart,[(401,377)(401,349)])
}
Add(Thread,15116110,602,343)
{
Delay=0
FastStop=0
link(onExec,6804313:doLoadString,[])
}
Add(Message,10730767,357,413)
{
}
Add(Hub,14968106,847,434)
{
link(onEvent1,11075216:doQuery,[])
link(onEvent2,9796737:doStop,[(876,447)(876,476)(415,476)(415,356)])
}
Add(TimeCounter,9796737,427,343)
{
link(onStart,10857796:doOpen,[])
link(onStop,8113786:doEvent1,[(471,356)(471,315)(224,315)(224,335)])
}
Add(Hub,8113786,245,329)
{
link(onEvent1,14842589:doCaption,[])
link(onEvent2,13152047:doStrCat,[(277,342)(277,419)])
}
Add(StrCat,13152047,287,413)
{
Str1="Добавлено строк - "
link(onStrCat,10730767:doMessage,[])
link(Str2,3870454:Count,[])
}
Add(MTStrTbl,3870454,280,357)
{
Width=860
Height=183
Align=2
Name="mtst"
Layout="vert_1"
HeightScale=100
Columns=#8:MapID_50|11:Локация_120|10:Объект_120|4:X_80|4:Y_80|4:Z_80|
NColorRow=0
FlatScroll=1
ColDelimiter="_"
ColumnClick=1
ColorItems=0
}


Причем рассуждал так, думал что медленно из-за того, что 9к запросов, по одной строке якобы ему сложно добавлять, потом сделал сначала запись в strList и думал одним sql запросом добавить все, но получилось добавляет 3700 чтоли... ну видимо есть ограничения на длину запроса за раз, либо он прерывает выполнение из-за моих ошибок, просто в некоторых строках у меня символ ' , не знаю как с ним бороться... короче таким способом скорость осталась такая же, так еще стал меньше добавлять данных в таблицу...

Вторичная проблема - это то, что я не могу сделать выборку строк по фразе, типа where obj=бла бла, то есть, где есть пробел, с одним словом все хорошо.
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2018-12-28 19:52:00 ЛС | профиль | цитата
Версия SQLite3.dll
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 321
Рейтинг: 10
#3: 2018-12-28 19:55:55 ЛС | профиль | цитата
Tad писал(а):
Версия SQLite3.dll

sqliteapi_3_5_9 или sqliteapi_3_4_2.zip
Блин, секундочку Tad, попробую разобраться...
Я вас сижу тут жду
Выпендривался я раньше, якобы dll не хочу, якобы лишний файл, сделал obj... Теперь понимаю, что без разницы, главное чтобы работало ведь
Вот интересно теперь какая актуальная версия. Посоветуйте пожалуйста.
________________________
Версия 3_5_9, если правильно смотрю.
test.gif

Редактировалось 1 раз(а), последний 2018-12-28 20:01:01
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#4: 2018-12-28 20:10:20 ЛС | профиль | цитата
Запусти это и скрин покажи.

Add(MainForm,2953706,21,105)
{
Point(onClose)
link(onCreate,10001767:doOpen,[])
link(onClose,10001767:doClose,[])
}
Add(SQLite_DB,10001767,70,119)
{
FileName=":memory:"
link(onOpen,7826689:doQuery,[])
}
Add(ListBox,5223241,175,119)
{
Left=75
Top=30
Width=145
Height=190
}
Add(SQLite_Query,7826689,119,119)
{
SQL="SELECT sqlite_version();\r\nPRAGMA page_size;\r\nPRAGMA synchronous;"
link(onQuery,5223241:doAdd,[])
link(onColumns,5223241:doClear,[])
}

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 321
Рейтинг: 10
#5: 2018-12-28 20:11:33 ЛС | профиль | цитата
Tad писал(а):
Запусти это и скрин покажи.

test.gif
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#6: 2018-12-28 20:13:17 ЛС | профиль | цитата
Минутку
Попробуй это.
Перезалил
Add(MainForm,14842589,308,119)
{
Left=20
Top=105
Width=876
Height=496
Caption="SQLite_with_SQLiteDataSource"
Position=1
}
Add(DS_SQLite,10857796,441,133)
{
Name="db"
link(onOpen,12881291:doExec,[])
}
Add(DSC_Query,11075216,833,245)
{
SQL="SELECT color,mid ,loc ,obj ,x ,y ,z FROM "db";"
DSManager="db"
link(onQuery,15928964:doAddRow,[])
}
Add(MST_DB,15928964,882,245)
{
MSTControl="mtst"
}
Add(DSC_Exec,12881291,504,133)
{
@Hint=#19:Создание таблицы БД|
@Color=5636010
SQL="PRAGMA page_size=8192;\r\nPRAGMA synchronous=0;\r\nCREATE TABLE IF NOT EXISTS db (\r\n color int NULL,\r\n id TEXT NULL,\r\n mid int(3) NULL,\r\n loc TEXT NULL,\r\n obj TEXT NULL,\r\n x TEXT NULL,\r\n y TEXT NULL,\r\n z TEXT NULL);\r\n"
DSManager="db"
link(onExec,3721012:doEvent1,[])
AddHint(-64,-39,129,13,@Hint)
}
Add(HTTPClient,6804313,602,140)
{
URL="ff.zzz.com.ua/load2.php"
Method=1
EncType=1
PostData="k=1000\r\nrealm=WoW Circle x1 PvE Virgin "
Point(PostData)
link(onFinish,2930276:doCharset,[])
}
Add(Charset,2930276,658,147)
{
Type=7
link(onCharset,3200969:doEnum,[])
}
Add(FormatStr,2243243,833,147)
{
DataCount=1
Mask="INSERT INTO "db" VALUES(%1);"
link(onFString,2915680:doWork2,[])
}
Add(Str_Enum,3200969,714,147)
{
Delimiter="_"
From=0
link(onEnum,2243243:doString,[])
link(onEndEnum,14968106:doEvent1,[(768,160)(768,237)])
}
Add(DSC_Exec,9164852,889,147)
{
DSManager="db"
}
Add(Button,4618125,308,161)
{
Left=70
Top=230
Caption="Load"
link(onClick,9796737:doStart,[(352,167)(352,139)])
}
Add(Message,10730767,308,203)
{
}
Add(Hub,14968106,791,231)
{
OutCount=3
link(onEvent1,9402840:doData,[(819,237)(819,202)])
link(onEvent2,9796737:doStop,[(926,244)(926,283)(357,283)(357,146)])
link(onEvent3,11075216:doQuery,[])
}
Add(TimeCounter,9796737,378,133)
{
link(onStart,10857796:doOpen,[])
link(onStop,8113786:doEvent1,[(422,146)(422,105)(175,105)(175,125)])
}
Add(Hub,8113786,196,119)
{
link(onEvent1,14842589:doCaption,[])
link(onEvent2,13152047:doStrCat,[(228,132)(228,209)])
}
Add(StrCat,13152047,238,203)
{
Str1="Добавлено строк - "
link(onStrCat,10730767:doMessage,[])
link(Str2,3870454:Count,[])
}
Add(MTStrTbl,3870454,231,147)
{
Width=860
Height=183
Align=2
Name="mtst"
Layout="vert_1"
HeightScale=100
Columns=#8:MapID_50|11:Локация_120|10:Объект_120|4:X_80|4:Y_80|4:Z_80|
NColorRow=0
FlatScroll=1
ColDelimiter="_"
ColumnClick=1
ColorItems=0
}
Add(Hub,3721012,553,133)
{
link(onEvent1,13219569:doData,[(579,139)(579,111)])
link(onEvent2,6804313:doLoadString,[])
}
Add(DoData,13219569,833,105)
{
@Color=5636010
Data=String(BEGIN TRANSACTION;)
link(onEventData,2915680:doWork1,[(872,111)])
}
Add(DoData,9402840,833,196)
{
@Color=5636010
Data=String(COMMIT;)
link(onEventData,2915680:doWork3,[(872,202)])
}
Add(HubEx,2915680,868,147)
{
link(onEvent,9164852:doExec,[])
}

Нет у меня HTTPClient

Редактировалось 4 раз(а), последний 2018-12-28 20:40:02
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 321
Рейтинг: 10
#7: 2018-12-28 20:54:23 ЛС | профиль | цитата
Tad писал(а):
Попробуй это.

Сейчас среднее время 5 сек., первые запуск был 3800мс, максимум 8 сек. А в старом примере было, что и до 22 сек доходило.
На 50-75% лучше стало... Спасибо большое. Теперь интересно на слабеньких пк как у пользователей будет.
Как считаете это норма ?!
При добавлении в StringTable напрямую вроде намного быстрее было, но зато теперь легче фильтровать все это добро, да и работать приятнее.
Master4eG писал(а):

Версия 3_5_9, если правильно смотрю.
Вот интересно теперь какая актуальная версия. Посоветуйте пожалуйста.

Не подскажите ?!

Блин, еще пару вопросов по поводу выборки данных с пробелом проблема и при INSERT с полем например Зул'Драк, Кратер Ун'Горо, и т.д.
Ну это я попробую сам разобраться, но если знаете ответ, то можете подсказать
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#8: 2018-12-28 21:09:28 ЛС | профиль | цитата
Master4eG писал(а):
с пробелом проблема и при INSERT с полем например Зул'Драк,
Покажи пару строк после Str_Enum
Master4eG писал(а):
теперь какая актуальная версия

Version 3.26.0 (2018-12-01)

Редактировалось 1 раз(а), последний 2018-12-28 21:17:55
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 321
Рейтинг: 10
#9: 2018-12-28 21:19:21 ЛС | профиль | цитата
Tad писал(а):
Покажи пару строк после Str_Enum

Блин решил вывести в Memo, так он до сих пор добавляет, скопировать не дает)
Секундочку пожалуйста...
Жесть 5к+ мгц и он еще не загрузил.
test.gif


Тут проблемная строка последняя получается.

'0','21861','574','','Залежи кобальта','106.58','200.85','49.1465'
'58879','436','1','Азшара','Оловянная жила','3314.99','-5784.4302','14.573'
'0','437','1','Азшара','Золотой сансам','3736.3401','-4927','133.514'
'0','438','1','Азшара','Мифриловые залежи','3800.0901','-4836.8901','158.661'
'0','439','1','Азшара','Золотой сансам','3629.3999','-5075.4302','87.6327'
'0','1280','571','Зул'Драк','Мерзлая трава','5834.3799','-3521.3401','382.301'

Прогонять каждую строку через case на проблемные слова ?!

Или можно как-то в php правку сделать ?!
	$results = $mysqli->query("SELECT id,mid,loc,a,obj,x,y,z FROM tp WHERE realm=('$realm')");
while ($row = $results->fetch_assoc())
{
echo "'$row[a]','$row[id]','$row[mid]','$row[loc]','$row[obj]','$row[x]','$row[y]','$row[z]'";
echo _; //Разделитель для Hiasm
}

Я бы вас не мучал, с этими тупыми вопросами, очень боюсь, что на слабых машинах будет очень долго все это дело работать, если через case пустить наверное пару секунд еще добавится.
Кстати ваш новый пример работает всегда 3 сек... из 10 раз, не разу за 3 сек не вышло...
Хотя так и не понял, что Вы изменили. Пока не заметил.

Tad писал(а):
Version 3.26.0 (2018-12-01)

То есть можно скачать с оф.сайта и инжектить эту dll в проект hiasm, без какого-либо редактирования ?!

Редактировалось 6 раз(а), последний 2018-12-28 21:43:16
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#10: 2018-12-28 22:07:27 ЛС | профиль | цитата
"0","21861","574","","Залежи кобальта","106.58","200.85","49.1465"
"58879","436","1","Азшара","Оловянная жила","3314.99","-5784.4302","14.573"
"0","437","1","Азшара","Золотой сансам","3736.3401","-4927","133.514"
"0","438","1","Азшара","Мифриловые залежи","3800.0901","-4836.8901","158.661"
"0","439","1","Азшара","Золотой сансам","3629.3999","-5075.4302","87.6327"
"0","1280","571","Зул'Драк","Мерзлая трава","5834.3799","-3521.3401","382.301"

Редактировалось 1 раз(а), последний 2018-12-28 22:12:29
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 321
Рейтинг: 10
#11: 2018-12-28 22:15:28 ЛС | профиль | цитата
Tad,
Так выдает ошибку:
echo ""$row[a]","$row[id]","$row[mid]","$row[loc]","$row[obj]","$row[x]","$row[y]","$row[z]"";
Parse error syntax error, unexpected '$row' (TVARIABLE), expecting ',' or ';' in... on line 17


И так выдает ошибку:
echo '"$row[a]","$row[id]","$row[mid]","$row[loc]","$row[obj]","$row[x]","$row[y]","$row[z]"';
"$row[a]","$row[id]","$row[mid]","$row[loc]","$row[obj]","$row[x]","$row[y]","$row[z]"

Я знаю, что нужно экранизировать, ставить / перед одинарной ковычкой, но не соображу как.
Echo и в скобки брал и так и сяк, около 5-7 вариантов перепробовал.
Я знаю, что должно само экранизироваться если по обе стороны сделать так "' бла бла бла '", но что-то не работает.

Tad, доброй ночи, спасибо еще раз за помощь, наверное с экранизацией надо просто пару статей прочитать, перед тем как сюда писать.
Просто этот перфекционизм вечный, хочется всегда как лучше, а как лучше знают люди с опытом, вот и приходится вам (гуру) мозги парить тупыми вопросами, а получается - сделайте за меня, да получше

Редактировалось 2 раз(а), последний 2018-12-28 23:01:56
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#12: 2018-12-29 10:02:16 ЛС | профиль | цитата
Без проблем

Редактировалось 1 раз(а), последний 2018-12-29 10:08:06
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1SozTabBD.zip [1.7KB] [341]
Ответов: 16884
Рейтинг: 1239
#13: 2018-12-29 21:11:32 ЛС | профиль | цитата
Куда уходит время.

Add(MainForm,14842589,217,196)
{
Left=20
Top=105
Width=782
Height=496
Caption="SQLite_with_SQLiteDataSource"
Position=1
link(onCreate,10857796:doOpen,[])
}
Add(DS_SQLite,10857796,259,210)
{
Name="db"
link(onOpen,12881291:doExec,[])
}
Add(DSC_Query,11075216,686,259)
{
SQL="SELECT color,mid ,loc ,obj ,x ,y ,z FROM "db";"
DSManager="db"
link(onQuery,15928964:doAddRow,[])
link(onColumns,15928964:doClear,[(726,272)(726,279)])
}
Add(MST_DB,15928964,735,259)
{
MSTControl="mtst"
Point(doClear)
}
Add(DSC_Exec,12881291,301,210)
{
@Hint=#19:Создание таблицы БД|
@Color=5636010
SQL="PRAGMA page_size=8192;\r\nPRAGMA synchronous=0;\r\nCREATE TABLE IF NOT EXISTS db (\r\n color int NULL,\r\n id TEXT NULL,\r\n mid int(3) NULL,\r\n loc TEXT NULL,\r\n obj TEXT NULL,\r\n x TEXT NULL,\r\n y TEXT NULL,\r\n z TEXT NULL);"
DSManager="db"
link(onExec,13766098:doExec,[])
AddHint(-106,47,129,13,@Hint)
}
Add(HTTPClient,6804313,238,133)
{
URL="ff.zzz.com.ua/load2.php"
Method=1
FileName="aaaaaaa.txt"
EncType=1
PostData="k=1000\r\nrealm=WoW Circle x1 PvE Virgin "
Point(PostData)
link(onFinish,6556858:doEvent1,[])
}
Add(Charset,2930276,511,147)
{
Type=7
link(onCharset,7999790:doReplace,[])
}
Add(FormatStr,2243243,735,147)
{
DataCount=1
Mask="INSERT INTO "db" VALUES("%1");"
link(onFString,2915680:doWork2,[])
}
Add(Str_Enum,3200969,469,147)
{
Delimiter="_"
From=0
link(onEnum,2930276:doCharset,[])
link(onEndEnum,5840020:doEvent1,[(505,160)(505,188)])
}
Add(DSC_Exec,9164852,805,189)
{
DSManager="db"
link(SQL,15589579:Text,[])
}
Add(Hub,14968106,651,217)
{
OutCount=4
link(onEvent1,1601606:doStop,[(673,223)(673,202)(324,202)(324,160)])
link(onEvent2,15160768:doQuery,[])
link(onEvent3,11075216:doQuery,[(678,237)(678,265)])
link(onEvent4,13741915:doColAction,[(671,244)(671,300)])
}
Add(TimeCounter,9796737,168,126)
{
link(onStart,3721012:doEvent1,[])
link(onStop,8113430:doText,[(208,139)(208,398)])
}
Add(MTStrTbl,3870454,735,294)
{
Width=766
Height=428
Align=2
Font=[Courier New,8,0,0,204]
Name="mtst"
Layout="vert_1"
HeightScale=100
Columns=#5:MapID|7:Локация|6:Объект|1:X|1:Y|1:Z|
NColorRow=0
FlatScroll=1
ColDelimiter="_"
ColumnClick=1
ColorItems=0
}
Add(Hub,3721012,217,126)
{
link(onEvent1,13219569:doData,[(375,132)(375,111)])
link(onEvent2,6804313:doLoadString,[])
}
Add(DoData,13219569,735,105)
{
@Color=5636010
Data=String(BEGIN TRANSACTION;)
link(onEventData,2915680:doWork1,[(788,111)])
}
Add(DoData,9402840,707,182)
{
@Color=5636010
Data=String(COMMIT;)
link(onEventData,16773688:doEvent1,[])
}
Add(HubEx,2915680,784,147)
{
link(onEvent,15589579:doAdd,[])
}
Add(Replace,7999790,560,147)
{
SubStr="','"
DestStr="",""
link(onReplace,13643654:doDelete,[])
}
Add(Delete,13643654,602,147)
{
Count=1
link(onDelete,16242171:doDelete,[])
}
Add(Delete,16242171,644,147)
{
Count=1
Direction=1
link(onDelete,1045028:doCompare,[])
}
Add(MST_ColAction,13741915,686,294)
{
Action=9
MinColWidth=30
MaxColWidth=200
Index=-1
MSTControl="mtst"
Point(doMaxColWidth)
}
Add(Hub,5840020,560,182)
{
link(onEvent1,9402840:doData,[])
link(onEvent2,14968106:doEvent1,[(612,195)(612,223)])
}
Add(DSC_Query,15160768,686,224)
{
SQL="SELECT "Добавлено строк: "||count() FROM "db";"
DSManager="db"
link(onQuery,10980088:doText,[])
}
Add(Label,10980088,735,224)
{
Left=105
Top=436
Width=235
Font=[Courier New,10,1,0,204]
Caption=""
AutoSize=1
}
Add(Button,11711076,98,126)
{
Left=5
Top=434
link(onClick,9796737:doStart,[])
}
Add(DSC_Exec,13766098,343,210)
{
SQL="VACUUM;"
DSManager="db"
}
Add(If_else,1045028,686,147)
{
Type=2
Op2=String("")
link(onTrue,2243243:doString,[])
}
Add(StrList,15589579,805,147)
{
}
Add(Hub,16773688,749,182)
{
link(onEvent1,2915680:doWork3,[(788,188)])
link(onEvent2,9164852:doExec,[])
}
Add(Hub,6556858,273,140)
{
link(onEvent1,9796737:doStop,[(299,146)(299,170)(157,170)(157,139)])
link(onEvent2,1601606:doStart,[])
}
Add(TimeCounter,1601606,336,147)
{
link(onStart,3200969:doEnum,[])
link(onStop,9831566:doText,[(389,160)(389,377)])
}
Add(Label,8113430,504,392)
{
Left=475
Top=436
}
Add(Label,9831566,623,371)
{
Left=660
Top=436
}
Add(Label,5746392,441,406)
{
Left=405
Top=436
Caption="Закачка"
}
Add(Label,13024014,581,385)
{
Left=580
Top=436
Width=70
Caption="Запись БД"
}


Редактировалось 1 раз(а), последний 2018-12-29 21:26:15
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Master4eG
Ответов: 321
Рейтинг: 10
#14: 2018-12-29 21:57:37 ЛС | профиль | цитата
Tad, действительно, логично было ставить таймер после загрузки запроса.
Но все же, в вашем скриншете, у вас 1806.
У меня из вашего последнего примера выходит соотношение 50 на 50 (загрузка 4сек / добавление в базу 4сек).
Иногда бывает ~800мс/3-4сек.
Поделим ваше значение на пополам, для примера 806 загрузка/1 сек добавление данных.
Почему у вас быстрее ?!
__________________________
Оо, Боже!
Обновил Str_Enum, стало как и у вас
Афигеть, я маргнуть не успеваю и уже готово! Меньше секунды бывает, причем частенько.
4 сек добавления в базу, поменялись на 100+ мс.

Редактировалось 2 раз(а), последний 2018-12-29 22:10:26
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#15: 2018-12-29 23:09:14 ЛС | профиль | цитата
Master4eG_2.jpg
1. На закачку было затрачено 1920 мсек.
2. После обработки получено 9670 строк
3. Эти 9670 строк записаны в БД.
4. На выполнение пунктов 2 и 3 затрачено 271 мсек. или 271000 мксек.
5. 271000 / 9670 = 28 микросекунд на 1-у строку.
По-моему совсем даже неплохо.

--- Добавлено в 2018-12-29 23:15:32

Master4eG писал(а):
Обновил Str_Enum
А мне пришлось установить HTTPClient
Windows 7.

Редактировалось 2 раз(а), последний 2018-12-29 23:22:04
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)