|
|
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Windows 2000 SP2. Аксес XP SP2. MS SQL 2000. mdac 2.7 Есть пользовательская функция. На вход принимает два параметра, на выходе имеем таблицу. Работает быстро (максимум 0.5 сек) На этой функции висит формочка. Простая формочка. Табличный вид, все поля - текстовые. Входные параметры берет из двух контролов родительской формы. Сначала формочка открывалась так же быстро, как и функция. В какой-то момент стало говорить Request Timeout. База тестовая, пользователей кроме меня там нихт. Меняю тип набора записей со статического на обновляемый статический. Сохраняю форму, открываю - все ок. 0.5 сек. Работаю полдня - начинаются тормоза. Request Timeout. Функция по прежнему отрабатывает быстро, а форма висит. Меняю тип набора записей обратно (с обновляемого статического на статический) - все становится нормально. Через некоторое время - опять двадцать пять, меняю опять обратно, все начинает работать. Таких форм - десяток. Все с переодичностью примерно раз в день отказываются работать и начинают работать только после шаманских действий (смены типа источника строк). Все в разное время. Для всех базовые функции отрабатывают быстро. Есть ли у кого-нибудь какие-либо мысли почему эти бл%дские формочки могут тормозить? И какое им на фиг дело до типа источника строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 15:51 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Могу предположить, что эффективность шаманских действий объясняется наличием кэша, который при этих шаманских действиях обнуляется. Видимо, этот кэш и сбоит. Не знаю, есть ли возможность его вообще отменить нафиг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 15:58 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
А что Профайлер показывает в этот момент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:01 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч Кеш чего??? Формы? Функция-то отрабатывает без проблем. 2 Сенин Виктор Да хрен его (профайлер) знает. Еще не заглядывал (не пинайте меня ногами). У меня его даже и нет :). И вообще из дома пишу, так что заглянуть не получится. Как на работу выйду - буду копать. Больше всего раздражает то, что функция работает отлично (в любое время дня и ночи), а простейшая форма - иногда начинает тормозить по непонятным причинам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:09 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
> Кеш чего??? Формы? Насколько я понимаю, сервер не всегда возвращает данные прямо из таблицы, а иногда проверяет, не было ли недавно точно такого запроса, и если был, то возвращает из памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:11 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
И при попытке выбрать из памяти говорит Request Timeout? И как на этот серверный кеш может влиять обновляемость/необновляемость набора в форме на клиенте? Кстати, получающийся набор там вообще никогда не обновляемый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:17 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
> И при попытке выбрать из памяти говорит Request Timeout? Да, из-за какого-то бага. Только подчеркиваю, что это все только гипотеза. > И как на этот серверный кеш может влиять обновляемость/необновляемость набора в форме на клиенте? Возможно, это один из передаваемых параметров, по которым идет проверка, надо ли обращаться к диску или к памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:24 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Может стоит поиграться значением Request Timeout? Или поставь таймер,который раз в ... мин будет менять тип набора записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:29 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Или поставь таймер,который раз в ... мин будет менять тип набора записей Ты не поверишь, но я над этим уже думал. Не катит. Если форма сейчас работает (нормально) при необновляемом статическом наборе, то менять его на обновляемый - нельзя, начнутся тормоза. Изменение надо делать в непонятно какой момент времени. Может, пытаться ловить Request Timeout и в этом момент менять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:33 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Может стоит поиграться значением Request Timeout Ну поиграю, ну получу, что форма будет таки открываться. Полчаса вместо секунды. Радости мне это не принесет. Или придется проповедовать философию "Если запрос исполняется меньше четырех часов - то это хорошо, ибо запустить его можно два раза в день" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:36 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Может быть у тебя что-то с блокировками ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:47 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Тут не надо гадать, тут надо Профайлер смотреть. Штука хорошая - если понять что он выдает >Может быть у тебя что-то с блокировками ? А может и в правду - поставил бы хинт NoLock (вроде так называется - я еще не запомнил :) ) пущай грязное чтение делает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:53 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Тут не надо гадать, тут надо Профайлер смотреть. Штука хорошая - если понять что он выдает >Может быть у тебя что-то с блокировками ? А может и в правду - поставил бы хинт NoLock (вроде так называется - я еще не запомнил :) ) пущай грязное чтение делает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:53 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Я в этой базе один. Не могу же я сам себя блокировать. Вернее, могу конечно, но не в этом случае. И почему функции на блокировки по фиг, а форма вдруг на них спотыкается? Хотя их там и нет, неоткуда им взятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 16:54 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Лох, ты уверен, что у тебя в этот момент сервер статистику не обновляет или шринк не делает или не бакапиться? Глупое предположение...но кто знает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 17:47 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
а функция ничего побочного не выдает (типа при no count off) что акс со временем не может пережевать , или формочка Debug.print не засоряет память? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 18:45 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
2 Сенин Виктор В базе я один, но на сервере, конечно, есть еще базы и в них сидят пользователи. Не будут же под меня одного выделенный SQL Server ставить . Так что активность сервера ненулевая. НО другие пользователи работают и не жалуются. НО базовая функция отрабатывает ВСЕГДА быстро НО тип набора записей (обновляемый/необновляемый), с которым форма работает нормально, постоянно меняется . Если бы она всегда работаа с обновляемым - я бы сделал его и забыл. Или наоборот, сделал бы необновляемый и забыл. А получается, что раз в день приходится менять туда - сюда. Причем из 10 похожих простейших формочек с один момент времени часть работает только при обновляемом наборе, часть - только при необновляемом. 2 Вадя Функция нечем побочным не занимается. Ничего сложнее Full Outer Join'а там не встречается. Обычные селекты из других похожих функций (тоже обычных селектов), входные параметры одни на всех. Ничего особенного в общем. Оперирует достаточно большими объемами данных, но сильно режет их на самом первом этапе. Ни на каком из уровней вложенности количество записей не превышает 1000 (а обычно так меньше 100). Форма вообще ничего не делает. У нее даже модуля нет. Обычная табличная форма, все поля текстовые и чекбоксы. Был бы хотя бы один комбобокс - было бы на что плеваться, а так хз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2003, 21:01 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Как я понял, твоя функция может быть заменена на ХП. Попробуй что будет происходить в таком варианте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2003, 07:10 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
может ограничение на число подключений - одновременно работающих функций (форм)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2003, 07:49 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
2 Pavel Как я понял, твоя функция может быть заменена на ХП К сожалению нет. Она (они) сама(и) используется в качестве источников для других. Может это и неправильно, но привычки от Jet'а остались - функции максимально соответствуют обычным запросам на выборку с параметрами. 2 Вадя может ограничение на число подключений - одновременно работающих функций (форм)? Дык форма то одна. И подключение одно. Вложенность функций - не больше четырех. Блин, никак до профайлера добраться не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2003, 14:43 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
Ну блин, неужто перевелись бухатыри на Руси? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2003, 19:11 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
форма сначала работает. потом перестает. не меняя параметров формы, закрываешь акс. потом запускаешь акс , а форма продолжает херовничать? если так , то твоя форма скоре всего здесь не причем. скорее всего - функция, и ее взаимодействие с сервером (с базой). опиши по-подробней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2003, 20:44 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
форма сначала работает. потом перестает. не меняя параметров формы, закрываешь акс. потом запускаешь акс , а форма продолжает херовничать Именно так. Сначала все работает как часы, потом все начинает работать как сломанные часы. Если ничего не менять - ничего и не вылечится. Хотя я не пробовал полдня ждать (типа вдруг само вылечится). Хоть сто раз открой-закрой аксес - по фигу мороз. Стоит поменять тип набора данных - все начинает работать как часы. форма скоре всего здесь не причем. скорее всего - функция, и ее взаимодействие с сервером Тогда почему эта долбанная функция ВСЕГДА работает нормально? А форма - нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2003, 23:51 |
|
||
|
ADP. форма + UDF = дурные тормоза
|
|||
|---|---|---|---|
|
#18+
видимо сервер что-то копит. типа под не измененную форму данные и еще что-то. данные функии выплевывает. а это что-то типа в кеше сохраняется . и пока не изменишь форму ("параметры обращения к функции") кеш не очищается. попрбуй замени тело функии на чтони-будь. просто select данные. для пробы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2003, 07:37 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32211486&tid=1680466]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 324ms |

| 0 / 0 |
