Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.038 c
1-1104022863
Maser
2004-12-26 04:01
2005.01.16
Help! Срочно! Проект в Delphi 6.0 не запускается


6-1098193212
Sicilla
2004-10-19 17:40
2005.01.16
HostName


1-1104090401
X3M
2004-12-26 22:46
2005.01.16
Как получить координаты окна?


3-1102937302
}|{yk
2004-12-13 14:28
2005.01.16
При удалении дочерних записей получаю ошибку


6-1098892937
Mirror
2004-10-27 20:02
2005.01.16
Имя подключения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский