Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Что происходит с timestamp-ом я не понимаю ... HELP! / 7 сообщений из 7, страница 1 из 1
23.06.2017, 09:14
    #39476567
kigora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что происходит с timestamp-ом я не понимаю ... HELP!
Здравствуйте !
Есть таблица вида :
Код: 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
23.06.2017, 09:31
    #39476576
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что происходит с timestamp-ом я не понимаю ... HELP!
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
23.06.2017, 10:10
    #39476596
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что происходит с timestamp-ом я не понимаю ... HELP!
Настройте, чтобы постгрес логировал все запросы. 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
23.06.2017, 10:48
    #39476621
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что происходит с timestamp-ом я не понимаю ... HELP!
kigora,

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

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

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


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