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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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


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

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


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


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

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


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

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

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

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


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


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

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


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

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


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


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