BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по PostgreSQL » Как устроен PostgreSQL » Транзакция со снимком данных (transaction snapshot) PostgreSQL

Транзакция со снимком данных (transaction snapshot) PostgreSQL

Транзакция со снимком данных - это набор данных, в котором хранится информация о том, все ли транзакции активны в определенный момент времени для отдельной транзакции. В данном случае активная транзакция означает, что она находится в процессе или еще не началась.

PostgreSQL внутренне определяет формат текстового представления транзакций со снимком данных как '100:100:'. Например, '100:100:' означает, что "txid, которые меньше 99, не активны, а txis, которые равны или больше 100, активны".

 

Встроенная функция pg_current_snapshot и формат ее текстового представления

Функция pg_current_snapshot отображает моментальный снимок текущей транзакции.

testdb=# SELECT pg_current_snapshot();
 pg_current_snapshot 
---------------------

100:104:100,102
(1 row)

 

В текстовом виде txid_snapshot представляется как xmin:xmax:xip_list, компоненты rjnjhjuj описываются следующим образом:

  • xmin
    Минимальный номер активной транзакции на момент создания снимка .Все предыдущие транзакции будут либо выполнены и видны, либо откатаны назад и стунт «мертвыми».
  • xmax
    Максимальный (еще пока не выданный) номер транзакции Все txid, превышающие или равные этому значению, не запущены на момент моментального снимка и поэтому невидимы.
  • xip_list
    Список номеров транзакций, активных на момент создания снимка: В список включены только активные txid между xmin и xmax.

 

Например, в моментальном снимке '100:104:100,102' xmin равен '100', xmax '104', а xip_list '100,102'.

Примеры моментальных снимков (рис. 55)

Первый пример - '100:100:'. Этот снимок означает следующее (рис. 55a):

  • txid, равные или меньше 99 не активны, потому что xmin равен 100.
  • txid, равные или превышающие 100, активны, поскольку xmax равен 100.

 

Второй пример - '100:104:100,102'. Этот снимок означает следующее (рис. 55b):

  • txid, равные или меньше 99, не активны.
  • txid, равные 104 или более, активны.
  • txid 100 и 102 активны, поскольку они есть в списке xip, в то время как txid 101 и 103 не активны.

 

С помощью менеджера транзакций можно получить моментальные снимки транзакций. На уровне изоляции Read Committed снимок создается в начале каждого оператора транзакции. Такой снимок активен, пока выполняется оператор. Снимок транзакции Repeatable Read фактически создается в начале первой команды запроса или изменения данных (SELECT, INSERT, UPDATE или DELETE). Полученный снимок транзакции используется для проверки видимости кортежей, которая подробно описана в разделе 5.7.

При использовании полученного снимка для проверки видимости активные транзакции в снимке должны рассматриваться как выполняющиеся, даже если на самом деле они были выполнены или прерваны.

Работа менеджера  транзакций отображена на рисунке ниже.

Менеджер транзакций хранит информацию о текущих транзакциях. Предположим, что три транзакции происходят одна за другой, при этом уровень изоляции транзакций Транзакция_A и Транзакция_B - READ COMMITTED, а Транзакция_C - REPEATABLE READ.

  • T1:

Транзакция_A запускает и выполняет первую команду SELECT. При выполнении первой команды Transaction_A запрашивает txid и снимок этого момента.

В этом сценарии менеджер транзакций присваивает транзакции txid 200 и возвращает моментальный снимок транзакции '200:200:'.

 

  • T2:

Транзакция_B запускает и выполняет первую команду SELECT. Менеджер транзакций присваивает ей txid 201 и возвращает снимок транзакции '200:200:', поскольку транзакция_A (txid 200) находится в процессе выполнения. Таким образом, транзакция_A не видна транзакции_B.

 

  • T3:

Транзакция_C запускает и выполняет первую команду SELECT. Менеджер транзакций присваивает ей txid 202 и возвращает моментальный снимок транзакции '200:200:', таким образом, транзакция_A и транзакция_B не видны транзакции_C.

 

  • T4:

Транзакция_A выполнена. Менеджер транзакций удаляет всю информацию, касающуюся данной транзакции.

 

  • T5:

Транзакция_B и Транзакция_C выполняют команды SELECT.

Транзакция_B требуется моментальный снимок, поскольку ее уровень изоляции - READ COMMITTED.

 

В данном случае Транзакция_B получает новый снимок '201:201:', потому что Транзакция_A (txid 200) была зафиксирована. Таким образом, Транзакция_A становится видимой для Транзакции_B. Транзакции_C не требуется снимок транзакции, поскольку ее уровень изоляции - REPEATABLE READ, ее моментальный снимок - '200:200:'. Таким образом, Транзакция_A по-прежнему не видна Транзакции_C.

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
COMMIT LOG (CLOG) PostgreSQL
Следующая статья →
Правила проверки видимости PostgreSQL
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • MoneyCare — кредитная платформа и сервис для ПОС-кредитования в магазинах, установленная в более чем 18 тысячах трейдинговых точек и сотрудничающая с 11 главными банками России.

  • ЭГИС - международная фармацевтическая компания, основанная в 1907 году в Венгрии. Компания имеет представительства более чем в 60 странах мира, в том числе в России. Компания ЭГИС является одним из ведущих производителей дженерических лекарственных средств в Центральной и Восточной Европе. Её деятельность охватывает все звенья производственно-сбытовой фармацевтической цепочки.

  • Розничный и интернет-магазин 12 Storeez один из лидеров на рынке женской одежды. С географией рынка не только на территории России, своя продукция представлена еще и в таких странах как Казахстан и Дубай.

  • АО «Евросиб СПб–транспортные системы» – оператор контейнерных сервисов с широкой сетью маршрутов на внутрироссийских и международных направлениях. Имеет успешный опыт управления парком фитинговых платформ, а также организации ускоренных контейнерных поездов, в основе которых точное расписание, оптимальные сроки доставки груза и экономическая целесообразность.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.