|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Alibek B., вот видете, уже появился update самое главное, узнайте как устроено в реальной жизни, и от етого исходите зы andrey_anonymous 1. НЕ используйте null. Возьмите константу типа date'3000-01-01' - это существенно упростит жизнь. .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 11:32 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Staxвот видете, уже появился update Почему "уже"? update и insert были изначально. Просто они были внутри merge, в предложениях when matched и when not matched соответственно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 11:34 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Stax1. НЕ используйте null. Возьмите константу типа date'3000-01-01' - это существенно упростит жизнь. А почему, не могли бы пояснить? Я и сам об этом задумывался. В случае с MSSQL и вопроса бы такого не возникало, там OR так драматически влияет на запрос, что его желательно избегать при любой возможности. Но в Oracle выражение (date_end is null or date_end > sysdate) при индексации date_end работает быстро, я не замечал, чтобы оно приводило к снижению производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 11:37 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Вариант с указанием диапазона для добавляемой записи не нравится мне вот чем. На схеме зеленым указаны значения до добавления, голубым после добавления. И если с первым примером все довольно просто, то второй и особенно третий пример реализовать сложнее. Нужно или использовать четыре запроса (для каждого из вариантов пересечения диапазонов), либо попытаться все сделать в одном, который получится сложным для понимания и выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 12:28 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Alibek B.Staxвот видете, уже появился update Просто они были внутри merge, в предложениях when matched и when not matched соответственно. я с мерже плохо дружу, можете привести пример в целях моего ликбеза зы уж больно витеевато у меня выйдет ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 12:47 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Alibek B., вопрос не стоит нравится/не нравится что надо пользователю, как оно будет в реальной жизни если Вы УВЕРЕНЫ что напр правок задним числом не будет, то достаточно и только "с" зи насчет null, смысл и в удобстве, Вам почти всюду надо будет лепить or или nvl или через вью .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 12:53 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
-2-Alibek B. обычная фильтрация по индексированным полямВ каких случаях поможет индексация второго поля? Если история очень-очень богатая, то индекс может помочь на выборке актуального среза :) Хотя в этом случае уместнее partition by dt_end Alibek B.Если срок действия токена истек, нужно запросить новый. А в таблице хранится их история. Для решения этой задачи НЕ требуется городить версионность на периодах актуальности записи по типу SCD2. Скорее даже вредно. Выбирайте что-то вроде SCD4 и радуйтесь жизни. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 13:17 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Staxя с мерже плохо дружу, можете привести пример в целях моего ликбеза Что-то типа такого. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Этот запрос предполагает, что из таблицы предварительно удалены все ранее запланированные записи. Если их не удалять, то в таблице d нужно получать три клона (для добавляемой записи, для действующей записи и для следующей запланированной записи) и предложение when matched будет более сложным. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 13:38 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
andrey_anonymousВыбирайте что-то вроде SCD4 и радуйтесь жизни. Не совсем понял этот совет. SCD4 это ведь SCD2, только не для всех атрибутов, а для выборочных. Ну так у меня так и есть, я буду хранить версии только токенов доступа. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 13:52 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Alibek B.SCD4 это ведь SCD2, только не для всех атрибутов, а для выборочных. Нет, это отдельная таблица для исторических записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 17:31 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Так та таблица, которую я привел в примере, и есть отдельная таблица для исторических записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 17:58 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Alibek B.Так та таблица, которую я привел в примере, и есть отдельная таблица для исторических записей. Тогда не морочьте мозг, просто вставляйте туда утратившие актуальность записи. Если очень надо выстроить цепочку версий - то введите суррогатный pk и свяжите либо ссылками, либо просто порядком относительно pk. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 18:12 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Alibek B., о, наконец то прочитал что такое SCD https://habr.com/ru/post/101544/ ps ето наш xtender? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 18:52 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Staxето наш xtender? Это Саян. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 19:52 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2019, 20:18 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
andrey_anonymousStaxето наш xtender? Это Саян. незнаком, "Sayan Malakshinov" ето Саян? просто я не понял идею с триггером 1) мутация 2) в паралельные сессии не увидят изменения ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 09:34 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
SYAlibek B., Возможно подкинет какие-нибудь идеи SCD2 . SY. Код: plsql 1. 2. 3.
до вставки фром - то отличаются на 1, после вставки совпадают так задумано? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 09:57 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
Stax до вставки фром - то отличаются на 1, после вставки совпадают так задумано? Спасибо, да from должно быть sysdate + 1. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 15:29 |
|
Вставка записи в историческую таблицу - что делать с последующими записями?
|
|||
---|---|---|---|
#18+
SYStaxдо вставки фром - то отличаются на 1, после вставки совпадают так задумано? Спасибо, да from должно быть sysdate + 1. SY. В многопользовательской сред с merge лучше поаккуратнее, можно получить wrong results - если, конечно, не пофиксили багу "микроотката". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 19:49 |
|
|
start [/forum/topic.php?fid=52&msg=39760448&tid=1882922]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 353ms |
total: | 487ms |
0 / 0 |