SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Что такое db_key (и как с ним бороться?)
Что такое db_key [сообщение #3665] Tue, 07 November 2023 19:34 Переход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 142
Зарегистрирован: August 2022
Senior Member
В разных уголках документаций и статей попадаются упоминания о таком явлении природы, как rdb$db_key, однако места силы, чтобы пришло понимание, найти не могу. Интуитивно эта штука воспринимается как дополнительное необъявленное поле, однако, по всей видимости, это не так.

Думал было использовать, но столкнулся с непонятками.

Создаем и наполняем таблицу
Показать скрытый текст
Изучаем на предмет rdb$db_key:
SQL> select rdb$db_key, id from test;

DB_KEY                     ID
================ ============
8000000001000000            1
Пытаемся искать по rdb$db_key:
SQL> select * from test where rdb$db_key = 8000000001000000;
<empty result>

SQL> select * from test where rdb$db_key = '8000000001000000';
<empty result>
И как это понимать?
Re: Что такое db_key [сообщение #3666 является ответом на сообщение #3665] Tue, 07 November 2023 20:29 Переход к предыдущему сообщениюПереход к следующему сообщению
m7m в настоящее время не в онлайне  m7m
Сообщений: 18
Зарегистрирован: June 2022
Географическое положение: Мариуполь,Укр...
Junior Member
https://www.ibphoenix.com/resources/documents/how_to/doc_385
Re: Что такое db_key [сообщение #3668 является ответом на сообщение #3665] Tue, 07 November 2023 21:38 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
select * from test where rdb$db_key = x'8000000001000000';
Re: Что такое db_key [сообщение #3673 является ответом на сообщение #3665] Wed, 08 November 2023 18:37 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 142
Зарегистрирован: August 2022
Senior Member
Ага, так работает, спасибо.

Отсюда можно узнать, что rdb$db_key имеет тип varbinary( 8 ), что для впервые столкнувшегося неочевидно. Еще способом догадаться был документ Firebird 4.0.3 Release Notes, раздел про функцию MAKE_DBKEY (авт. Vlad Khorsun).

ИМХО, конструкция rdb$db_key является элементом языка Firebird SQL, и было бы неплохо, если бы она была описана в соответствующей документации. Сама по себе, а не только в примерах к функции MAKE_DBKEY. Кстати, в описании языка тип возвращаемого значения этой функции тоже опущен.
Re: Что такое db_key [сообщение #3674 является ответом на сообщение #3666] Wed, 08 November 2023 18:47 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 142
Зарегистрирован: August 2022
Senior Member
m7m писал(а) Tue, 07 November 2023 20:29

https://www.ibphoenix.com/resources/documents/how_to/doc_385
Эта перегруженная ненужными деталями статья рассказывает только про один из способов практического использования db_key. А именно, как в цикле for select сделать update текущей записи без избыточного позиционирования по индексу. Не знаю, была ли в момент написания статьи такая возможность, но сейчас эту задачу успешно решает предикат where current of.
Re: Что такое db_key [сообщение #3675 является ответом на сообщение #3673] Wed, 08 November 2023 19:30 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
shalamyansky писал(а) Wed, 08 November 2023 17:37
Отсюда можно узнать, что rdb$db_key имеет тип varbinary( 8 ), что для впервые столкнувшегося неочевидно.
Для этого есть sqlda_display:

firebird>isql employee
Database: employee, User: SYSDBA
SQL> set sqlda_display on;
SQL> select rdb$db_key from country rows 1;

INPUT message field count: 0

OUTPUT message field count: 1
01: sqltype: 452 TEXT Nullable scale: 0 subtype: 0 len: 8 charset: 1 OCTETS
 :  name: DB_KEY  alias: DB_KEY
 : table: COUNTRY  owner: SYSDBA

DB_KEY
================
8000000001000000

Re: Что такое db_key [сообщение #3676 является ответом на сообщение #3675] Wed, 08 November 2023 22:43 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 142
Зарегистрирован: August 2022
Senior Member
hvlad писал(а) Wed, 08 November 2023 19:30

Для этого есть sqlda_display
О, класс, спасибо, полезно!

Тайные знания от разработчиков. Ну, формально не тайные, в принципе найти можно, если точно знать, что и где искать. Но вот с этим как раз проблемы.
Re: Что такое db_key [сообщение #3677 является ответом на сообщение #3673] Thu, 09 November 2023 01:34 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
shalamyansky писал(а) Wed, 08 November 2023 16:37
Отсюда можно узнать, что rdb$db_key имеет тип varbinary( 8 )
Авотфиг. У него тип varbinary(8 * <количество базовых таблиц>) ибо есть такая штука как view.
Re: Что такое db_key [сообщение #3678 является ответом на сообщение #3673] Thu, 09 November 2023 09:43 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 298
Зарегистрирован: June 2022
Senior Member
Добавить описание системных столбцов RDB$DB_KEY и RDB$RECORD_VERSION таблицы можно, вот только не понятно в какой раздел это поместить.

MAKE_DBKEY возвращает не varbinary( 8 ), а binary( 8 ). Это добавлю.

[Обновления: Thu, 09 November 2023 09:44]

Известить модератора

Re: Что такое db_key [сообщение #3679 является ответом на сообщение #3678] Thu, 09 November 2023 12:07 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
sim_84 писал(а) Thu, 09 November 2023 09:43
Добавить описание системных столбцов RDB$DB_KEY и RDB$RECORD_VERSION таблицы можно, вот только не понятно в какой раздел это поместить.
Да наверное в раздел TABLE, там где у тебя описание типов столбцов - символные, массивы, вычисляемые и т.п.
добавить ещё "предопределённые", или "системные", или ещё как-то обозвать.
Re: Что такое db_key [сообщение #3680 является ответом на сообщение #3679] Thu, 09 November 2023 15:08 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
Вообще-то Марк этим тоже собирался заняться. В ораклятой документации "Pseudocolumns" идёт совершенно отдельной главой.

[Обновления: Thu, 09 November 2023 15:09]

Известить модератора

Re: Что такое db_key [сообщение #3681 является ответом на сообщение #3674] Thu, 09 November 2023 15:10 Переход к предыдущему сообщениюПереход к следующему сообщению
Старый Плюшев в настоящее время не в онлайне  Старый Плюшев
Сообщений: 95
Зарегистрирован: August 2022
Географическое положение: Ленинград
Member
Сомнения некоторые испытываю я. Насчёт использования rdb$db_key не в единой SQL-конструкции, а внутри цепочки последовательных. Если мне не изменяет склероз, эта штука есть конкатенация номера таблицы, номера страницы и смещения на начало цепочки версий записи. Если поселектить его и пару минут пожевать сопли перед апдейтами-делетами, то во что оно пульнёт в общем случае кооперативной сборки мусора в достаточно нагруженной многопользовательской системы при RC изоляции я лично судить не берусь. А при RC_RC и в рамках единой конструкции. Может и брежу. Или бредю?  :roll:
Re: Что такое db_key [сообщение #3682 является ответом на сообщение #3681] Thu, 09 November 2023 15:21 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
помню что когда-то давно обсуждалось что-то касаемо "видимости db_key".
и даже параметр isc_dpb_dbkey_scope припоминаю.
а вот что куда и зачем, ну хоть тресни...
Re: Что такое db_key [сообщение #3683 является ответом на сообщение #3678] Thu, 09 November 2023 15:23 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 142
Зарегистрирован: August 2022
Senior Member
sim_84 писал(а) Thu, 09 November 2023 09:43
Добавить описание системных столбцов RDB$DB_KEY и RDB$RECORD_VERSION таблицы можно, вот только не понятно в какой раздел это поместить.
Дык в спецификацию операторов, где они появляются:
SELECT
  [...]
  [DISTINCT | ALL] <select_list>
  [...]
  FROM ...

<select_list> ::= * | <output_column> [, <output_column> ...]

<output_column> ::=
  <qualifier>.*
  | <value_expression> [COLLATE collation] [[AS] alias]
  <value-expression> ::=
    [<qualifier>.]col_name
  | [<qualifier>.]selectable_SP_outparm
  | <literal>
  | <context-variable>
  | <function-call>
  | <single-value-subselect>
  | <CASE-construct>
  | <other-single-value-expr>
  | [<qualifier>.]<pseudo_column>

<pseudo_column> ::= rdb$db_key | rdb$record_version
Тут просто необходимо для корректного полного формального описания. ИМХО. Ну и дальше лирический текст с пояснением.

[Обновления: Thu, 09 November 2023 15:31]

Известить модератора

Re: Что такое db_key [сообщение #3684 является ответом на сообщение #3681] Thu, 09 November 2023 15:28 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
Старый Плюшев писал(а) Thu, 09 November 2023 14:10
Сомнения некоторые испытываю я. Насчёт использования rdb$db_key не в единой SQL-конструкции, а внутри цепочки последовательных. Если мне не изменяет склероз, эта штука есть конкатенация номера таблицы, номера страницы и смещения на начало цепочки версий записи. Если поселектить его и пару минут пожевать сопли перед апдейтами-делетами, то во что оно пульнёт в общем случае кооперативной сборки мусора в достаточно нагруженной многопользовательской системы при RC изоляции я лично судить не берусь. А при RC_RC и в рамках единой конструкции. Может и брежу. Или бредю?  :roll:
dbkey остаётся действительным в рамках той тр-ции, в которой он был получен из БД.
Есс-но, если dbkey создали вручную - никаких гарантий.
Re: Что такое db_key [сообщение #3685 является ответом на сообщение #3682] Thu, 09 November 2023 15:31 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
МП писал(а) Thu, 09 November 2023 14:21
помню что когда-то давно обсуждалось что-то касаемо "видимости db_key".
и даже параметр isc_dpb_dbkey_scope припоминаю.
а вот что куда и зачем, ну хоть тресни...
А оно тебе надо ? Smile
Re: Что такое db_key [сообщение #3686 является ответом на сообщение #3685] Thu, 09 November 2023 15:42 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
hvlad писал(а) Thu, 09 November 2023 15:31
МП писал(а) Thu, 09 November 2023 14:21
помню что когда-то давно обсуждалось что-то касаемо "видимости db_key".
и даже параметр isc_dpb_dbkey_scope припоминаю.
а вот что куда и зачем, ну хоть тресни...
А оно тебе надо ? Smile
не корысти ради, а токмо волею пославшей мя супруги! ©

раз ключик есть, то есть вероятность, что кому-то он нужен.
(а вдруг!)
Re: Что такое db_key [сообщение #3687 является ответом на сообщение #3678] Thu, 09 November 2023 15:57 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 142
Зарегистрирован: August 2022
Senior Member
sim_84 писал(а) Thu, 09 November 2023 09:43

MAKE_DBKEY возвращает не varbinary( 8 ), а binary( 8 ).
И правда. rdb$db_key, кстати, тоже. sqltype: 452 TEXT.
Re: Что такое db_key [сообщение #3688 является ответом на сообщение #3680] Thu, 09 November 2023 17:31 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 298
Зарегистрирован: June 2022
Senior Member
Цитата:
В ораклятой документации "Pseudocolumns" идёт совершенно отдельной главой.
Ну делать целый раздел ради 2 несчастных псевдополей как по мне перебор. Вот как пункт какой-нибудь главы можно.
Хотя по RDB$DB_KEY конечно можно написать побольше, но всё равно на Раздел/главу не тянет.
Осталось придумать какой именно.

Цитата:
Дык в спецификацию операторов, где они появляются:
Дык они не только в SELECT могут быть.
Re: Что такое db_key [сообщение #3689 является ответом на сообщение #3688] Thu, 09 November 2023 18:10 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 142
Зарегистрирован: August 2022
Senior Member
Не только в SELECT. И в спецификацию по БНФ псевдополя должны войти для каждого оператора, где возможно их появление. А подробное описание можно дать, например, в разделе SELECT, и в других местах только ссылаться на него.

На истину в последней инстанции не претендую, сугубо частное мнение.
Re: Что такое db_key [сообщение #3690 является ответом на сообщение #3682] Fri, 10 November 2023 01:45 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
МП писал(а) Thu, 09 November 2023 13:21

и даже параметр isc_dpb_dbkey_scope припоминаю.
а вот что куда и зачем, ну хоть тресни...
Этот параметр просто стартует внутреннюю бесконечную транзакцию, чем убивает сборку мусора и, соответственно, предохраняет db_key от протухания.
Re: Что такое db_key [сообщение #3692 является ответом на сообщение #3690] Fri, 10 November 2023 11:45 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
SD писал(а) Fri, 10 November 2023 01:45
МП писал(а) Thu, 09 November 2023 13:21

и даже параметр isc_dpb_dbkey_scope припоминаю.
а вот что куда и зачем, ну хоть тресни...
Этот параметр просто стартует внутреннюю бесконечную транзакцию, чем убивает сборку мусора и, соответственно, предохраняет db_key от протухания.
сурово!
а для чего сие злодейство задумывалось?
Re: Что такое db_key [сообщение #3693 является ответом на сообщение #3692] Fri, 10 November 2023 15:24 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
Этого Джим не уточнил. Но, наверное, именно для того, чтобы db_key из одной транзакции можно было безопасно использовать в другой.
Re: Что такое db_key [сообщение #3696 является ответом на сообщение #3693] Fri, 10 November 2023 16:43 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
SD писал(а) Fri, 10 November 2023 15:24
Этого Джим не уточнил. Но, наверное, именно для того, чтобы db_key из одной транзакции можно было безопасно использовать в другой.
моей фантазии не хватает чтоб придумать область применения этому.
но видимо ему было надо.
Re: Что такое db_key [сообщение #3698 является ответом на сообщение #3696] Fri, 10 November 2023 17:06 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
МП писал(а) Fri, 10 November 2023 15:43
SD писал(а) Fri, 10 November 2023 15:24
Этого Джим не уточнил. Но, наверное, именно для того, чтобы db_key из одной транзакции можно было безопасно использовать в другой.
моей фантазии не хватает чтоб придумать область применения этому.
но видимо ему было надо.
Скорее это было нужно Борланду для клиентов, не знающих ничего кроме парадокса и не умеющих клиент-сервер
Re: Что такое db_key [сообщение #3699 является ответом на сообщение #3698] Fri, 10 November 2023 18:27 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
hvlad писал(а) Fri, 10 November 2023 17:06
МП писал(а) Fri, 10 November 2023 15:43
SD писал(а) Fri, 10 November 2023 15:24
Этого Джим не уточнил. Но, наверное, именно для того, чтобы db_key из одной транзакции можно было безопасно использовать в другой.
моей фантазии не хватает чтоб придумать область применения этому.
но видимо ему было надо.
Скорее это было нужно Борланду для клиентов, не знающих ничего кроме парадокса и не умеющих клиент-сервер
может быть и так.
эвон Хвастунов же тоже подсадил юзеров IBExpert'a на бездумное использование rdb$db_key.

/index.php/fa/205/0/
  • Вложение: IBExpert.png
    (Размер: 12.79KB, Загружено 645 раз)
Re: Что такое db_key [сообщение #3700 является ответом на сообщение #3699] Fri, 10 November 2023 19:34 Переход к предыдущему сообщениюПереход к следующему сообщению
Старый Плюшев в настоящее время не в онлайне  Старый Плюшев
Сообщений: 95
Зарегистрирован: August 2022
Географическое положение: Ленинград
Member
МП писал(а) Fri, 10 November 2023 18:27

эвон Хвастунов же тоже подсадил юзеров IBExpert'a на бездумное использование rdb$db_key.
Отож. Прикинь, юзер редактирует поле в гриде select from table и пост проходит на 3 наносекунды быстрее. Ему это душу греет когда он на дело идёт. Но Хвастунова понять можно. Проект должен быть моден и молодёжен чтобы покупали. А большой беды не будет.
Re: Что такое db_key [сообщение #3701 является ответом на сообщение #3698] Sat, 11 November 2023 01:37 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
Ну, вон, кто-то же попросил в пятёрке чтобы одной транзакцией можно было пользоваться в нескольких коннектах и воздалось ему...
Re: Что такое db_key [сообщение #3702 является ответом на сообщение #3701] Sat, 11 November 2023 01:57 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
SD
Ну, вон, кто-то же попросил в пятёрке чтобы одной транзакцией можно было пользоваться в нескольких коннектах и воздалось ему...
Конечно нет
Re: Что такое db_key [сообщение #3703 является ответом на сообщение #3702] Sat, 11 November 2023 02:11 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
hvlad писал(а) Fri, 10 November 2023 23:57
SD
Ну, вон, кто-то же попросил в пятёрке чтобы одной транзакцией можно было пользоваться в нескольких коннектах и воздалось ему...
Конечно нет
"Чо?" (с)
А что тогда описывает README.transaction_at_snapshot.md?
Re: Что такое db_key [сообщение #3704 является ответом на сообщение #3703] Sat, 11 November 2023 14:53 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
SD
hvlad
SD
Ну, вон, кто-то же попросил в пятёрке чтобы одной транзакцией можно было пользоваться в нескольких коннектах и воздалось ему...
Конечно нет
"Чо?" (с)
А что тогда описывает README.transaction_at_snapshot.md?
Именно то, что там написано.
И это совсем не то, что ты написал выше.
Перевести ?

PS Разные тр-ции, видящие один и тот же снимок, - это совсем не "одной транзакцией можно было пользоваться в нескольких коннектах"
Re: Что такое db_key [сообщение #3705 является ответом на сообщение #3704] Sat, 11 November 2023 15:01 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 346
Зарегистрирован: August 2022
Senior Member
"Если что-то ходит как утка..."

Если транзакция каким-то образом получает все качества (область видимости) другой транзакции (за исключением, может быть, номера, хотя ничто не мешает получить и его), она становится той другой транзакцией. И да, переведи мне, пожалуйста
Цитата:
to create parallel (via different attachments) processes reading consistent data from a database
может, тут вовсе не говорится о стабильности одних и тех же данных данных в разных подключениях?..
Re: Что такое db_key [сообщение #3706 является ответом на сообщение #3705] Sat, 11 November 2023 22:17 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
SD писал(а) Sat, 11 November 2023 14:01
"Если что-то ходит как утка..."

Если транзакция каким-то образом получает все качества (область видимости) другой транзакции (за исключением, может быть, номера, хотя ничто не мешает получить и его), она становится той другой транзакцией. И да, переведи мне, пожалуйста
Цитата:
to create parallel (via different attachments) processes reading consistent data from a database
может, тут вовсе не говорится о стабильности одних и тех же данных данных в разных подключениях?..
Не нужно кривых аналогий, они очень редко работают.
Если бы было так, как тебе приснилось, то любые изменения в рамках такой "общей" тр-ции должны были бы быть доступны всем её пользователям.
Завершение "общей" тр-ции любым пользователем стало бы сюрпризом для остальных.
Про сейвпойнты я даже говорить не стану.

В приведенной тобой цитате говорится о чтении согласованных данных и ни о чём большем.
Не нужно пустых спекуляций. И кривых аналогий тоже не нужно.
Re: Что такое db_key [сообщение #3707 является ответом на сообщение #3706] Mon, 13 November 2023 12:45 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
не могу не процитировать основной вопрос славянской философии (ОВСФ): на#уя?!
Re: Что такое db_key [сообщение #3708 является ответом на сообщение #3707] Mon, 13 November 2023 12:53 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
МП
не могу не процитировать основной вопрос славянской философии (ОВСФ): на#уя?!
А в этой вашей СФ есть основной ответ ?

PS ни#я (ц) не понял - что это было ?
Re: Что такое db_key [сообщение #3709 является ответом на сообщение #3707] Mon, 13 November 2023 13:03 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 298
Зарегистрирован: June 2022
Senior Member
Цитата:
не могу не процитировать основной вопрос славянской философии (ОВСФ): на#уя?!
если ты спрашиваешь зачем нужен transaction_at_snapshot, то ответ очень простой он используется для параллельного бекапа.
У нас параллельно запросы могут выполняться только в разных соединениях.
Но для бекапа нужно чтобы данные которые читаются в разных коннектах были согласованы, вот тут и нужен transaction_at_snapshot чтобы шарить снимок между коннектами.

При желании можно придумать применение для пользовательских задач.
Re: Что такое db_key [сообщение #3710 является ответом на сообщение #3709] Mon, 13 November 2023 13:29 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
sim_84
если ты спрашиваешь зачем нужен transaction_at_snapshot, то ответ очень простой он используется для параллельного бекапа.
вот теперь понятно.

sim_84
При желании можно придумать применение для пользовательских задач.
мне сложно измыслить такое.
но допускаю, от "Платонов и быстрых разумом Невтонов" и не такое можно ожидать.
Re: Что такое db_key [сообщение #3711 является ответом на сообщение #3709] Mon, 13 November 2023 13:41 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 320
Зарегистрирован: August 2022
Senior Member
sim_84
если ты спрашиваешь зачем нужен transaction_at_snapshot, то ответ очень простой он используется для параллельного бекапа.
Он был обсуждён и реализован независимо от параллельного бекапа и несколько раньше.
Параллельный бекап - это самое очевидное применение для этой фичи. Но не единственное.
Re: Что такое db_key [сообщение #3712 является ответом на сообщение #3711] Mon, 13 November 2023 13:52 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 800
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
hvlad

Параллельный бекап - это самое очевидное применение для этой фичи. Но не единственное.
о! я так и знал...
Re: Что такое db_key [сообщение #3713 является ответом на сообщение #3712] Mon, 13 November 2023 14:04 Переход к предыдущему сообщениюПереход к предыдущему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 298
Зарегистрирован: June 2022
Senior Member
Простые варианты - это параллельный экспорт каких-то данных.
Более сложные это построение сложного отчёта или аналитики. Но тут надо придумать как вычисления распределять между рабочими потоками.
Предыдущая тема: Как получить что 15/60 = 0.25
Следующая тема: создание объектов БД через ibescript
Переход к форуму:
  


Текущее время: Thu May 02 17:34:08 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01567 секунд