Проверенный
Пользователь
- Сообщения
- 1,032
- Реакции
- 828
- Помог
- 10 раз(а)
Хочется ради интереса поинтересоваться, приемлема ли такая скорость выполнения запросов?
Статистика игроков на SQLite, обновление данных идет по таймеру раз в 60 секунд.
Итого имеем.
Смутило то, что почему время идет по увеличению прям, и теперь задумываюсь, последняя скорость это скорость выполнения последнего запроса или в общем всех?
Ибо если смотреть по времени создания строки с логами, то буквально за секунду произошел апдейт.
Статистика игроков на SQLite, обновление данных идет по таймеру раз в 60 секунд.
Итого имеем.
Смутило то, что почему время идет по увеличению прям, и теперь задумываюсь, последняя скорость это скорость выполнения последнего запроса или в общем всех?
Ибо если смотреть по времени создания строки с логами, то буквально за секунду произошел апдейт.
Код:
public DataUpdateTask() {
new aPlayersID[MAX_PLAYERS], iPlayersNum, iSysTime = get_systime();
get_players_ex(aPlayersID, iPlayersNum, GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV);
for(new i; i < iPlayersNum; i++) {
if(iSysTime - g_aLastDataUpdate[aPlayersID[i]] >= DATA_UPDATE_TIMER) {
DataUpdate(aPlayersID[i]);
g_aLastDataUpdate[aPlayersID[i]] = iSysTime;
}
}
}
DataUpdate(id) {
new sQuoteStringPlayerName[PLAYER_NAME_STRLEN * 2];
SQL_QuoteString(Empty_Handle, sQuoteStringPlayerName, charsmax(sQuoteStringPlayerName), g_eData[id][pd_sName]);
formatex(g_sSQLQuery, charsmax(g_sSQLQuery),
"UPDATE players_stats SET \
Name = '%s', \
Kills = %d, \
Deaths = %d, \
Head = %d, \
Skill = %f, \
LastSeen = %d \
WHERE AuthID = '%s'",
sQuoteStringPlayerName,
g_eData[id][pd_iKills],
g_eData[id][pd_iDeaths],
g_eData[id][pd_iHead],
g_eData[id][pd_fSkill],
g_eData[id][pd_iLastSeen],
g_eData[id][pd_sAuthID]
);
SQL_ThreadQuery(g_hSQLTuple, "DataUpdateQueryHandler", g_sSQLQuery);
}
public DataUpdateQueryHandler(iFailState, Handle:hQuery, sError[], iErrNum, aData[], iSize, Float:fQueueTime) {
Logging(g_sLogsDir, "stats_inform_", "^"[DataUpdateQueryHandler] Queue Time %f^"", fQueueTime); //%.2f
if(iFailState != TQUERY_SUCCESS) {
SQL_GetQueryString(hQuery, g_sSQLQuery, charsmax(g_sSQLQuery));
QueryHandlerError(g_sSQLQuery, sError, "DataUpdateQueryHandler");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}