Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26113
Рейтинг: 2126
#976: 2012-05-18 22:38:34 ЛС | профиль | цитата
Tad писал(а):
Видно что-то я сделал не так

А регулярное пересоздание базы на новый день есть с закрытием предыдущей
И что, ПО на рабочем месте работает круглосуточно не выключаясь
А сколько ежедневных записей в базу
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#977: 2012-05-19 12:46:08 ЛС | профиль | цитата
1. нет
2. работает круглосуточно не выключаясь. На всякий пожарный все компы подключены через UPS-ы
3. до десятка. (А то и меньше).
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#978: 2012-05-19 12:50:41 ЛС | профиль | цитата
А у меня

1. Регулярно, каждый день в 00:00
2. Круглосуточно
3. В среднем -- 25000 в день

И вот в таком режиме занимаемая память начинает постепенно расти. Я плюнул на это безобразие и пошел путем перезапуска модуля записи в 0 часов каждого дня
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#979: 2012-05-19 13:11:36 ЛС | профиль | цитата
nesco писал(а):
3. В среднем -- 25000 в день
А они все нужны ? Если изменилось состояние, то понятно. А если нет, то нафига его писать в БД ?
Это нужно знать специфику работы.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#980: 2012-05-19 23:06:36 ЛС | профиль | цитата
Tad писал(а):
А они все нужны ?

Да, все.
Tad писал(а):
Если изменилось состояние, то понятно.

Постоянно меняется.
Tad писал(а):
Это нужно знать специфику работы

Я уже говорил тебе, для чего это нужно.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#981: 2012-05-20 10:10:16 ЛС | профиль | цитата
nesco писал(а):
Я уже говорил тебе, для чего это нужно.
Помню. Поэтому и сомневаюсь, что нужно писать в БД 25000 в день.
Интересно, если не секрет, а сколько объектов?




карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#982: 2012-05-20 12:40:10 ЛС | профиль | цитата
Tad писал(а):
Интересно, если не секрет, а сколько объектов?

Около тысячи, и с каждого может приходить больше 50 событий в текущий момент времени, но может быть и от 3 до 7, тк как разные системы. Наибольшая нагрузка утром и вечером.
Почему нужны все, то я уже писал, что это показывает трассу прохождения сигнала и его уровень в конкретный момент, о котором можно косвенно судить о состоянии канала. У меня техническая база, но есть еще и общая база (на MSSQL, стороннее ПО), вот там нет всех этих событий.
карма: 22

0
Ответов: 952
Рейтинг: 4
#983: 2012-09-20 01:23:58 ЛС | профиль | цитата
Загвоздка.
Есть БД в которой есть столбец Срок сдачи. К примеру srok
Хочу сделать выборку заявок, срок сдачи которых заканчивается в ближайшие 10 календарных дней.
SELECT * FROM base WHERE (srok > date('now')) AND (srok <= date('now')+ 10 ) ORDER by srok
Но в итоге получаю все заявки срок сдачи которых больше сегодняшней даты.
Не могу сообразить как побороть....
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#984: 2012-09-20 08:37:19 ЛС | профиль | цитата
Или так
SELECT * FROM base WHERE Date(srok) BETWEEN date('now') AND date('now','+10 day') ORDER BY srok
или так
SELECT * FROM base WHERE srok BETWEEN date('now') AND date('now','+10 day') ORDER BY srok
зависит от формата хранения даты в БД
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:user_asm
Ответов: 952
Рейтинг: 4
#985: 2012-09-25 14:16:18 ЛС | профиль | цитата
Какой-то полтергейст.
Внес изменения в запись, нажал Сохранить, подвисла сетка немного, часики вместо курсора, отвисла сетка, дочерняя форма внесения изменений в запись осталась на переднем плане, хотя должна была закрыться после выполнения запроса к БД.
На дочерней форме вижу что все ок, никаких подозрений, закрываю форму крестиком.
Но тут что то кольнуло - дай поищу исправленную запись в БД. Ищу .... и не нахожу. Записи просто нет.
Исчезла.
Выгрузил всю таблицу в CSV - нет записи. Предыдущая запись номер 242 есть, а следующая уже идет 244.
Сам процесс изменения - сначала делете запись вхер ...все данные записи..., потом инсерт валуес ....все данные записи.....
Данные записи берутся с дочерней формы.
Т.е. получается процесс делете прошел, сетка подвисла на секунды, и процесс инсерт не прокатил?
карма: 0

0
Ответов: 5446
Рейтинг: 323
#986: 2012-09-25 14:27:45 ЛС | профиль | цитата
user_asm, именно так. Чтобы этого избежать - делай "BEGIN TRANSACTION" в начале и "COMMIT" в конце (тут я не очень уверен - по идее, если хоть одно изменение не прошло, то транзакция сорвётся, и будет автоматический откат на состояние до "BEGIN TRANSACTION"), либо делай одним запросом - "UPDATE zzz SET qqq=www,eee=rrr WHERE iii=jjj".
карма: 1

1
Голосовали:user_asm
Ответов: 16884
Рейтинг: 1239
#987: 2012-09-25 14:40:56 ЛС | профиль | цитата
user_asm, ты же вроде давно в БД
user_asm писал(а):
Сам процесс изменения - сначала делете запись вхер
не надо DELETE вХЕР.
Если хочешь добавить запись, то
INSERT OR REPLACE INTO таблица values(NULL,...,...,...);
или просто
INSERT INTO таблица values(NULL,...,...,...);
Если хочешь заменить запись, то указываешь конкретный НОМЕР заменяемой ЗАПИСИ
INSERT OR REPLACE INTO таблица values(номер записи,...,...,...);
Я предпочитаю INSERT OR REPLACE потому, что всё делается одной и той же схемой. Меняю только id на NULL или конкретный номер.
iarspider, UPDATE хорошо когда нужно изменить в нескольких (1..5) колонках, а не во всех 50
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 5446
Рейтинг: 323
#988: 2012-09-25 14:54:59 ЛС | профиль | цитата
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

0
Ответов: 952
Рейтинг: 4
#989: 2012-09-25 15:05:02 ЛС | профиль | цитата
У меня Номер заявки не ID а обычный текстовый столбец. ID в моей БД нет. Да, кривая база, но так как заведена была давно - что-то менять уже поздно да и напряжно.
Это может влиять на синтаксис INSERT OR REPLACE INTO ?

А в записи обычно меняюредактирую 2 ячейки, одна ячейка с датой (до изменения она обычно пуста и не содержит данных), а вторая ячейка текст (до изменения в ней содержится другой текст, допустим "В процессе" потом меняю на "Завершено").

В последнее время сетка часто даёт такие сбои, админы разводят руками. Спасибо за подсказки, буду пробовать предложенные вами варианты.
А пока теоретически остается если форма не закрылась то второй раз нажимать Сохранить.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#990: 2012-09-25 15:20:43 ЛС | профиль | цитата
iarspider писал(а):
For compatibility with MySQL

1. Тема называется sqlite - с чем его едят.
(какая база у user_asm - не знаю )
------------ Дoбавленo в 15.18:
user_asm писал(а):
В последнее время сетка
What is the "сетка" ? Сеть ?
------------ Дoбавленo в 15.19:
user_asm писал(а):
Номер заявки не ID а обычный текстовый столбец.
Тогда UPDATE......SET ......WHERE обычный текстовый столбец = 'номер'
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:user_asm
Сообщение
...
Прикрепленные файлы
(файлы не залиты)