Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как быстро начнёт расти лог при такой схеме..?  [new]
MAULER
Member

Откуда:
Сообщений: 857
Добрый день.

Версия сервера: Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor)

Хочу создать в агенте джоб, который каждые 20 минут будет делать
truncate table myTABLE
а затем
insert into myTABLE select * from myVIEW

В myVIEW чуть более 22000 записей и количество записей растет ~ на 100 в день.

Модель восстановления БД в которой находится myTABLE - FULL. Размер БД ~ Гб (Данные 500Мб, Лог 2400Мб).

Бекап транз.лога БД делается каждую ночь.

С вьюхой myVIEW (на которое смотрит Web-приложение) колдовали как могли.
Не получается добиться комфортной скорости отображения.
Решили обойтись "малой кровью" и натравить приложение на таблицу.

Вопрос: Начнет ли транзакционный лог БД расти быстрее при такой вот схеме "truncate - insert"?

Или может быть не мучаться и перевести БД в SIMPLE и бекапить её также раз в ночь?
19 сен 19, 08:33    [21973826]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
Yasha123
Member

Откуда:
Сообщений: 1696
MAULER,
надо объемы не в строках, а в Мб сообщать.
инсертите 100Мб за раз? в логе получите свои 100Мб и еще столько же зарезервирует под откат.

а вообще вы наверное единственные в мире, кто бэкапит ЛОГ раз в сутки.
не хотите, чтобы рос, вот и бэкапьте каждые 20 минут
19 сен 19, 08:38    [21973829]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
MAULER
Member

Откуда:
Сообщений: 857
Yasha123,

нет, не 100МБ в день, а на 100 записей в день. Да, что-то забыл уточнить.
19 сен 19, 08:42    [21973832]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
L_argo
Member

Откуда:
Сообщений: 1022
MAULER
Yasha123,

нет, не 100МБ в день, а на 100 записей в день. Да, что-то забыл уточнить.
Смысле не кол-ве строк, а к объеме данных в них.
Если там БЛОБ с кинофильмом, то даже 3 записи это уже немало.
19 сен 19, 09:05    [21973856]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
MAULER
Member

Откуда:
Сообщений: 857
После включения кнопки Include Client Statistics
и выполнения запроса:
SELECT * FROM myVIEW WHERE CheckDay = '2019-09-16' 

Получаю такую картинку:

Bytes received from server 41429.0000

т.е. примерно 40Кб

К сообщению приложен файл. Размер - 67Kb
19 сен 19, 09:07    [21973857]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29774
MAULER
т.е. примерно 40Кб
Лучше просто посмотреть размер таблицы myTABLE. Можно даже мышкой в SSMS

Если она действительно 40 кб, то ответ на вопрос:
MAULER
Вопрос: Начнет ли транзакционный лог БД расти быстрее при такой вот схеме "truncate - insert"?
будет такой: да, транзакционный лог БД начнёт расти быстрее, на 40 кб в сутки (ну, может, больше, но не принципиально).
19 сен 19, 09:33    [21973880]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
Yasha123
Member

Откуда:
Сообщений: 1696
alexeyvg
транзакционный лог БД начнёт расти быстрее, на 40 кб в сутки (ну, может, больше, но не принципиально).

ну как же в сутки-то, если он каждые 20 минут собрался транкейтить и инсерить?
автор
Хочу создать в агенте джоб, который каждые 20 минут будет делать

это 3 раза в час * 24 часа * объем таблицы
19 сен 19, 09:37    [21973889]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
MAULER
Member

Откуда:
Сообщений: 857
alexeyvg, Спасибо за ответ.

Дело в том, что myTABLE ещё нет. Есть только въюха, которая содержит в себе ~22000 записей за все дни, а выборка по конкретному дню из этой въюхи, как раз и содержит ~100 записей размером 40Кб.
19 сен 19, 09:38    [21973890]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
Massa52
Member

Откуда:
Сообщений: 362
MAULER,
А почему транкейт, может просто 100 записей добрасывать?
19 сен 19, 09:45    [21973897]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
MAULER
Member

Откуда:
Сообщений: 857
Massa52,
Нет, там во вьюхе, записи недельно-месячной давности могут измениться, либо вообще исчезнуть.
19 сен 19, 09:49    [21973901]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
Yasha123
Member

Откуда:
Сообщений: 1696
вообще тут какой-то нонсенс: всего 500Мб в базе,
в любую память влазит полностью аж несколько раз,
сервер вообще Энтерпрайз (т.е. уж памяти точно больше гига)
строк на выходе тьфу и обчелся, а скорость их не устраивает.
такое даже нарочно не придумаешь
19 сен 19, 09:52    [21973906]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
Yasha123
Member

Откуда:
Сообщений: 1696
что там во вью,
100 джойнов по условиям типа OR?
19 сен 19, 09:54    [21973910]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1143
MAULER
Massa52,
Нет, там во вьюхе, записи недельно-месячной давности могут измениться, либо вообще исчезнуть.

Для этого есть конструкция MERGE
19 сен 19, 09:54    [21973912]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
MAULER
Member

Откуда:
Сообщений: 857
Yasha123,

Да, там логика формирования вьюхи myVIEW достаточно сложная, задействовано около десятка других таблиц и вьюх.
19 сен 19, 09:54    [21973913]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29774
Yasha123
alexeyvg
транзакционный лог БД начнёт расти быстрее, на 40 кб в сутки (ну, может, больше, но не принципиально).

ну как же в сутки-то, если он каждые 20 минут собрался транкейтить и инсерить?
автор
Хочу создать в агенте джоб, который каждые 20 минут будет делать

это 3 раза в час * 24 часа * объем таблицы
Ой, да, вы правы, это будет почти 3 мегабайта (ТРИ Мегабайта!) в сутки, разумеется, это неприемлемая нагрузка на Системы Хранения :-)
MAULER
Дело в том, что myTABLE ещё нет
Так выполните
select * into myTABLE from myVIEW where <ваши условия, что бы получилась 
выборка по конкретному дню ~100 записей размером 40Кб.>
, и потом посмотрите размер.
19 сен 19, 10:30    [21973941]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
Yasha123
Member

Откуда:
Сообщений: 1696
alexeyvg
Ой, да, вы правы, это будет почти 3 мегабайта (ТРИ Мегабайта!) в сутки, разумеется, это неприемлемая нагрузка на

знаете, у меня на днях ребенок побежал покупать арбуз.
бабушка ему сказала: арбузы по 0.19 продают.
так он взял двадцадчик одной монеткой и убежал покупать.
возвращается возмущенный: так это было 0.19 за кг?
---
что за кг, что за 20 кг, это не деньги.
весьма "приемлемая нагрузка" для нашего кошелька.
но если кто-то не умеет считать или не понял условия,
то когда он кричит о приемлемости он просто еще раз прилюдно это признает
19 сен 19, 10:43    [21973956]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7008
MAULER,

если не устраивает скорость отображения из myVIEW и нет возможности или нежелательно добавлять новые индексы для этого представления, то необходимо вместо преставление создать витрину данных (пожертвовать местом хранения). В простейшем случае - это индексированное представление, которое материализуется. В более сложно случае - таблица, которая наполняется триггерами, возможно, асинхронно или через средство CDC.
19 сен 19, 12:08    [21974074]     Ответить | Цитировать Сообщить модератору
 Re: Как быстро начнёт расти лог при такой схеме..?  [new]
MAULER
Member

Откуда:
Сообщений: 857
Всем большое спасибо.
Сначала попробую с таблицей. Если всё будет страшно, попробую добавить логику обновления таблицы глубиной в месяц. Возможно придется подключить MERGE (как советовали ранее).
19 сен 19, 12:30    [21974104]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить