|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
Добрый день Какие могут быть проблемы большой транзкции? Например выполняется запись данных 300 МБ в течение часа Пользователей в базе нет ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 18:28 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 Какие могут быть проблемы большой транзкции? Например выполняется запись данных 300 МБ в течение часа Начать нужно с кода этой "транзакции", изучения модели данных, потом посмотреть статистику выполнения (трейс и актуальные планы). Из этого можно будет хоть что то сказать по теме (предположить, какие в самых общих чертах есть варианты, и что дальше нужно исследовать). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 19:36 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
Я так понимаю что это долго для вас? sp_whoisactive от Adam Machanic взять здесь http://whoisactive.com/ ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 19:37 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
alexeyvg, код транзакции простой: в цикле записывается много объектов какие могут быть технические проблемы при этом? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 19:38 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 какие могут быть технические проблемы при этом? 2. Убедитесь, что всё это делается именно в одной транзакции, в одиночных транзакциях получится в десяток раз медленней. У вас написано begin tran, или вы транзакцией называете бизнес-операцию? 3. Смотрите, сколько занимает каждая операция, может, есть те, которые сильно медленней - тогда изучайте их индивидуально. Снимите трейс с записью в таблицу, потом его можно анализировать запросами, например, выводить статистику по типам операций, по времени выполнения в начале ив конце, ну и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 19:52 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 alexeyvg, код транзакции простой: в цикле записывается много объектов какие могут быть технические проблемы при этом? Если на сферический сервер в вакууме (без пользователей) вести запись ажно 300Мб (ужос то какой, ладно бы 300Тб) никаких технических проблем не возникнет. Надо на диске или в базе иметь 600Мб свободного места и ... фсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 19:54 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
aleks222 Если на сферический сервер в вакууме (без пользователей) вести запись ажно 300Мб (ужос то какой, ладно бы 300Тб) никаких технических проблем не возникнет. Или там "цикл с записью простых объектов" получает каждый объект снаружи через веб-сервис? Повторю, нужны хоть какие то детали. Например, трейс одного прохода "цикла". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 20:00 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 Добрый день Какие могут быть проблемы большой транзкции? Например выполняется запись данных 300 МБ в течение часа Пользователей в базе нет наложатся блокировки на объект записи на время транзакции большая транзакция должна поместиться в лог - нужно место в логе и/или на диске ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 20:11 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0, если пользователей нет, то никаких проблем. 300мб сейчас не размер. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 22:11 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 alexeyvg, код транзакции простой: в цикле записывается много объектов какие могут быть технические проблемы при этом? Сначала в цикле (не открывая транзакцию) загоните все во временную таблицу, потом внутри транзакции сделайте вставку всего этого. На больших данных всегда надо делать буфер. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 22:40 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
Коллеги, 300 Мб я взял условные - т.к. выполняется загрузка из xml такого порядка размера или больше. Именно мегабайты. Я понимаю что в XML есть неполезная нагрузка в виде тегов итд, но тем не менее, вопрос про такой порядок. Пока из ответов я увидел, что проблем не должно быть. Вопрос у меня звучит именно так: в одной транзакции в цикле записывается много объектов. какие могут быть технические проблемы при этом? Нет вопроса как оптимизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 03:55 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 какие могут быть технические проблемы при этом? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 04:10 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
alexeyvg Может, это запись 30 млн. строк по 10 байт (int, int, smallint) каждая? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 08:35 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 alexeyvg Может, это запись 30 млн. строк по 10 байт (int, int, smallint) каждая? Все будет харашо. Я это точно знаю... Не ссыте - грузите. При использовании православного средства загрузки, навроде sqlXmlBulkLoad, это займет от 1 до 30 сек. Диски то у вас тоже сферические. ЗЫ. Нафига козе баян вам транзакция при загрузке данных с XML? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 09:36 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 Добрый день Какие могут быть проблемы большой транзкции? Например выполняется запись данных 300 МБ в течение часа Пользователей в базе нет В описанном Вами случае, самой большой проблемой может быть: откат всей транзакции из-за какой-нибудь мелочи ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 09:59 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
alexeyvg 2. Убедитесь, что всё это делается именно в одной транзакции, в одиночных транзакциях получится в десяток раз медленней. У вас написано begin tran, или вы транзакцией называете бизнес-операцию? Вот тут поспорю, одна здоровенная транзакция для какой то объемной бизнес логики будет сильно медленне большого кол-ва коротких транзакций ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 10:04 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
felix_ff alexeyvg 2. Убедитесь, что всё это делается именно в одной транзакции, в одиночных транзакциях получится в десяток раз медленней. У вас написано begin tran, или вы транзакцией называете бизнес-операцию? Вот тут поспорю, одна здоровенная транзакция для какой то объемной бизнес логики будет сильно медленне большого кол-ва коротких транзакций Консилиум у постели мертворожденного? Прежде чем, "спорить" не худо убедиться, что ТС понимает: "что такое транзакция" и "зачем ему эта транзакция". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 10:10 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 Добрый день Какие могут быть проблемы большой транзкции? Например выполняется запись данных 300 МБ в течение часа Пользователей в базе нет ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 10:12 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
vi0 alexeyvg, код транзакции простой: в цикле записывается много объектов какие могут быть технические проблемы при этом? Разные, вы хотите, чтобы вам тут начали фантазировать и сделали список типа 1, 2,..., 101? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 13:45 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
alexeyvg Да тут 300 Мб тоже сферические vi0 Коллеги, 300 Мб я взял условные - т.к. выполняется загрузка из xml такого порядка размера или больше. vi0 Пока из ответов я увидел, что проблем не должно быть. Но умеючи можно и, ээээ, этим сервер сломать. vi0 Нет вопроса как оптимизировать. Так можно сделать транзакцию короче, что полезно при многопользовательской работе. Второй приёмчик - разбирать XML и вставлять данные каким то более оптимальным способом, например, используя XMLBulkLoad, или свой балко-подобный код. Так можно на рядовом железе довести разбор XML со вставкой в БД до десятков или сотен мб/сек Но это если действительно есть проблема с производительностью (например, если у вас поток таких файлов по 300 мб), в противном случае можно не заморачиваться, не те объёмы, делайте на чём умеете. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 20:48 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
felix_ff Вот тут поспорю, одна здоровенная транзакция для какой то объемной бизнес логики будет сильно медленне большого кол-ва коротких транзакций ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2021, 09:10 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
Gerasimenko vi0 Добрый день Какие могут быть проблемы большой транзкции? Например выполняется запись данных 300 МБ в течение часа Пользователей в базе нет В описанном Вами случае, самой большой проблемой может быть: откат всей транзакции из-за какой-нибудь мелочи ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2021, 09:11 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
автороткат всей транзакции из-за какой-нибудь мелочиМаленький нюанс. Туда SQL Server может идти в параллель, а вот обратно (роллбак) идет всегда в один поток. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2021, 17:24 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
aleks222 felix_ff пропущено... Вот тут поспорю, одна здоровенная транзакция для какой то объемной бизнес логики будет сильно медленне большого кол-ва коротких транзакций Консилиум у постели мертворожденного? Прежде чем, "спорить" не худо убедиться, что ТС понимает: "что такое транзакция" и "зачем ему эта транзакция". Картина "С.М.Будённый на коне у постели больного М.Горького" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2021, 12:47 |
|
Проблема большой транзакции
|
|||
---|---|---|---|
#18+
Gerasimenko vi0 Добрый день Какие могут быть проблемы большой транзкции? Например выполняется запись данных 300 МБ в течение часа Пользователей в базе нет В описанном Вами случае, самой большой проблемой может быть: откат всей транзакции из-за какой-нибудь мелочи В описанном Вами случае, самой большой проблемой может быть: непонимание, что такое транзакция, что такое SQL Server, нафига всё это нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2021, 12:49 |
|
|
start [/forum/search_topic.php?author=SpyII&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 660ms |
total: | 956ms |
0 / 0 |