Size: a a a

SqlCom.ru - Стиль жизни SQL

2021 January 25

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Yaroslav Schekin
А зачем конкретно это в CMDB? И там не в "перф" дело, по идее — это вопрос возможностей и ограничений, скорее всего.
В CMDB есть ряд сущностей с разными свойствами. пробовал делать так - отдельная таблица со списком сущностей и свойства каждой в key-value в отдельной большой таблице. медленно, неудобно.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Вот я также думал. Но что будет когда я включу rcsi на первичной реплике?
была как-то жеппа, связанная именно с таким сценарием, но что-то не могу припомнить что именно
источник

YS

Yaroslav Schekin in SqlCom.ru - Стиль жизни SQL
Oleg T
В CMDB есть ряд сущностей с разными свойствами. пробовал делать так - отдельная таблица со списком сущностей и свойства каждой в key-value в отдельной большой таблице. медленно, неудобно.
Ну так https://t.me/sqlcom/149071 , т.е. в хоть сколько-нибудь нетривиальном случае наследование в PostgreSQL уже "не потянет" (там много существенных ограничений).
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
была как-то жеппа, связанная именно с таким сценарием, но что-то не могу припомнить что именно
И у меня есть какие то фантомы в голове, но не могу найти где я это видел. Но спасибо, значит это не глюк
источник

S

Sergey in SqlCom.ru - Стиль жизни SQL
Oleg T
а зачем вам эту таблицу дают, если её можно конечному потребителю отдать как есть 😊 простите, если чего не понял
У нас есть несколько плоских таблиц которые получаются соединением нескольких файлов Excel на каждую дату, которые аналитики связывают сейчас по полям и тащут все это в локальный bi файл.
Вот теперь подобную структуру надо реализовать через хранилище. Если выгрузки можно сделать - ssis будет забирать их и кидать в хранилище, то дальше что с ними делать непонятно.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Yaroslav Schekin
Ну так https://t.me/sqlcom/149071 , т.е. в хоть сколько-нибудь нетривиальном случае наследование в PostgreSQL уже "не потянет" (там много существенных ограничений).
В итоге я пришел к тому, что есть кучка таблиц под каждый тип сущностей. Кроме идентификатора и имени в каждой таблице есть ряд их неотъемлемых свойств. А все, что меняется часто - в одной секционированной темпоральной таблице. Глобальный каталог - отдельная табилца, синхронизируемая на этапе вставки/удаления сущностей
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Yaroslav Schekin
И даже там оно для этого уже не используется. ;) И к использованию в принципе не рекомендуется.
Вообще, "встроенное" наследование и все эти "object-relational databases", по-моему, "провалились" на практике.
+
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Sergey
Я и не спорю с этим. Вы правы, но то же какой-то гемор получается. Сначала все нормализовывать, потом заливать в базу, потом обратно денормализовывать и выдавать этот набор пользователям.
Это не денормализовать, это композировать (восстановить после декомпозиции)
источник

S

Sergey in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Это не денормализовать, это композировать (восстановить после декомпозиции)
+
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
И у меня есть какие то фантомы в голове, но не могу найти где я это видел. Но спасибо, значит это не глюк
Вспомнил. Та проблема не связана работой RCSI. Там ghost cleanup на primary лочился в связи с висячим запросом на реплике.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
И у меня есть какие то фантомы в голове, но не могу найти где я это видел. Но спасибо, значит это не глюк
Честно говоря, не могу представить механизма влияния на вторичку. Данные коммитятся как и раньше, передаются, применяются. ВРоде бы разницы нет
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
Вспомнил. Та проблема не связана работой RCSI. Там ghost cleanup на primary лочился в связи с висячим запросом на реплике.
А есть где почитать?
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Под рукой нет. это из полевой практики
источник

A

Az in SqlCom.ru - Стиль жизни SQL
Дай бог здоровья создателю канала✊🏻
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
However, row versioning also leads to another, less known phenomenon. Long running snapshot transactions on secondary nodes may defer ghost and version store cleanup on the primary node. Such transactions work with snapshots of the data as of the time when a given transaction began. Therefore, SQL Server cannot remove deleted rows and reuse their space because of the possibility that a snapshot transaction needs to access the old versions of the rows.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Oleg T
Честно говоря, не могу представить механизма влияния на вторичку. Данные коммитятся как и раньше, передаются, применяются. ВРоде бы разницы нет
Не все так однозначно. Чтобы передавать 14 байт для версионности на вторичную реплику, первичка оставляет свободное место внутри лога для этих 14 байт. И я думаю, а не может ли это повлиять как-то. Ведь надо на первичке хранить 14 байт и ещё на вторичку пересылать пустоту для обеспечения rcsi там.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Благодарю
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Az
Дай бог здоровья создателю канала✊🏻
Гоп перелогинился? шучу 😊
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Не все так однозначно. Чтобы передавать 14 байт для версионности на вторичную реплику, первичка оставляет свободное место внутри лога для этих 14 байт. И я думаю, а не может ли это повлиять как-то. Ведь надо на первичке хранить 14 байт и ещё на вторичку пересылать пустоту для обеспечения rcsi там.
А там не RSCI 😊 Там чистый SNAPSHOT. Читаем закоммиченные данные, так что пофиг ваще что там за изоляция на первичке. Я так думаю.
источник