Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема большой транзакции / 25 сообщений из 37, страница 1 из 2
16.12.2021, 18:28
    #40120758
vi0
vi0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
Добрый день
Какие могут быть проблемы большой транзкции?
Например выполняется запись данных 300 МБ в течение часа
Пользователей в базе нет
...
Рейтинг: 0 / 0
16.12.2021, 19:36
    #40120784
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
Какие могут быть проблемы большой транзкции?
Например выполняется запись данных 300 МБ в течение часа
Тема "оптимизация" не сводится к какой то одной галочке, которую надо включить.
Начать нужно с кода этой "транзакции", изучения модели данных, потом посмотреть статистику выполнения (трейс и актуальные планы).
Из этого можно будет хоть что то сказать по теме (предположить, какие в самых общих чертах есть варианты, и что дальше нужно исследовать).
...
Рейтинг: 0 / 0
16.12.2021, 19:37
    #40120786
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
Я так понимаю что это долго для вас?

sp_whoisactive от Adam Machanic
взять здесь http://whoisactive.com/
...
Рейтинг: 0 / 0
16.12.2021, 19:38
    #40120787
vi0
vi0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
alexeyvg,
код транзакции простой: в цикле записывается много объектов
какие могут быть технические проблемы при этом?
...
Рейтинг: 0 / 0
16.12.2021, 19:52
    #40120792
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
какие могут быть технические проблемы при этом?
1. Много мелких изменений делать дольше, чем одно большое, как правило.

2. Убедитесь, что всё это делается именно в одной транзакции, в одиночных транзакциях получится в десяток раз медленней. У вас написано begin tran, или вы транзакцией называете бизнес-операцию?

3. Смотрите, сколько занимает каждая операция, может, есть те, которые сильно медленней - тогда изучайте их индивидуально.
Снимите трейс с записью в таблицу, потом его можно анализировать запросами, например, выводить статистику по типам операций, по времени выполнения в начале ив конце, ну и т.д.
...
Рейтинг: 0 / 0
16.12.2021, 19:54
    #40120793
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
alexeyvg,
код транзакции простой: в цикле записывается много объектов
какие могут быть технические проблемы при этом?

Если на сферический сервер в вакууме (без пользователей) вести запись ажно 300Мб (ужос то какой, ладно бы 300Тб) никаких технических проблем не возникнет.
Надо на диске или в базе иметь 600Мб свободного места и ... фсе.
...
Рейтинг: 0 / 0
16.12.2021, 20:00
    #40120796
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
aleks222
Если на сферический сервер в вакууме (без пользователей) вести запись ажно 300Мб (ужос то какой, ладно бы 300Тб) никаких технических проблем не возникнет.
Да тут 300 Мб тоже сферические, автор же не говорит, что это за цифра, в его понимании. Может, это запись 30 млн. строк по 10 байт (int, int, smallint) каждая?
Или там "цикл с записью простых объектов" получает каждый объект снаружи через веб-сервис?

Повторю, нужны хоть какие то детали.
Например, трейс одного прохода "цикла".
...
Рейтинг: 0 / 0
16.12.2021, 20:11
    #40120802
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
Добрый день
Какие могут быть проблемы большой транзкции?
Например выполняется запись данных 300 МБ в течение часа
Пользователей в базе нет

наложатся блокировки на объект записи на время транзакции
большая транзакция должна поместиться в лог - нужно место в логе и/или на диске
...
Рейтинг: 0 / 0
16.12.2021, 22:11
    #40120825
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0,

если пользователей нет, то никаких проблем. 300мб сейчас не размер.
...
Рейтинг: 0 / 0
16.12.2021, 22:40
    #40120836
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
alexeyvg,
код транзакции простой: в цикле записывается много объектов
какие могут быть технические проблемы при этом?


Сначала в цикле (не открывая транзакцию) загоните все во временную таблицу, потом внутри транзакции сделайте вставку всего этого. На больших данных всегда надо делать буфер.
...
Рейтинг: 0 / 0
17.12.2021, 03:55
    #40120878
vi0
vi0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
Коллеги, 300 Мб я взял условные - т.к. выполняется загрузка из xml такого порядка размера или больше. Именно мегабайты. Я понимаю что в XML есть неполезная нагрузка в виде тегов итд, но тем не менее, вопрос про такой порядок.
Пока из ответов я увидел, что проблем не должно быть.

Вопрос у меня звучит именно так:
в одной транзакции в цикле записывается много объектов. какие могут быть технические проблемы при этом?

Нет вопроса как оптимизировать.
...
Рейтинг: 0 / 0
17.12.2021, 04:10
    #40120881
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
какие могут быть технические проблемы при этом?
проблемы могут быть только те которые вы сами и создадите.
...
Рейтинг: 0 / 0
17.12.2021, 08:35
    #40120897
vi0
vi0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
alexeyvg
Может, это запись 30 млн. строк по 10 байт (int, int, smallint) каждая?
Количество записей примерно 300 тыс
...
Рейтинг: 0 / 0
17.12.2021, 09:36
    #40120909
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
alexeyvg
Может, это запись 30 млн. строк по 10 байт (int, int, smallint) каждая?
Количество записей примерно 300 тыс


Все будет харашо. Я это точно знаю...
Не ссыте - грузите.

При использовании православного средства загрузки, навроде sqlXmlBulkLoad, это займет от 1 до 30 сек.
Диски то у вас тоже сферические.

ЗЫ. Нафига козе баян вам транзакция при загрузке данных с XML?
...
Рейтинг: 0 / 0
17.12.2021, 09:59
    #40120916
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
Добрый день
Какие могут быть проблемы большой транзкции?
Например выполняется запись данных 300 МБ в течение часа
Пользователей в базе нет

В описанном Вами случае, самой большой проблемой может быть: откат всей транзакции из-за какой-нибудь мелочи
...
Рейтинг: 0 / 0
17.12.2021, 10:04
    #40120919
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
alexeyvg

2. Убедитесь, что всё это делается именно в одной транзакции, в одиночных транзакциях получится в десяток раз медленней. У вас написано begin tran, или вы транзакцией называете бизнес-операцию?


Вот тут поспорю, одна здоровенная транзакция для какой то объемной бизнес логики будет сильно медленне большого кол-ва коротких транзакций
...
Рейтинг: 0 / 0
17.12.2021, 10:10
    #40120921
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
felix_ff
alexeyvg

2. Убедитесь, что всё это делается именно в одной транзакции, в одиночных транзакциях получится в десяток раз медленней. У вас написано begin tran, или вы транзакцией называете бизнес-операцию?


Вот тут поспорю, одна здоровенная транзакция для какой то объемной бизнес логики будет сильно медленне большого кол-ва коротких транзакций


Консилиум у постели мертворожденного?

Прежде чем, "спорить" не худо убедиться, что ТС понимает: "что такое транзакция" и "зачем ему эта транзакция".
...
Рейтинг: 0 / 0
17.12.2021, 10:12
    #40120924
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
Добрый день
Какие могут быть проблемы большой транзкции?
Например выполняется запись данных 300 МБ в течение часа
Пользователей в базе нет
Нехватка места на диске. Лог-файлы могут распухнуть.
...
Рейтинг: 0 / 0
17.12.2021, 13:45
    #40121023
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
vi0
alexeyvg,
код транзакции простой: в цикле записывается много объектов
какие могут быть технические проблемы при этом?


Разные, вы хотите, чтобы вам тут начали фантазировать и сделали список типа 1, 2,..., 101?
...
Рейтинг: 0 / 0
17.12.2021, 20:48
    #40121161
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
alexeyvg
Да тут 300 Мб тоже сферические
Ну вот, что я говорил? :-)
vi0
Коллеги, 300 Мб я взял условные - т.к. выполняется загрузка из xml такого порядка размера или больше.

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

Второй приёмчик - разбирать XML и вставлять данные каким то более оптимальным способом, например, используя XMLBulkLoad, или свой балко-подобный код. Так можно на рядовом железе довести разбор XML со вставкой в БД до десятков или сотен мб/сек
Но это если действительно есть проблема с производительностью (например, если у вас поток таких файлов по 300 мб), в противном случае можно не заморачиваться, не те объёмы, делайте на чём умеете.
...
Рейтинг: 0 / 0
18.12.2021, 09:10
    #40121197
vi0
vi0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
felix_ff
Вот тут поспорю, одна здоровенная транзакция для какой то объемной бизнес логики будет сильно медленне большого кол-ва коротких транзакций
почему считаете будет замедление?
...
Рейтинг: 0 / 0
18.12.2021, 09:11
    #40121198
vi0
vi0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
Gerasimenko
vi0
Добрый день
Какие могут быть проблемы большой транзкции?
Например выполняется запись данных 300 МБ в течение часа
Пользователей в базе нет

В описанном Вами случае, самой большой проблемой может быть: откат всей транзакции из-за какой-нибудь мелочи
согласен да
...
Рейтинг: 0 / 0
18.12.2021, 17:24
    #40121249
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
автороткат всей транзакции из-за какой-нибудь мелочиМаленький нюанс.
Туда SQL Server может идти в параллель, а вот обратно (роллбак) идет всегда в один поток.
...
Рейтинг: 0 / 0
19.12.2021, 12:47
    #40121339
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
aleks222
felix_ff
пропущено...


Вот тут поспорю, одна здоровенная транзакция для какой то объемной бизнес логики будет сильно медленне большого кол-ва коротких транзакций


Консилиум у постели мертворожденного?

Прежде чем, "спорить" не худо убедиться, что ТС понимает: "что такое транзакция" и "зачем ему эта транзакция".


Картина "С.М.Будённый на коне у постели больного М.Горького"
...
Рейтинг: 0 / 0
19.12.2021, 12:49
    #40121340
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема большой транзакции
Gerasimenko
vi0
Добрый день
Какие могут быть проблемы большой транзкции?
Например выполняется запись данных 300 МБ в течение часа
Пользователей в базе нет

В описанном Вами случае, самой большой проблемой может быть: откат всей транзакции из-за какой-нибудь мелочи


В описанном Вами случае, самой большой проблемой может быть: непонимание, что такое транзакция, что такое SQL Server, нафига всё это нужно
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема большой транзакции / 25 сообщений из 37, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]