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) справились… | |
| Интернет-форум Краснодарского края и Краснодара |