Форум: "Базы";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизДлительные процедуры на сервере Найти похожие ветки
← →
yaric (2004-12-14 14:10) [0]Подскажите как лучше всего реализовать процедуру, которая будет
работать длительное время(например расчет заработной платы).
Делать с помощью ХП - возникнут проблемы с отладкой, да и это все остальные будут ждать пока процедура отработает что нехорошо.
Да и серваки у клиентов могут быть как под виндой так под Х-сами.
Делать с помощью трехзвенки и выносить это все на сервер приложений, но проблемы с разными платформами остаются.
Посоветуйте как лучше. Может кто-то уже такое делал.
← →
Sergey13 © (2004-12-14 14:14) [1]А сколько ты планирушь времени будет работать ХП? Недели две с 8 до 17?
8-)
← →
yaric (2004-12-14 14:18) [2]Ну до получаса
← →
HSolo © (2004-12-14 14:20) [3]http://ibase.ru/devinfo/generator.htm#extra
← →
yaric (2004-12-14 14:27) [4]Не понял как эта ссылка должна была меня натолкнуть на решение проблемы
← →
Zacho © (2004-12-14 14:27) [5]yaric (14.12.04 14:10)
Делать с помощью ХП - возникнут проблемы с отладкой
Берёшь IBExpert - и никаких проблем.
> да и это все остальные будут ждать пока процедура
> отработает что нехорошо.
Что-то я не понял, что ты под этим имеешь в виду.
> Да и серваки у клиентов могут быть как под виндой так
> под Х-сами
Язык триггеров и хранимых процедур никак не зависит от ОС.
Подозреваю, что ты просто путаещь ХП и UDF
← →
Zacho © (2004-12-14 14:29) [6]yaric (14.12.04 14:18) [2]
Ну до получаса
Нифига себе ! Может у тебя со структурой БД или с железом проблемы ?
← →
yaric (2004-12-14 14:34) [7]Ну а если у меня множество вложенных в друг друга ХП(ограничитель в 64К никто не отменял) как мне при отладке
во вложенные ХП заходить даже с помощью IBExpert.
← →
yaric (2004-12-14 14:39) [8]>>Zacho
Что-то я не понял, что ты под этим имеешь в виду
Насколько я помню у Ковязина было так:
" SuperServer... при выполнении "тяжелого запроса" пытается обращаться с ним как с небольшим,т.е. отдает ему всю доступную кеш память и ресурсы, вытесняя при этом все остальные запросы. Результат печален - пока выполняется запрос-тяжеловес, остальные запросы "топчутся в очереди"".
← →
Zacho © (2004-12-14 14:48) [9]yaric (14.12.04 14:34) [7]
Ну а если у меня множество вложенных в друг друга ХП(ограничитель в 64К никто не отменял)
А зачем такие гигантские ХП ? Подозреваю, что у тебя всё-таки что-то не так со структурой БД. Или с логикой работы ХП.
>как мне при отладке
> во вложенные ХП заходить даже с помощью IBExpert.
Естественно, отлаживать их отдельно :) Сначало - вложенные, как отладищь - переходишь к ХП "верхнего уровня".
← →
Digitman © (2004-12-14 14:52) [10]
> Делать с помощью ХП - возникнут проблемы с отладкой,
нет никаких проблем с отладкой.
ДАЖЕ если какой-то там IBExpert c эти не справляется.
ищи на ibase.ru отлад.софт . базирующийся на внешнем сом-сервере IBDebugWnd.exe
> если у меня множество вложенных в друг друга ХП
да хоть сотня таких множеств.
> ограничитель в 64К никто не отменял
и что ?
> Насколько я помню у Ковязина было так:
> " SuperServer... при выполнении "тяжелого запроса"
на основании чего ты приписал свой запрос именно к "тяжелым" ?
время его исполнения не может служить основанием для занесения его в разряд "тяжелых"
← →
yaric (2004-12-14 17:36) [11]Ну тяжелая ХП это значит
поднимающая много данных из таблиц,
пишущая много промежуточных данных и т.д
Соответственно тяжелый запрос
Select * from ХП_имя
← →
PEAKTOP © (2004-12-14 17:49) [12]Если у тебя база "тормозит" на запросах, это означает одно из следующих:
1)полетели индексы в сторону заходящего солца. Периодически надо их пербивать.
2)дофига мусора в базе. Надо делать sweep.
3)давно не делалась "дефрагментация".
Все три пункта лечаться путем выгнать всех из базы(или придти к клиенту в 3 часа ночи)->backup->restore.
Если тебе надо отладить процедуру, а на реальных данных не хочеться эксперементировать, делаешь backup->restore в другую базу. И вот над ней изголяешься, как твоей душе угодно. А когда отладишь ХП, подгружаешь в основную базу.
Если сервак тормозит, то может ему не хватает пямяти. Лечиться увеличением в конфиге объем кэша.
← →
yaric (2004-12-14 17:56) [13]Народ мы отвлеклись от темы
я же спрашивал посмотрите на вопрос
как мне ЛУЧШЕ реализовать с помощью ХП или СЕРВЕРА ПРИЛОЖЕНИЙ вот такую штуку. То что мне РЕАКТОР написал я так знаю.
← →
yaric (2004-12-14 17:58) [14]Допустим все это выполняется и структура оптимальная и индексы работают но данных ну очень много милионы записей. А это значит что процедура будет работать долго.
← →
Johnmen © (2004-12-14 18:17) [15]>yaric (14.12.04 17:58) [14]
Если миллионы, то это не означает долгой работы.
Как правило, неоптимально сконструированные запросы, необоснованно утяжеленный алгоритм и т.п., приводят к долгой работе.
(вытаскивание на клиента лимонов не рассматриваем...:))
← →
AndriyKo (2004-12-14 21:10) [16]В таком случае можно действовать по принципу "Много коротких запросов вместо одного длинного". Например, процедура просчитывает ЗП только по одному сотруднику (ну или по немногочисленной группе). В таком случае работа остальных клиентов не будет намертво заблокирована. То есть бухгалтер запускает формирование отчета, внутри которого в цикле вызывается ХП, и идёт спокойно обедать. Другие смогут работать, в общем, даже не испытывая особых проблем. Немного подтормаживать будет, конечно, но всёж лучше, чем отправить спать весь отдел.
← →
Sergey13 © (2004-12-15 09:23) [17]2[13] yaric (14.12.04 17:56)
>как мне ЛУЧШЕ реализовать с помощью ХП или СЕРВЕРА ПРИЛОЖЕНИЙ вот такую штуку
А какая разница? Что больше ндравится - тем и делай.
← →
yaric (2004-12-15 10:06) [18]Спасибо всем за советы.Д
умаю идея с дроблением процедуры на более мелкие,
которые будут вызываться поочередно имеет свои преимущества.
Попробую сделать так
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.05 c