затык в сети

Как всякий правильный админ, Миша ревниво относился к своей сетке. Он гордился, когда она работала, как часики, и огорчался, когда что-то глючило. Глючило редко, но иногда бывало.

Чаще всего жаловалась на сетку пара 1С-ников, писавшая в соседней комнате зарплату. Семен, солидный такой мужик лет под сорок, сточивший на 1С не одну пару челюстей, и худенькая перезрелая девушка Галина. Они кодировали парой и жаловались, что сетка у Миши дерьмо, а сервер тормоз. Его любимый двухголовый Сион с гигом памяти и пятым рейдом на Читах – тормоз! Ха! Пару раз Миша еще дергался искать проблемы, но так ни разу не увидев ни затыков в сети, ни очереди на сервере – привык и стал пропускать жалобы 1Сников мимо ушей.

Пока в один прекрасный день с той же жалобой не явилась бухгалтерша. Зарплатчики сдали им табель, который считался полчаса. На все вопросы бухгалтерии они отвечали:

- Ничего не знаем, у нас на локальной базе все быстро. Это ваш сервер тормозит, идите с админом разбирайтесь.

Миша ничего не понимал в бухгалтерии, но сильно подозревал, что считать табель рабочего времени в течение получаса – уж больно много. Пусть даже на две тысячи человек. Идеологически устаревшая таблица на экселе, которой бухгалтерия пользовалась до сих пор, считала на порядок быстрее.

- Порешаем, - пообещал он бухгалтерше и пошел к начальнице отдела жаловаться.

Начальница была пенсионерка с тридцатью годами программистского стажа в «ящике» и холерическим темпераментом. Ей было все равно, на кого наезжать. Только что директор завода вздрючил ее за медленное внедрение АСУ, впаренной заводу местным 1С франчайзером полтора года назад. Теперь начальница хотела поделиться эмоциями. Зарплатчики подвернулись кстати. Миша сидел в углу и мерзко ухмылялся. Через полчаса, когда плотность огня стала стихать, Галина (зараза!) таки вставила свои пять копеек насчет вечно глючащей сетки. Тут артиллерия перенесла огонь вглубь, и отдуваться пришлось уже Мише.

- Ну хорошо! – выкинул он белый флаг перемирия. – Давайте ваши логи, будем разбираться, где у вас затык.

- Какие еще логи? – Галина смотрела так, будто он предложил ей согрешить противоестественным образом.

- Ну… логи. Логи, логи, ну логи, ну… - Миша задумался, как понятнее объяснить, что такое логи. – Ну под профайлером же вы ваш табель гоняли?

- Вот еще не хватало. Мы что, админы, что ли?

Сошлись на компромиссе – Миша с 1С-никами встречаются на нейтральной территории и вместе смотрят, что же там тормозит. Когда профайлер отработал, оказалось - как по учебникам - что 95% времени программа проводит в одной функции, выглядевшей приблизительно так:

Функция ВсегоЧасов(ДатаНач, ДатаКон)
Перем Время = 0;
Для T = ДатаНач По ДатаКон Цикл
Время = Время + ЧасовВДень(Т);
КонецЦикла;
Вернуть Время
КонецФункции;


Другими словами, по 30 запросов к базе для каждого из 2000 сотрудников.

Миша удивился – неужели в 1С нет агрегатных функций? – и полез в мануал. Оказалось, их есть. Оказалось, та же функция, которая давала количество рабочего времени в день, могла дать и количество за период. Он немного поправил процедуру и отсчитала она за 4 минуты вместо 30 (как замерил по часам вредный Миша).

Мишин вариант Семен отверг, как идеологически неверный, а Галина сказала, что Миша зануда и думает, что он самый умный. Потом они удалились писать новый, улучшенный вариант с использованием каких-то новых прибамбасов 1С 7.7. Улучшенный вариант просчитал табель за 50 минут, после чего 1С-ники написали на Мишу докладную.



Редкая Сволочь


Сетевые решения. Статья была опубликована в номере 05 за 2005 год в рубрике PRIcall

©1999-2024 Сетевые решения