SA-MP Forums Archive
Время выполнения запросов SQLite - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Время выполнения запросов SQLite (/showthread.php?tid=227601)

Pages: 1 2


Время выполнения запросов SQLite - OFFREAL - 17.02.2011

Здравствуйте, я по такому вопросу:
Использую на своем сервере SQLite базу данных (стандартный a_sampdb.inc):
Время выполнения запросов типа SELECT не более 2 ms ( для сложных - около 5 ms ), а запросов типа UPDATE - около 150 ms, и мне кажется, что это слишком много!
Скажите пожалуйста, это нормально или нет?
- - - - -
Да, и какова максимальная длинна запроса при использовании db_query ?


Re: Время выполнения запросов SQLite - Stepashka - 18.02.2011

успеешь моргнуть за это время тогда это удет много.
Хочешь покажу запросы которые выполняются по 30 минут?

максимальной длины нет.


Re: Время выполнения запросов SQLite - Orr_Orange - 18.02.2011

Quote:
Originally Posted by Stepashka
View Post
Хочешь покажу запросы которые выполняются по 30 минут?
Хочу.


Re: Время выполнения запросов SQLite - Stepashka - 18.02.2011

Наслаждайся
Code:
    SELECT u.`id` object_id, 3 object_type, 3 object_weight,
    CONCAT ( '/movies/archive/', u.`id` ) `link`,
    CONCAT(
      IF (
        ( (u.`original_name` IS NOT NULL) && (u.`original_name` != '') ),
        CONCAT ( u.`name`, ' – ', u.`original_name` ),
        u.`name`
      ),
      ' (',
      IF (
        (u.`produced_end` > 0),
        CONCAT ( u.`produced_start`, ' – ', u.`produced_end` ),
        u.`produced_start`
      ),
      ')'
    ) AS `title`,
    CONCAT(
    	GROUP_CONCAT( t.`name` SEPARATOR ', ' ),
        ', ',
        GROUP_CONCAT( p.`local_name` SEPARATOR ', ' ),
        ', ',
        GROUP_CONCAT( p.`original_name` SEPARATOR ', ' )
        ) `tags`,
    CONCAT ( u.`announce`, ' ', u.`description` ) `text`,
    UNIX_TIMESTAMP( u.`updated` ) `pub`,
    rr.`sum` `rate`
    FROM `video_units` AS u 
    LEFT JOIN `tags2objects` AS t2o 
      ON t2o.`object_id` = u.`id`
      AND t2o.`object_type_id` = 3
      AND t2o.`tag_group_id` IN (2, 8, 6)
    LEFT JOIN `tags` AS t
      ON t.`tag_id` = t2o.`tag_id`
    LEFT JOIN `object2object` AS o2o 
      ON o2o.`related_object_id` = u.`id`
      AND o2o.`relation_type_id` IN (47, 54, 55, 56, 57, 58)
    LEFT JOIN `persons` AS p
      ON p.`id` = o2o.`object_id`
    LEFT JOIN `rating_result` AS rr
      ON rr.`object_type` = 3
      AND rr.`object_id` = u.`id`
#    WHERE (DATE_ADD(u.`updated`, INTERVAL 30 MINUTE) > NOW())
    GROUP BY u.`id`
это 1 запрос


Re: Время выполнения запросов SQLite - Romanius - 18.02.2011

степаха выложи этот идиотизм на говнокод...


Re: Время выполнения запросов SQLite - Stepashka - 18.02.2011

Quote:
Originally Posted by Romanius
View Post
степаха выложи этот идиотизм на говнокод...
всмысле, какой код?


Re: Время выполнения запросов SQLite - azen - 18.02.2011

возможно он имел в виду постбин


Re: Время выполнения запросов SQLite - Wyu - 18.02.2011

не, он имел ввиду http://govnokod.ru/


Re: Время выполнения запросов SQLite - azen - 18.02.2011

ахах, даже на знал о существовании такого сайта) Интересно)


Re: Время выполнения запросов SQLite - Stepashka - 18.02.2011

Этот скрипт создает таблицу индексов для поисковой системы сфинкс.
А время такое огромне потому что таблицу стыкует на миллион строк два раза.
Так что уважаемый Romanius, если тут где-то и есть говно, то это только ваш пост. И мой вам совет пойдите подучитесь чтобы такой бред больше не писать.


Re: Время выполнения запросов SQLite - Maccer - 20.02.2011

ай какие выепоны ))

Про скорость sqlite смотрите здесь: http://www.sqlite.org/speed.html


Re: Время выполнения запросов SQLite - MX_Master - 21.02.2011

всё-таки скорость зависит от многих факторов, думаю, главные из них - конфиг железа и его свобода от параллельных задач


Re: Время выполнения запросов SQLite - Romanius - 22.02.2011

я про то что этот запрос никаким боком не подходит к SQLite.


Re: Время выполнения запросов SQLite - Stepashka - 22.02.2011

Quote:
Originally Posted by Romanius
View Post
я про то что этот запрос никаким боком не подходит к SQLite.
т.е ты не читал ппосты до него и увидев запрос тупо ляпнул первое что пришло в голову?


Re: Время выполнения запросов SQLite - Romanius - 22.02.2011

степаха, это SQL запрос. И он может работать как и под Oracle так и под MySQL, но SQLite под такое не расчитывалось.


Re: Время выполнения запросов SQLite - Stepashka - 22.02.2011

Quote:
Originally Posted by Romanius
View Post
степаха, это SQL запрос. И он может работать как и под Oracle так и под MySQL, но SQLite под такое не расчитывалось.
ответь мне на простой вопрос, почему я тут его разместил?


Re: Время выполнения запросов SQLite - grekon - 09.01.2012

Не хотелось создавать новую тему, решил спросить здесь.
На сервере храню информацию об автомобилях в SQLite. Возникает необходимость периодически (раз в несколько минут) сохранять координаты автомобилей в базу данных.
Формирую по таймеру SQL запросы вида:

UPDATE `VEHICLES` X = -1990.128540, Y = 276.264617, Z = 35.251308, ANGLE = 270.000000 WHERE ID = 0
UPDATE `VEHICLES` SET X = -1990.087280, Y = 272.059844, Z = 34.907825, ANGLE = 270.000000 WHERE ID = 1

И так для всех автомобилей. У меня их несколько сотен => время выполнения в районе секунды. В это время сервер "висит".

Кто может подсказать грамотное решение проблемы? Есть мысль вынести сохранение в отдельный поток, тогда сервер будет во время сохранения отвечать на запросы. Однако волнует вопрос надежности, ведь PAWN не является потокобезопасным языком. Если эта мысль имеет смысл, подскажите какой плагин для многопоточности лучше использовать?


Re: Время выполнения запросов SQLite - Mutha_X - 09.01.2012

Записывать(обновлять) в БД данные только тех машин, у которых произошли изменения.
Если возможность есть, можно воспользоваться внешней БД( необязательно на другой машине).


Re: Время выполнения запросов SQLite - Jon_De - 09.01.2012

Quote:
Originally Posted by grekon
View Post
Не хотелось создавать новую тему, решил спросить здесь.
На сервере храню информацию об автомобилях в SQLite. Возникает необходимость периодически (раз в несколько минут) сохранять координаты автомобилей в базу данных.
Формирую по таймеру SQL запросы вида:

UPDATE `VEHICLES` X = -1990.128540, Y = 276.264617, Z = 35.251308, ANGLE = 270.000000 WHERE ID = 0
UPDATE `VEHICLES` SET X = -1990.087280, Y = 272.059844, Z = 34.907825, ANGLE = 270.000000 WHERE ID = 1

И так для всех автомобилей. У меня их несколько сотен => время выполнения в районе секунды. В это время сервер "висит".

Кто может подсказать грамотное решение проблемы? Есть мысль вынести сохранение в отдельный поток, тогда сервер будет во время сохранения отвечать на запросы. Однако волнует вопрос надежности, ведь PAWN не является потокобезопасным языком. Если эта мысль имеет смысл, подскажите какой плагин для многопоточности лучше использовать?
ID проиндексируй в таблице


Re: Время выполнения запросов SQLite - Stepashka - 09.01.2012

Quote:
Originally Posted by Jon_De
View Post
ID проиндексируй в таблице
уникальные ключи всегда имеют индекс.