Tad писал(а):
Видно что-то я сделал не такА регулярное пересоздание базы на новый день есть с закрытием предыдущей
И что, ПО на рабочем месте работает круглосуточно не выключаясь
А сколько ежедневных записей в базу
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Tad писал(а): Видно что-то я сделал не такА регулярное пересоздание базы на новый день есть с закрытием предыдущей И что, ПО на рабочем месте работает круглосуточно не выключаясь А сколько ежедневных записей в базу |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
1. нет
2. работает круглосуточно не выключаясь. На всякий пожарный все компы подключены через UPS-ы 3. до десятка. (А то и меньше). |
|||
карма: 25 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
А у меня
1. Регулярно, каждый день в 00:00 2. Круглосуточно 3. В среднем -- 25000 в день И вот в таком режиме занимаемая память начинает постепенно расти. Я плюнул на это безобразие и пошел путем перезапуска модуля записи в 0 часов каждого дня |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): 3. В среднем -- 25000 в деньЭто нужно знать специфику работы. |
|||
карма: 25 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Tad писал(а): А они все нужны ?Да, все. Tad писал(а): Если изменилось состояние, то понятно.Постоянно меняется. Tad писал(а): Это нужно знать специфику работыЯ уже говорил тебе, для чего это нужно. |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): Я уже говорил тебе, для чего это нужно. Интересно, если не секрет, а сколько объектов? |
|||
карма: 25 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Tad писал(а): Интересно, если не секрет, а сколько объектов?Около тысячи, и с каждого может приходить больше 50 событий в текущий момент времени, но может быть и от 3 до 7, тк как разные системы. Наибольшая нагрузка утром и вечером. Почему нужны все, то я уже писал, что это показывает трассу прохождения сигнала и его уровень в конкретный момент, о котором можно косвенно судить о состоянии канала. У меня техническая база, но есть еще и общая база (на MSSQL, стороннее ПО), вот там нет всех этих событий. |
|||
карма: 22 |
|
Ответов: 952
Рейтинг: 4
|
|||
Загвоздка.
Есть БД в которой есть столбец Срок сдачи. К примеру srok Хочу сделать выборку заявок, срок сдачи которых заканчивается в ближайшие 10 календарных дней. SELECT * FROM base WHERE (srok > date('now')) AND (srok <= date('now')+ 10 ) ORDER by srok Но в итоге получаю все заявки срок сдачи которых больше сегодняшней даты. Не могу сообразить как побороть.... |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Или так
|
|||
карма: 25 |
| ||
Голосовали: | user_asm |
Ответов: 952
Рейтинг: 4
|
|||
Какой-то полтергейст.
Внес изменения в запись, нажал Сохранить, подвисла сетка немного, часики вместо курсора, отвисла сетка, дочерняя форма внесения изменений в запись осталась на переднем плане, хотя должна была закрыться после выполнения запроса к БД. На дочерней форме вижу что все ок, никаких подозрений, закрываю форму крестиком. Но тут что то кольнуло - дай поищу исправленную запись в БД. Ищу .... и не нахожу. Записи просто нет. Исчезла. Выгрузил всю таблицу в CSV - нет записи. Предыдущая запись номер 242 есть, а следующая уже идет 244. Сам процесс изменения - сначала делете запись вхер ...все данные записи..., потом инсерт валуес ....все данные записи..... Данные записи берутся с дочерней формы. Т.е. получается процесс делете прошел, сетка подвисла на секунды, и процесс инсерт не прокатил? |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
user_asm, именно так. Чтобы этого избежать - делай "BEGIN TRANSACTION" в начале и "COMMIT" в конце (тут я не очень уверен - по идее, если хоть одно изменение не прошло, то транзакция сорвётся, и будет автоматический откат на состояние до "BEGIN TRANSACTION"), либо делай одним запросом - "UPDATE zzz SET qqq=www,eee=rrr WHERE iii=jjj".
|
|||
карма: 1 |
| ||
Голосовали: | user_asm |
Ответов: 16884
Рейтинг: 1239
|
|||
user_asm, ты же вроде давно в БД
user_asm писал(а): Сам процесс изменения - сначала делете запись вхер Если хочешь добавить запись, то
iarspider, UPDATE хорошо когда нужно изменить в нескольких (1..5) колонках, а не во всех 50 |
|||
карма: 25 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Tad, а можно просто "REPLACE":
[url писал(а): https://www.sqlite.org/lang_insert.html[/url]]For compatibility with MySQL, the parser allows the use of the single keyword REPLACE as an alias for "INSERT OR REPLACE". |
|||
карма: 1 |
|
Ответов: 952
Рейтинг: 4
|
|||
У меня Номер заявки не ID а обычный текстовый столбец. ID в моей БД нет. Да, кривая база, но так как заведена была давно - что-то менять уже поздно да и напряжно.
Это может влиять на синтаксис INSERT OR REPLACE INTO ? А в записи обычно меняюредактирую 2 ячейки, одна ячейка с датой (до изменения она обычно пуста и не содержит данных), а вторая ячейка текст (до изменения в ней содержится другой текст, допустим "В процессе" потом меняю на "Завершено"). В последнее время сетка часто даёт такие сбои, админы разводят руками. Спасибо за подсказки, буду пробовать предложенные вами варианты. А пока теоретически остается если форма не закрылась то второй раз нажимать Сохранить. |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
iarspider писал(а): For compatibility with MySQL1. Тема называется sqlite - с чем его едят. (какая база у user_asm - не знаю ) ------------ Дoбавленo в 15.18: user_asm писал(а): В последнее время сетка ------------ Дoбавленo в 15.19: user_asm писал(а): Номер заявки не ID а обычный текстовый столбец. |
|||
карма: 25 |
| ||
Голосовали: | user_asm |