К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

1С 7.7 ТИС База ДБФ Опять задолбали блокировки

Гость
0 - 22.03.2013 - 16:02
1С 7.7 ТИС База ДБФ 6 ГБ на терминальном сервере windows 2003, юзеры все в своих папках. стоит патч убирающий 100% загрузки процессора от Кернел37.
Антивирус убран, кеширование работает!!!

Блокировки 1cjornal идут очень часто. Причем день на день не приходится. Например во вторник все было практически без проблем.
Но вот сегодня прямо с утра какой-то кошмар.
1. Был выключен комп, на котором находится один из принтеров, подключенных к юзерам на терминальном сервере - это фишка известна - вот только как с ней быть???
2. При создании платежек (которые ведь вообще не проводятся) путем копирования старых возникает ожидание блокировки, хотя вылета не происходит
3. При изменении фирмы в платежке (то есть при изменении номера документа (префикс ИБ+префикс фирмы)тоже идет ожидание.
4. При создании документа счет-фактуры кнопкой в проведенной накладной опять ожидание блокировки и вот тут начинаются вылеты по истечению времени, отпущенного для ожидания блокировок
5. Ну и т.д.
НО ВОПРОС У МЕНЯ ТАКОЙ: возможно в моей переписанной ТИС много операций типа Док.Новый, Док.НайтиПоНОмеру, всякие автоперемещения и пр. Док.ВыбратьДокументы ну и т.д. ЧТО НЕЖЕЛАТЕЛЬНО ИСПОЛЬЗОВАТЬ??? В КАКОМ СЛУЧАЕ ПЕРЕМЕННЫЕ НАДО ОЧИЩАТЬ???

ПРОСТО ХОТЬ КАК-ТО СОСТАВИТЬ ПЛАН ПОСЛЕДОВАТЕЛЬНОГО НАСТУПЛЕНИЯ НА ЭТИ ПРОБЛЕМЫ И С ТОЧКИ ЗРЕНИЯ ЗАГРУЖЕННОСТИ СЕТИ И С ТОЧКИ ЗРЕНИЯ ОПТИМИЗАЦИИ РАБОТЫ В 1С. Я ГОТОВ НОЧИ И ДНИ СИДЕТЬ И КРОПОТЛИВО ЭТО ДЕЛАТЬ!!!



41 - 22.03.2013 - 22:07
Сюда стукнись: http://infostart.ru/community/profile/2905/ - это один из немногих людей, который шарит во внутренностях клюшек. Может подскажет или заинтересуется твоей проблемой.
Гость
42 - 22.03.2013 - 22:09
39 - Чучундер. Не совсем так, потому что у меня в ПриЗаписи документы бухт формируются и проводятся, иногда автоперемещения - наверное из-за этого тоже блокировки
Гость
43 - 22.03.2013 - 22:12
39-Чучундер > Будь добр, запусти две сессии клюшек, одну в отладке. Поставь точку останова в обработчике записи поступления и в отлаживаемой сессии запиши новое поступление - пусть постоит на точке. А в неотлаживаемой сессии запиши или проведи любой документ. Сделаешь? а то нету у меня клюшков...
Гость
44 - 22.03.2013 - 22:29
43-Reaper Процедура Записать() действительно с блокировкой выполняется как я понял, причем там сразу куча всего происходит - и тем больше чем больше всяких "примочек" в журнале записываемого документа. А вот процедура призаписи() - это нечто другое.
Гость
45 - 22.03.2013 - 23:04
41 - Чучундер. Самое фиговое, что все что я нагуглил на эту тему - собственно никаких понятных ответов не дает. Я четко вижу, что при УстановитьНовыйНомер возникает ожидание блокировки. Причем вылеты бывают нечасто, просто как бы база тормозит (как говорят с пеной у рта мои юзеры).
Ходжику я написал!!!
46 - 23.03.2013 - 00:42
(45) при установке нового номера блокировка есть - накладывается на время содания нового номера. но это должно пролетать мгновенно. вотпочему у тебя там клинит - вот это ХЗ - либо это как-то связанос УРБД или где-то есть явные ДЛИННЫЕ транзакции, внутри которых есть установка нового номера - вот тут пока явная транзакция не будет закрыта - и будет блокировка таблицы номеров для других юзверей
47 - 23.03.2013 - 01:04
(43) хотел написать в категоричном тоне, что даже проверять не буду, но я ж, [*****], осторожный.. ;-)
.
итого. рассмотрим примерчик, документ, в доке:
.
Процедура ПриЗаписи()

Предупреждение(имяПользователя()+"-1");
Сп=СоздатьОбъект("Справочник.Материалы");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если (Цена>0) И (Материал.Выбран()=1) Тогда
Сп.НайтиЭлемент(Материал);
Сп.Цена=Цена;
Сп.Записать();
КонецЕсли;
КонецЦикла;
Предупреждение(имяПользователя()+"-2");

КонецПроцедуры

.
запускаем два сеанса, в таком варианте никаких траблов не возникает.
в таком варианте
48 - 23.03.2013 - 01:25
ПЛ, вот тебе ссылка нка статью http://infostart.ru/public/87339/
Только не спеши ставить.
Почитай, подумай и задай вопросы Владимиру повторно.
49 - 23.03.2013 - 01:28
И личку прочитай pдесь!
Гость
50 - 23.03.2013 - 01:39
... И не надо для тайминга никакого wsh. Каб бы не любил его Reaper.
Достаточно функции _GetPerformanceCounter()
Гость
51 - 23.03.2013 - 01:55
И еще: даже единственный файл размером больше гига ставит крест на работу с дбф.
52 - 23.03.2013 - 04:41
ну не гиг, а чуть больше... и hogik это полечил, как и проблему с 16млн записей в однйо таблице (на этой неделе напоролся лично)
Гость
53 - 23.03.2013 - 12:37
user1c, хорош истерить, а?..
по размеру всех(!) файлов базы данных ставить диагнозы - тупость.
пример: 5Гб, при этом самые большие - индекс общего журнала (360М) и таблица проводок (250М). реальный рабочий вариант (5 лет от прошлой свертки). и попробуй только заикнуться про "извращения" и про "сворачивай срочно".
Гость
54 - 23.03.2013 - 13:04
52-Чучундер Ссылку и комментарий уже читал и долго читал. Думаю что размер файла 1 ГБ как-то не очень большое значение имеет, иначе бы у меня индексы валились и вообще база бы не работала - сталкивался с таким давно и вылечил.
Что касается установить новый номер (перфиксИБ и префикс фмрмы) - то наверное эти траблы как-то свзаны с УРБД - только непонятно как. И есть ли это трабл - тоже непонятно.
У меня накладные, счета-фактуры, доверенности, ПКО и РКО, платежки и банковские выписки имеют сложный префикс, который зависит и от ПрефиксИБ и от Префикс фмрмы. В других документах этого нет, но например заявки покупателей тоже цепляют префикс фирмы - хотя там четко стоит, что только префикс ИБ должен быть
55 - 23.03.2013 - 14:49
(54) просто так префикс ИБ не поставится. это надо программно говорить. если этого не сказать - отрабатывает программный код [*****] установке префикса по фирме и все.
Гость
56 - 23.03.2013 - 15:15
55 - Чучундер - У меня стоит ПрефиксАвтонумерации в глобальном модуле

А кроме того везде где установить новый номер - как раз программно и отработаны эти ситуации
57 - 23.03.2013 - 15:23
(56) чудес не бывает ;-) установка префиксов отрабатывается штатнов глЗаполнитьШапку и соотв. глПриИзмененииФирмы
58 - 25.03.2013 - 09:10
Cthulhu, ты если такой умный, автору помоги, ога? и эта, не истери...
Гость
59 - 26.03.2013 - 10:38
У меня очень много обращений к константе ПрефиксИБ. Жутко много. Когда интерактивно вводится документ, то его номер присваивается с учетом ПрефиксАвтонумерации(). А вот когда программно, то у меня масса установитьНовыйНомер(Константа.ПрефиксИБ)
А ведь обращение к константам тянет за собой весь массив периодических реквизитов, а он не маленький. Хочу при начале работы системы глобальной переменной присвоить значение константы - ведь ее значение никогда не меняется или раз в 100 лет.
Даст мне это ускорение???
И еще: заметил что у менеджеров, которые работают на обычных компах по вай-фай (точка доступа висит на стене)скорость работы намного медленнее моей
И еще: мой комп подключен к 24-портовому свичу и работает шустро, комп соседу подключен к 5-портовому роутеру и у него работает быстрее чем у тех кто по вай-фай, но медленнее, чем у меня
Гость
60 - 26.03.2013 - 11:35
(59) за подключение к базе через вайфай - лишать половых достоинств сразу и без помилований.
ВСЯ БАЗА РАБОТАЕТ СО СКОРОСТЬЮ САМОГО МЕДЛЕННОГО КЛИЕНТА

еще - роутеры по возможности замени на свичи. роутер в режиме свича тормозит

обращение Константа.ИМЯ замени через глобальную переменную. как планируешь - при старте. добавь только заполнение этой константы еще в одно место - при изменении этой константы переменная должна перезаполняться.
ЭТО РЕШЕНИЕ НА ЗАМЕНУ - ВЕРНОЕ
Гость
61 - 26.03.2013 - 11:40
ВСЯ БАЗА РАБОТАЕТ СО СКОРОСТЬЮ САМОГО МЕДЛЕННОГО КЛИЕНТА


Гость
62 - 26.03.2013 - 12:11
helen1986 Спасибо за поддержку. Надо конечно по-любому переходить на новый сервер, но все-таки по-возможности очевидные уже невооруженным глазом тормоза я все-таки уберу. Сообщу о результатах.
Заодно хотел спросить: как сделать цикл, не загружающи процессор??? Через таймер???
Гость
63 - 26.03.2013 - 12:16
(62) я не смотрела реализацию таймера в 1це
разработчики платформы ваще .....

попробуй таймер и реализацию через WSH
Гость
64 - 26.03.2013 - 12:29
Helen1986 (63) Да у меня все равно формекс используется, так что воспользуюсь его таймером
Еще принтеры по умолчанию порой не ищутся. Может надо бы через rdp их цеплять, а у меня как сетевые все
Гость
65 - 26.03.2013 - 12:32
«И еще: заметил… медленнее, чем у меня» [59] — это к чему? после: «База ДБФ 6 ГБ на терминальном сервере» [0]. Доступ терминальный/нет??
Гость
66 - 26.03.2013 - 12:38
«цикл, не загружающи процессор» [62] — это как? с принудительным таймаутом в теле… Helen1986, не замечаешь? у пациента банальная истерика
Гость
67 - 26.03.2013 - 12:58
(62) Заодно хотел спросить: как сделать цикл, не загружающи процессор??? Через таймер???

Один из вариантов такой:
Предупреждение( "Ждите, господа, ждите...", 1 );

Даст секундную задержку без загрузки проца. Коряво, зато исключительно штатными средствами платформы. :)

По вопросам торможения - тестовую базу перевести на SQL, запустить перепроведение+мониторинг, а затем курить логи.
Определить список наиболее часто использующихся и(или) ресурсоемких запросов (как, например, Константа.ПрефиксИБ), затем решать, как можно оптимизировать код, дабы подобные запросы или не использовались (вывод в справочнике товаров текущих остатков) или выполнялись быстрее.
Посмотрев запросы, выполнить оптимизацию БД:
- выбрать необходимый порядок измерений в регистрах.
- на нужные поля справочников и документов создать индексы (Внимание! Любая реструктуризация БД убьет их, так что лучше сразу делать скрипты) - правильные индексы могут ускорить работу запросов на 2-3 порядка.
Гость
68 - 26.03.2013 - 13:12
охо - никакой паники у меня нет, база работает много лет. я самолично модифицирую ее аж с 2003 года.
База и сейчас работает и "тормозит - вовсе не значит что на ней нельзя работать" Все в штатном режиме. В рабочие дни порядка 1200 документов создается.
Но просто я сейчас Розницу 2.0 в новом магазине внедрил и опять вренулся к этой теме. Что-то я сам вижу и устраню, что-то спрошу.
Таймер для цикла мне нужен потому что я хочу на все программные Новый(), Записать(), УстановитьНовыйНомер() поставить запись в единый лог и если вдруг лог будет занять - чтобы можно было через цикл опять попытаться в него записать время, ИД и прочие вещи для анализа
Гость
69 - 26.03.2013 - 13:14
Например
ЗаписьВЛог("Реализация",ТекущееВремя(),"УстНом","Н ачало")
Док.УстановитьНовыйНомер()
ЗаписьВЛог("Реализация",ТекущееВремя(),"УстНом","К онец")
Гость
70 - 26.03.2013 - 13:37
Helen1986 (63) Да у меня все равно формекс используется, так что воспользуюсь его таймером
Еще принтеры по умолчанию порой не ищутся. Может надо бы через rdp их цеплять, а у меня как сетевые все!!!
Что-то посоветуете??? Не смертельно, но малость раздражает, а главное непонятно как правильно сделать - нигда вразумляющей информации все-таки не нашел, кроме ScrueDrivers
Гость
71 - 26.03.2013 - 13:44
записать в лог - а чем не устраивает стадартный системный журнал? система сама разрулит запись в него

(66) прежде чем домысливать - спрашивать надА. Мыслитель..... жевал бы ты лучше печеньку .... лучше с ядом


(67) замер производительности в отладчике даст требуемое соотношение времен без всякого SQL. Для первого приближения и анализа вполне хватит


"или не использовались (вывод в справочнике товаров текущих остатков)"

в какой то конфе видела вывод остатков весьма специфический.
при отключении иерархии - остатков нет
при включении - только по текущей группе
Гость
72 - 26.03.2013 - 13:50
(71) HELEN1986 Системный журнал - это хорошо, но не получится ли так что я вообще систему в ступор поставлю - ибо в системный журнал столько всего записываться начнет.
И все-таки, чтос принтерми мне посоветуете???
Гость
73 - 26.03.2013 - 13:50
«запись в единый лог» [68] — ЗаписьЖурналаРегистрации();
Гость
74 - 26.03.2013 - 13:56
(73) охо. да нет - я хотел в свой писать, причем наверное в ДБФ-ку
Гость
75 - 26.03.2013 - 14:01
Доступ терминальный/мульти/нет?? [65]
Гость
76 - 26.03.2013 - 14:01
убери все инсталированные драйвера на отсутствующие в системе принтеры
Гость
77 - 26.03.2013 - 14:02
делать тебе больше нечего… «в свой писать, причем наверное в ДБФ-ку»
Гость
78 - 26.03.2013 - 14:03
75 охо доступ терминальный. кстати а вы справились со своими проблемами??? у вас же своя ветка была на эти темы
Гость
79 - 26.03.2013 - 14:13
Код:
Процедура ОбработкаПроведения()
	ТекущийДокумент=ТекущийДокумент();
	ЗаписьЖурналаРегистрации(1,,,ТекущийДокумент,4);

	//
	//
	//

	ЗаписьЖурналаРегистрации(2,,,ТекущийДокумент,4);
КонецПроцедуры
Гость
80 - 26.03.2013 - 14:15
(78) справились…


К списку вопросов






Copyright ©, Все права защищены