![]() |
Сюда стукнись: [url]http://infostart.ru/community/profile/2905/[/url] - это один из немногих людей, который шарит во внутренностях клюшек. Может подскажет или заинтересуется твоей проблемой. |
39 - Чучундер. Не совсем так, потому что у меня в ПриЗаписи документы бухт формируются и проводятся, иногда автоперемещения - наверное из-за этого тоже блокировки |
39-Чучундер > Будь добр, запусти две сессии клюшек, одну в отладке. Поставь точку останова в обработчике записи поступления и в отлаживаемой сессии запиши новое поступление - пусть постоит на точке. А в неотлаживаемой сессии запиши или проведи любой документ. Сделаешь? а то нету у меня клюшков... |
43-Reaper Процедура Записать() действительно с блокировкой выполняется как я понял, причем там сразу куча всего происходит - и тем больше чем больше всяких "примочек" в журнале записываемого документа. А вот процедура призаписи() - это нечто другое. |
41 - Чучундер. Самое фиговое, что все что я нагуглил на эту тему - собственно никаких понятных ответов не дает. Я четко вижу, что при УстановитьНовыйНомер возникает ожидание блокировки. Причем вылеты бывают нечасто, просто как бы база тормозит (как говорят с пеной у рта мои юзеры). Ходжику я написал!!! |
(45) при установке нового номера блокировка есть - накладывается на время содания нового номера. но это должно пролетать мгновенно. вотпочему у тебя там клинит - вот это ХЗ - либо это как-то связанос УРБД или где-то есть явные ДЛИННЫЕ транзакции, внутри которых есть установка нового номера - вот тут пока явная транзакция не будет закрыта - и будет блокировка таблицы номеров для других юзверей |
(43) хотел написать в категоричном тоне, что даже проверять не буду, но я ж, [filolog]сцуко[/filolog], осторожный.. ;-) . итого. рассмотрим примерчик, документ, в доке: . Процедура ПриЗаписи() Предупреждение(имяПользователя()+"-1"); Сп=СоздатьОбъект("Справочник.Материалы"); ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл Если (Цена>0) И (Материал.Выбран()=1) Тогда Сп.НайтиЭлемент(Материал); Сп.Цена=Цена; Сп.Записать(); КонецЕсли; КонецЦикла; Предупреждение(имяПользователя()+"-2"); КонецПроцедуры . запускаем два сеанса, в таком варианте никаких траблов не возникает. в таком варианте |
ПЛ, вот тебе ссылка нка статью [url]http://infostart.ru/public/87339/[/url] Только не спеши ставить. Почитай, подумай и задай вопросы Владимиру повторно. |
И личку прочитай pдесь! |
... И не надо для тайминга никакого wsh. Каб бы не любил его Reaper. Достаточно функции _GetPerformanceCounter() |
И еще: даже единственный файл размером больше гига ставит крест на работу с дбф. |
ну не гиг, а чуть больше... и hogik это полечил, как и проблему с 16млн записей в однйо таблице (на этой неделе напоролся лично) |
[b]user1c[/b], хорош истерить, а?.. по размеру всех(!) файлов базы данных ставить диагнозы - тупость. пример: 5Гб, при этом самые большие - индекс общего журнала (360М) и таблица проводок (250М). реальный рабочий вариант (5 лет от прошлой свертки). и попробуй только заикнуться про "извращения" и про "сворачивай срочно". |
52-Чучундер Ссылку и комментарий уже читал и долго читал. Думаю что размер файла 1 ГБ как-то не очень большое значение имеет, иначе бы у меня индексы валились и вообще база бы не работала - сталкивался с таким давно и вылечил. Что касается установить новый номер (перфиксИБ и префикс фмрмы) - то наверное эти траблы как-то свзаны с УРБД - только непонятно как. И есть ли это трабл - тоже непонятно. У меня накладные, счета-фактуры, доверенности, ПКО и РКО, платежки и банковские выписки имеют сложный префикс, который зависит и от ПрефиксИБ и от Префикс фмрмы. В других документах этого нет, но например заявки покупателей тоже цепляют префикс фирмы - хотя там четко стоит, что только префикс ИБ должен быть |
(54) просто так префикс ИБ не поставится. это надо программно говорить. если этого не сказать - отрабатывает программный код [filolog]ипо[/filolog] установке префикса по фирме и все. |
55 - Чучундер - У меня стоит ПрефиксАвтонумерации в глобальном модуле А кроме того везде где установить новый номер - как раз программно и отработаны эти ситуации |
(56) чудес не бывает ;-) установка префиксов отрабатывается штатнов глЗаполнитьШапку и соотв. глПриИзмененииФирмы |
[b]Cthulhu[/b], ты если такой умный, автору помоги, ога? и эта, не истери... |
У меня очень много обращений к константе ПрефиксИБ. Жутко много. Когда интерактивно вводится документ, то его номер присваивается с учетом ПрефиксАвтонумерации(). А вот когда программно, то у меня масса установитьНовыйНомер(Константа.ПрефиксИБ) А ведь обращение к константам тянет за собой весь массив периодических реквизитов, а он не маленький. Хочу при начале работы системы глобальной переменной присвоить значение константы - ведь ее значение никогда не меняется или раз в 100 лет. Даст мне это ускорение??? И еще: заметил что у менеджеров, которые работают на обычных компах по вай-фай (точка доступа висит на стене)скорость работы намного медленнее моей И еще: мой комп подключен к 24-портовому свичу и работает шустро, комп соседу подключен к 5-портовому роутеру и у него работает быстрее чем у тех кто по вай-фай, но медленнее, чем у меня |
(59) за подключение к базе через вайфай - лишать половых достоинств сразу и без помилований. ВСЯ БАЗА РАБОТАЕТ СО СКОРОСТЬЮ САМОГО МЕДЛЕННОГО КЛИЕНТА еще - роутеры по возможности замени на свичи. роутер в режиме свича тормозит обращение Константа.ИМЯ замени через глобальную переменную. как планируешь - при старте. добавь только заполнение этой константы еще в одно место - при изменении этой константы переменная должна перезаполняться. ЭТО РЕШЕНИЕ НА ЗАМЕНУ - ВЕРНОЕ |
ВСЯ БАЗА РАБОТАЕТ СО СКОРОСТЬЮ САМОГО МЕДЛЕННОГО КЛИЕНТА [img]http://img.amigos.lv/img/photo/0/41/4307/3VrTxCV0vVIKo.jpeg[/img] |
helen1986 Спасибо за поддержку. Надо конечно по-любому переходить на новый сервер, но все-таки по-возможности очевидные уже невооруженным глазом тормоза я все-таки уберу. Сообщу о результатах. Заодно хотел спросить: как сделать цикл, не загружающи процессор??? Через таймер??? |
(62) я не смотрела реализацию таймера в 1це разработчики платформы ваще ..... попробуй таймер и реализацию через WSH |
Helen1986 (63) Да у меня все равно формекс используется, так что воспользуюсь его таймером Еще принтеры по умолчанию порой не ищутся. Может надо бы через rdp их цеплять, а у меня как сетевые все |
«И еще: заметил… медленнее, чем у меня» [59] — это к чему? после: «База ДБФ 6 ГБ на терминальном сервере» [0]. Доступ терминальный/нет?? |
«цикл, не загружающи процессор» [62] — это как? с принудительным таймаутом в теле… Helen1986, не замечаешь? у пациента банальная истерика |
(62) Заодно хотел спросить: как сделать цикл, не загружающи процессор??? Через таймер??? Один из вариантов такой: Предупреждение( "Ждите, господа, ждите...", 1 ); Даст секундную задержку без загрузки проца. Коряво, зато исключительно штатными средствами платформы. :) По вопросам торможения - тестовую базу перевести на SQL, запустить перепроведение+мониторинг, а затем курить логи. Определить список наиболее часто использующихся и(или) ресурсоемких запросов (как, например, Константа.ПрефиксИБ), затем решать, как можно оптимизировать код, дабы подобные запросы или не использовались (вывод в справочнике товаров текущих остатков) или выполнялись быстрее. Посмотрев запросы, выполнить оптимизацию БД: - выбрать необходимый порядок измерений в регистрах. - на нужные поля справочников и документов создать индексы (Внимание! Любая реструктуризация БД убьет их, так что лучше сразу делать скрипты) - правильные индексы могут ускорить работу запросов на 2-3 порядка. |
охо - никакой паники у меня нет, база работает много лет. я самолично модифицирую ее аж с 2003 года. База и сейчас работает и "тормозит - вовсе не значит что на ней нельзя работать" Все в штатном режиме. В рабочие дни порядка 1200 документов создается. Но просто я сейчас Розницу 2.0 в новом магазине внедрил и опять вренулся к этой теме. Что-то я сам вижу и устраню, что-то спрошу. [b]Таймер для цикла мне нужен потому что я хочу на все программные Новый(), Записать(), УстановитьНовыйНомер() поставить запись в единый лог и если вдруг лог будет занять - чтобы можно было через цикл опять попытаться в него записать время, ИД и прочие вещи для анализа[/b] |
Например ЗаписьВЛог("Реализация",ТекущееВремя(),"УстНом","Начало") Док.УстановитьНовыйНомер() ЗаписьВЛог("Реализация",ТекущееВремя(),"УстНом","Конец") |
Helen1986 (63) Да у меня все равно формекс используется, так что воспользуюсь его таймером Еще принтеры по умолчанию порой не ищутся. Может надо бы через rdp их цеплять, а у меня как сетевые все!!! Что-то посоветуете??? Не смертельно, но малость раздражает, а главное непонятно как правильно сделать - нигда вразумляющей информации все-таки не нашел, кроме ScrueDrivers |
записать в лог - а чем не устраивает стадартный системный журнал? система сама разрулит запись в него (66) прежде чем домысливать - спрашивать надА. Мыслитель..... жевал бы ты лучше печеньку .... лучше с ядом (67) замер производительности в отладчике даст требуемое соотношение времен без всякого SQL. Для первого приближения и анализа вполне хватит "или не использовались (вывод в справочнике товаров текущих остатков)" в какой то конфе видела вывод остатков весьма специфический. при отключении иерархии - остатков нет при включении - только по текущей группе |
(71) HELEN1986 Системный журнал - это хорошо, но не получится ли так что я вообще систему в ступор поставлю - ибо в системный журнал столько всего записываться начнет. [b]И все-таки, чтос принтерми мне посоветуете???[/b] |
«запись в единый лог» [68] — ЗаписьЖурналаРегистрации(); |
(73) охо. да нет - я хотел в свой писать, причем наверное в ДБФ-ку |
Доступ терминальный/мульти/нет?? [65] |
убери все инсталированные драйвера на отсутствующие в системе принтеры |
делать тебе больше нечего… «в свой писать, причем наверное в ДБФ-ку» |
75 охо доступ терминальный. кстати а вы справились со своими проблемами??? у вас же своя ветка была на эти темы |
[code] Процедура ОбработкаПроведения() ТекущийДокумент=ТекущийДокумент(); ЗаписьЖурналаРегистрации(1,,,ТекущийДокумент,4); // // // ЗаписьЖурналаРегистрации(2,,,ТекущийДокумент,4); КонецПроцедуры [/code] |
(78) справились… |
Текущее время: 00:44. Часовой пояс GMT +3. |