Плохая ситуация - это хорошая история
Поделюсь своей. Взяли как-то молодого парня аналитиком. Он умный, сообразительный, но не обстрелянный еще. А я его, признаться, не ко всему подготовил прежде чем на сервер пустить.
Он зашел и смастерил декартово произведение двух Ооогромных таблиц, миллионов так на овердофига строк. Он оказался настолько храбрым, что результат (очевидно для пост-обработки) решил во временную табличку ливнуть.
Сервер никак не готов был к такой радости. Шутка ли - сохранить в себя овердофига в квадрате - долбалион строк получается.
А надо сказать, что mssql сервер устроен так, что он до последнего верит - на него пускают грамотных, прошаренных ребят. Он честно пытался все это запихнуть в себя. Пытался всю ночь. Наивная железяка не мог знать что его ожидает...
А тем временем пораньше с утра пришел наш аналитик и, увидев что запрос за ночь не отработал - нажал на кнопку отменить.
Сервер начал усиленно пытаться откатить транзакцию. Он потел, кряхтел, старался. На его гранях даже выступала битовая испарина. Шел второй час откатки транзакции...
если интересно продолжение - черкните в комментариях, что хотите окончание истории. Ну и своих историй накидайте, чего уж там))
· 27.06
У меня вопросы и к тебе, и к вашему девопсу... Кто додумался вообще хоть какие-то доступы, кроме readonly давать на прод?! Вам stage зачем?
ответить
· 27.06
больше 15 лет назад было. Быстро сервер подняли, быстро отчетность скрутили в качестве прототипов. Не до этого тогда было. Нужно задачи для бизнеса было решать. Риски понимали все)
ответить
· 27.06
Есть менее масштабные случаи в целом, но в рамках Excel - не самые приятные.
Если вовремя не вспомнить про EnableEvents = false, то процесс обработки события может не закончиться вовсе.
Бывает, нужно в таблице на 500k+ строк отфильтроваться по столбцу и удалить данные. Чтобы процесс завершился в принципе, порой необходимо сначала провести сортировку по этому столбцу - Экселю это даётся намного легче. А затем удалить подряд идущие строки. Иначе можно много времени провести за взаимным гипнозом с вращающимся курсором)
Ну и конечно в больших файлах со сложными формулами часто полезно оставлять эти самые формулы только в первой строке (я ещё и в последней оставляю, для душевного спокойствия). Тогда с файлом можно работать без нецензурщины)
А продолжение, конечно же, интересно =)
ответить
· 27.06
Пользователей может быть так много, что даже не знаешь, кому и как угодить) Так что часто полные данные - универсальное и даже оптимальное решение. А на ad-hoc'ах уж совсем не до этого бывает) Но перед сохранением убить 99% формул - это однозначно да
ответить
· 27.06
не, не, не... Нужно чистить книгу от данных перед сохранением - пусть к пользователю при открытии книги уже предрасчитанные данные летят. Если нет желания пускать с правами на селект, то можно организовать отгрузку данных через процедуру. В ней же можно и логгирование обновления сделать. Профит - пользователь не видит объектов СУБД, мы видим как часто пользуются отчетом)
ответить
· 27.06
Возможность включения/выключения автопересчёта, к сожалению, не все и не всегда держат в голове, так что не люблю его трогать, для всеобщего блага)
Можно работать и в PQ, и в СУБД, но последнее пристанище данных всё равно окажется у кого-то в книге на локальном диске))
ответить
· 27.06
хехех))) А еще старое доброе отключение автопересчета. И пересчет отдельных листов по шифт ф9 иногда спасает.
Но это все для тех случаев, когда нельзя power query применить или вовсе в СУБД данные обработать)
ответить
еще контент автора
еще контент автора
войдите, чтобы увидеть
и подписаться на интересных профи