Плохая ситуация - это хорошая история

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

Он зашел и смастерил декартово произведение двух Ооогромных таблиц, миллионов так на овердофига строк. Он оказался настолько храбрым, что результат (очевидно для пост-обработки) решил во временную табличку ливнуть.

Сервер никак не готов был к такой радости. Шутка ли - сохранить в себя овердофига в квадрате - долбалион строк получается.

А надо сказать, что mssql сервер устроен так, что он до последнего верит - на него пускают грамотных, прошаренных ребят. Он честно пытался все это запихнуть в себя. Пытался всю ночь. Наивная железяка не мог знать что его ожидает...

А тем временем пораньше с утра пришел наш аналитик и, увидев что запрос за ночь не отработал - нажал на кнопку отменить.

Сервер начал усиленно пытаться откатить транзакцию. Он потел, кряхтел, старался. На его гранях даже выступала битовая испарина. Шел второй час откатки транзакции...

если интересно продолжение - черкните в комментариях, что хотите окончание истории. Ну и своих историй накидайте, чего уж там))

Плохая ситуация - это хорошая история | Сетка — социальная сеть от hh.ru
repost

260

input message

напишите коммент

· 27.06

У меня вопросы и к тебе, и к вашему девопсу... Кто додумался вообще хоть какие-то доступы, кроме readonly давать на прод?! Вам stage зачем?

ответить

больше 15 лет назад было. Быстро сервер подняли, быстро отчетность скрутили в качестве прототипов. Не до этого тогда было. Нужно задачи для бизнеса было решать. Риски понимали все)

ответить

Есть менее масштабные случаи в целом, но в рамках Excel - не самые приятные.

Если вовремя не вспомнить про EnableEvents = false, то процесс обработки события может не закончиться вовсе.

Бывает, нужно в таблице на 500k+ строк отфильтроваться по столбцу и удалить данные. Чтобы процесс завершился в принципе, порой необходимо сначала провести сортировку по этому столбцу - Экселю это даётся намного легче. А затем удалить подряд идущие строки. Иначе можно много времени провести за взаимным гипнозом с вращающимся курсором)

Ну и конечно в больших файлах со сложными формулами часто полезно оставлять эти самые формулы только в первой строке (я ещё и в последней оставляю, для душевного спокойствия). Тогда с файлом можно работать без нецензурщины)

А продолжение, конечно же, интересно =)

ответить

Пользователей может быть так много, что даже не знаешь, кому и как угодить) Так что часто полные данные - универсальное и даже оптимальное решение. А на ad-hoc'ах уж совсем не до этого бывает) Но перед сохранением убить 99% формул - это однозначно да

ответить

не, не, не... Нужно чистить книгу от данных перед сохранением - пусть к пользователю при открытии книги уже предрасчитанные данные летят. Если нет желания пускать с правами на селект, то можно организовать отгрузку данных через процедуру. В ней же можно и логгирование обновления сделать. Профит - пользователь не видит объектов СУБД, мы видим как часто пользуются отчетом)

ответить

Возможность включения/выключения автопересчёта, к сожалению, не все и не всегда держат в голове, так что не люблю его трогать, для всеобщего блага)

Можно работать и в PQ, и в СУБД, но последнее пристанище данных всё равно окажется у кого-то в книге на локальном диске))

ответить

хехех))) А еще старое доброе отключение автопересчета. И пересчет отдельных листов по шифт ф9 иногда спасает.

Но это все для тех случаев, когда нельзя power query применить или вовсе в СУБД данные обработать)

ответить

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь