powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Что происходит с timestamp-ом я не понимаю ... HELP!
7 сообщений из 7, страница 1 из 1
Что происходит с timestamp-ом я не понимаю ... HELP!
    #39476567
kigora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте !
Есть таблица вида :
Код: sql
1.
2.
CREATE TABLE 'EXAMPLE_Х' (t timestamp,v real) -- т.е. timestamp без таймзоны
CREATE UNIQUE INDEX idx_example_х_t ON 'EXAMPLE_Х'(t)


в эту таблицу строго каждую (например) секунду вставляются данные :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:00.123',0)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:01.123',1)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:02.123',2)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:03.123',3)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:04.123',4)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:05.123',5)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:06.123',6)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:07.123',7)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:08.123',8)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:09.123',9)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:10.123',0)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:11.123',9)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:12.123',8)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:13.123',7)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:14.123',6)
INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:15.123',5)
... 


но это в теории ... на практике (при выборке данных) происходит следующее :
'2017-06-22 00:00:00.012'0'2017-06-22 00:00:01.123'1'2017-06-22 00:00:02.234'2'2017-06-22 00:00:03.321'3'2017-06-22 00:00:04.556'4'2017-06-22 00:00:05.446'5'2017-06-22 00:00:06.667'6'2017-06-22 00:00:07.754'7'2017-06-22 00:00:08.865'8'2017-06-22 00:00:09.976'9'2017-06-22 00:00:10.087'0 ...
...
какой-то хаос с миллисекундами ... но это цветочки , а ягодки - когда происходит синхронизация по времени ... вот тут полный бред (на то время рассинхронизации) ... все вперемешку (сортировка по t) :
'2017-06-22 00:00:00.412'0'2017-06-22 00:00:01.254'2'2017-06-22 00:00:02.623'1'2017-06-22 00:00:03.558'4'2017-06-22 00:00:04.371'3'2017-06-22 00:00:05.667'6'2017-06-22 00:00:06.456'5'2017-06-22 00:00:07.165'8'2017-06-22 00:00:08.576'9'2017-06-22 00:00:09.254'7'2017-06-22 00:00:10.087'0
...
плюс в логах вот это (чего в принципе не может быть) от 0 до 20 ошибок за сутки:
Код: plaintext
1.
2.
3.
2017-06-22 01:20:37 GMT ОШИБКА:  повторяющееся значение ключа нарушает ограничение уникальности "idx_table_х_t"
2017-06-22 01:20:37 GMT ПОДРОБНОСТИ:  Ключ "(t)=(2017-06-22 00:00:03.433)" уже существует.
2017-06-22 01:20:37 GMT ОПЕРАТОР:  insert into "TABLE" values('2017-06-22 00:00:03.433',3)

цветочки - не лечатся, ягодки - перезапуском PostgreSQL (на пару недель), потом все повторяется ...

Я просто не знаю что делать ... ПОМОГИТЕ !!!
...
Рейтинг: 0 / 0
Что происходит с timestamp-ом я не понимаю ... HELP!
    #39476576
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kigora,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
melkij=> create table testtable (t timestamp, v real);
CREATE TABLE
melkij=> insert into testtable VALUES('2017-06-22 00:00:00.123',0);
INSERT 0 1
melkij=> insert into testtable VALUES('2017-06-22 00:00:01.123',0);
INSERT 0 1
melkij=> insert into testtable VALUES('2017-06-22 00:00:02.123',0);
INSERT 0 1
melkij=> insert into testtable VALUES('2017-06-22 00:00:03.123',0);
INSERT 0 1
melkij=> table testtable ;
            t            | v 
-------------------------+---
 2017-06-22 00:00:00.123 | 0
 2017-06-22 00:00:01.123 | 0
 2017-06-22 00:00:02.123 | 0
 2017-06-22 00:00:03.123 | 0
(4 строки)

melkij=> create unique index testtable_t_uniq on testtable (t);
CREATE INDEX
melkij=> table testtable ;
            t            | v 
-------------------------+---
 2017-06-22 00:00:00.123 | 0
 2017-06-22 00:00:01.123 | 0
 2017-06-22 00:00:02.123 | 0
 2017-06-22 00:00:03.123 | 0
(4 строки)

melkij=> insert into testtable VALUES('2017-06-22 00:00:04.123',0);
INSERT 0 1
melkij=> table testtable ;
            t            | v 
-------------------------+---
 2017-06-22 00:00:00.123 | 0
 2017-06-22 00:00:01.123 | 0
 2017-06-22 00:00:02.123 | 0
 2017-06-22 00:00:03.123 | 0
 2017-06-22 00:00:04.123 | 0
(5 строк)

melkij=> 
Что записано, то и вставлено, то и читается. Проверяйте свой код писателя.
...
Рейтинг: 0 / 0
Что происходит с timestamp-ом я не понимаю ... HELP!
    #39476596
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настройте, чтобы постгрес логировал все запросы. https://www.postgresql.org/docs/9.6/static/runtime-config-logging.html

Подозреваю, что вместо ожидаемого "INSERT INTO "TABLE_Х" VALUES('2017-06-22 00:00:00.123', 0)" вы обнаружите в логе, например, "INSERT INTO "TABLE_Х" VALUES( now() , 0)".

авторкогда происходит синхронизация по времениКакая еще синхронизация? Кто её проводит? И в чем она состоит?
...
Рейтинг: 0 / 0
Что происходит с timestamp-ом я не понимаю ... HELP!
    #39476621
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kigora,

похоже, кто--то пытается использовать пж как систему реального времени
и этот кто-то явно не сапиенс

генерируйте данные в своей системе, а пж используйте только как хранилище -- авось станет полегше
...
Рейтинг: 0 / 0
Что происходит с timestamp-ом я не понимаю ... HELP!
    #39476627
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijПроверяйте свой код писателя.
или вставляемые данные, если таймстамп приходит извне.
...
Рейтинг: 0 / 0
Что происходит с timestamp-ом я не понимаю ... HELP!
    #39476650
kigora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это происходит на одном (там где PostgreSQL) из 4-х серверов (на остальных Sybase ASE), на которых ПО одинаковое (источники данных разные). Там где Sybase ASE - все замечательно, а там где PostgreSQL - ... вот така лажа.

LeXa NalBatКакая еще синхронизация? Кто её проводит? И в чем она состоит?
каждый час, самая обычная (виндовая) с сервером времени
...
Рейтинг: 0 / 0
Что происходит с timestamp-ом я не понимаю ... HELP!
    #39476667
kigora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MelkijПроверяйте свой код писателя.
... это ПО работает лет 7. Решил попробовать PostgreSQL ;)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Что происходит с timestamp-ом я не понимаю ... HELP!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]