Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP. форма + UDF = дурные тормоза / 25 сообщений из 25, страница 1 из 1
16.07.2003, 15:51
    #32209921
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Windows 2000 SP2. Аксес XP SP2. MS SQL 2000. mdac 2.7

Есть пользовательская функция. На вход принимает два параметра, на выходе имеем таблицу. Работает быстро (максимум 0.5 сек)
На этой функции висит формочка. Простая формочка. Табличный вид, все поля - текстовые. Входные параметры берет из двух контролов родительской формы.
Сначала формочка открывалась так же быстро, как и функция. В какой-то момент стало говорить Request Timeout. База тестовая, пользователей кроме меня там нихт.
Меняю тип набора записей со статического на обновляемый статический. Сохраняю форму, открываю - все ок. 0.5 сек.
Работаю полдня - начинаются тормоза. Request Timeout. Функция по прежнему отрабатывает быстро, а форма висит. Меняю тип набора записей обратно (с обновляемого статического на статический) - все становится нормально.
Через некоторое время - опять двадцать пять, меняю опять обратно, все начинает работать.

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

Есть ли у кого-нибудь какие-либо мысли почему эти бл%дские формочки могут тормозить? И какое им на фиг дело до типа источника строк?
...
Рейтинг: 0 / 0
16.07.2003, 15:58
    #32209943
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Могу предположить, что эффективность шаманских действий объясняется наличием кэша, который при этих шаманских действиях обнуляется. Видимо, этот кэш и сбоит. Не знаю, есть ли возможность его вообще отменить нафиг.
...
Рейтинг: 0 / 0
16.07.2003, 16:01
    #32209957
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
А что Профайлер показывает в этот момент?
...
Рейтинг: 0 / 0
16.07.2003, 16:09
    #32209971
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
2 Владимир Саныч
Кеш чего??? Формы? Функция-то отрабатывает без проблем.

2 Сенин Виктор
Да хрен его (профайлер) знает. Еще не заглядывал (не пинайте меня ногами). У меня его даже и нет :). И вообще из дома пишу, так что заглянуть не получится. Как на работу выйду - буду копать.

Больше всего раздражает то, что функция работает отлично (в любое время дня и ночи), а простейшая форма - иногда начинает тормозить по непонятным причинам.
...
Рейтинг: 0 / 0
16.07.2003, 16:11
    #32209973
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
> Кеш чего??? Формы?

Насколько я понимаю, сервер не всегда возвращает данные прямо из таблицы, а иногда проверяет, не было ли недавно точно такого запроса, и если был, то возвращает из памяти.
...
Рейтинг: 0 / 0
16.07.2003, 16:17
    #32209985
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
И при попытке выбрать из памяти говорит Request Timeout?
И как на этот серверный кеш может влиять обновляемость/необновляемость набора в форме на клиенте? Кстати, получающийся набор там вообще никогда не обновляемый.
...
Рейтинг: 0 / 0
16.07.2003, 16:24
    #32210000
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
> И при попытке выбрать из памяти говорит Request Timeout?

Да, из-за какого-то бага. Только подчеркиваю, что это все только гипотеза.

> И как на этот серверный кеш может влиять обновляемость/необновляемость набора в форме на клиенте?

Возможно, это один из передаваемых параметров, по которым идет проверка, надо ли обращаться к диску или к памяти.
...
Рейтинг: 0 / 0
16.07.2003, 16:29
    #32210010
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Может стоит поиграться значением Request Timeout?
Или поставь таймер,который раз в ... мин будет менять тип набора записей
...
Рейтинг: 0 / 0
16.07.2003, 16:33
    #32210019
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Или поставь таймер,который раз в ... мин будет менять тип набора записей
Ты не поверишь, но я над этим уже думал. Не катит. Если форма сейчас работает (нормально) при необновляемом статическом наборе, то менять его на обновляемый - нельзя, начнутся тормоза. Изменение надо делать в непонятно какой момент времени. Может, пытаться ловить Request Timeout и в этом момент менять?
...
Рейтинг: 0 / 0
16.07.2003, 16:36
    #32210025
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Может стоит поиграться значением Request Timeout
Ну поиграю, ну получу, что форма будет таки открываться. Полчаса вместо секунды. Радости мне это не принесет. Или придется проповедовать философию "Если запрос исполняется меньше четырех часов - то это хорошо, ибо запустить его можно два раза в день"
...
Рейтинг: 0 / 0
16.07.2003, 16:47
    #32210036
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Может быть у тебя что-то с блокировками ?
...
Рейтинг: 0 / 0
16.07.2003, 16:53
    #32210049
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Тут не надо гадать, тут надо Профайлер смотреть.
Штука хорошая - если понять что он выдает

>Может быть у тебя что-то с блокировками ?
А может и в правду - поставил бы хинт NoLock (вроде так называется - я еще не запомнил :) ) пущай грязное чтение делает
...
Рейтинг: 0 / 0
16.07.2003, 16:53
    #32210050
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Тут не надо гадать, тут надо Профайлер смотреть.
Штука хорошая - если понять что он выдает

>Может быть у тебя что-то с блокировками ?
А может и в правду - поставил бы хинт NoLock (вроде так называется - я еще не запомнил :) ) пущай грязное чтение делает
...
Рейтинг: 0 / 0
16.07.2003, 16:54
    #32210051
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Я в этой базе один.
Не могу же я сам себя блокировать. Вернее, могу конечно, но не в этом случае. И почему функции на блокировки по фиг, а форма вдруг на них спотыкается? Хотя их там и нет, неоткуда им взятся.
...
Рейтинг: 0 / 0
16.07.2003, 17:47
    #32210112
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Лох, ты уверен, что у тебя в этот момент сервер статистику не обновляет или шринк не делает или не бакапиться? Глупое предположение...но кто знает
...
Рейтинг: 0 / 0
16.07.2003, 18:45
    #32210192
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
а функция ничего побочного не выдает
(типа при no count off) что акс со временем не может пережевать

, или формочка Debug.print не засоряет память?
...
Рейтинг: 0 / 0
16.07.2003, 21:01
    #32210292
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
2 Сенин Виктор
В базе я один, но на сервере, конечно, есть еще базы и в них сидят пользователи. Не будут же под меня одного выделенный SQL Server ставить . Так что активность сервера ненулевая.
НО другие пользователи работают и не жалуются.
НО базовая функция отрабатывает ВСЕГДА быстро
НО тип набора записей (обновляемый/необновляемый), с которым форма работает нормально, постоянно меняется . Если бы она всегда работаа с обновляемым - я бы сделал его и забыл. Или наоборот, сделал бы необновляемый и забыл. А получается, что раз в день приходится менять туда - сюда. Причем из 10 похожих простейших формочек с один момент времени часть работает только при обновляемом наборе, часть - только при необновляемом.

2 Вадя
Функция нечем побочным не занимается. Ничего сложнее Full Outer Join'а там не встречается. Обычные селекты из других похожих функций (тоже обычных селектов), входные параметры одни на всех. Ничего особенного в общем. Оперирует достаточно большими объемами данных, но сильно режет их на самом первом этапе. Ни на каком из уровней вложенности количество записей не превышает 1000 (а обычно так меньше 100).
Форма вообще ничего не делает. У нее даже модуля нет. Обычная табличная форма, все поля текстовые и чекбоксы. Был бы хотя бы один комбобокс - было бы на что плеваться, а так хз.
...
Рейтинг: 0 / 0
17.07.2003, 07:10
    #32210421
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Как я понял, твоя функция может быть заменена на ХП. Попробуй что будет происходить в таком варианте.
...
Рейтинг: 0 / 0
17.07.2003, 07:49
    #32210434
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
может ограничение на число подключений - одновременно работающих функций (форм)?
...
Рейтинг: 0 / 0
17.07.2003, 14:43
    #32210998
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
2 Pavel
Как я понял, твоя функция может быть заменена на ХП
К сожалению нет. Она (они) сама(и) используется в качестве источников для других. Может это и неправильно, но привычки от Jet'а остались - функции максимально соответствуют обычным запросам на выборку с параметрами.

2 Вадя
может ограничение на число подключений - одновременно работающих функций (форм)?
Дык форма то одна. И подключение одно. Вложенность функций - не больше четырех.

Блин, никак до профайлера добраться не могу.
...
Рейтинг: 0 / 0
17.07.2003, 19:11
    #32211486
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Ну блин, неужто перевелись бухатыри на Руси?
...
Рейтинг: 0 / 0
17.07.2003, 20:44
    #32211524
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
форма сначала работает. потом перестает.
не меняя параметров формы, закрываешь акс. потом запускаешь акс , а форма продолжает херовничать?

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

опиши по-подробней.
...
Рейтинг: 0 / 0
17.07.2003, 23:51
    #32211573
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
форма сначала работает. потом перестает.
не меняя параметров формы, закрываешь акс. потом запускаешь акс , а форма продолжает херовничать

Именно так. Сначала все работает как часы, потом все начинает работать как сломанные часы. Если ничего не менять - ничего и не вылечится. Хотя я не пробовал полдня ждать (типа вдруг само вылечится). Хоть сто раз открой-закрой аксес - по фигу мороз. Стоит поменять тип набора данных - все начинает работать как часы.

форма скоре всего здесь не причем. скорее всего - функция, и ее взаимодействие с сервером
Тогда почему эта долбанная функция ВСЕГДА работает нормально? А форма - нет?
...
Рейтинг: 0 / 0
18.07.2003, 07:37
    #32211632
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
видимо сервер что-то копит. типа под не измененную форму данные и еще что-то. данные функии выплевывает. а это что-то типа в кеше сохраняется . и пока не изменишь форму ("параметры обращения к функции") кеш не очищается.

попрбуй замени тело функии на чтони-будь. просто select данные.
для пробы.
...
Рейтинг: 0 / 0
18.07.2003, 08:09
    #32211643
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP. форма + UDF = дурные тормоза
Так и я про то же. Заверни функцию в процедуру.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP. форма + UDF = дурные тормоза / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]