Сильные тормоза в 1С7.7 при поиске по справочнику #381808


#0 by es3000
Справочник содержит около 30тыс. элементов. Пользователи работают в терминале на сервере. Сервер: Тип ЦП      2x Intel Xeon, 3200 MHz Системная плата    Asus NCL-DE/SCSI  (1 PCI, 1 PCI-E x8, 1 PCI-E x16, 3 PCI-X, 8 DDR2 DIMM, 1 SO-DIMM, Video, Dual Gigabit LAN, SCSI) Чипсет системной платы      Intel Lindenhurst E7520 Системная память            8192 Мб Так вот когда кто-то из пользователей начинает выполнять "быстрый" поиск по справочнику (то есть набирают прямо в справочнике, а 1С по первым нажатым буквам ищет нужный элемент справочника), программа начинает тормозить, причем очень заметно. В чем проблема? Это так этот поиск работает? Или я зря на поиск грешу?
#1 by DGorgoN
может формула какая нить? особенно для вычисления остатков?
#2 by ДенисЧ
расчётные колонки езззь?:
#3 by Гефест
Людей-то сколько в базе?
#4 by vde69
сталю, на то, что у них есть колонка с остатками или ценой
#5 by dva1c
+1 Адназначна!
#6 by DGorgoN
Автор видимо ушел в себя
#7 by План
+ психанул, долго с ответами тянули.
#8 by es3000
мужики , спасибо , заставили задуматься! есть! только не формула, а внизу формы списка по текущему контрагенту выполняется поиск последнего документа определенного вида (нетиповой документ) с помощью "ВыбратьДокументы" конечно я еще не проверял но скорее всего из-за этого
#9 by ДенисЧ
Как запущено всё...
#10 by План
а в выбраных документах еще наверно по строкам бегает, и в конце проверка, если не проведен, то возврат. ))))))))))
#11 by DGorgoN
Это не вормула разве? :))) Имхо убери и посмотри
#12 by Mikeware
Убей автора этого поиска... А вообще, такие вопросы принято задавать товарищу Профайлеру...
#13 by es3000
Пользователей ну очень интересует дата последнего такого документа, и они ее хотят видеть прям на форме. Когда думали как это сделать была мысль сделать эту дату реквизитом справлчника, и чтобы документ свою дату записывал в этот реквизит. Но это давно было, почему так не сделали уже не помню...
#14 by es3000
похоже обшибся... не вызывается эта процедура поиска, так что дело не в этом
#15 by ДенисЧ
Запускаешь отладчик, включаешь замер времени и начинаешь искать. Потом останавливаешь и смотришь, на что уходит время.
#16 by es3000
а как это? "включаешь замер времени"? и где его включать если тормозит не код, а просто поиск? получается что при поиске никакого кода не срабатывает
#17 by es3000
ау! Если никакой код не срабатывпает, сам поиск по справочнику может так тормозить систему???
#18 by ДенисЧ
Запусти отладчик и там Отладка - замер произовдительности. Если нет вычисляемых колонок, то не должен.
#19 by es3000
а почему есть отрицательные значения?
#20 by ДенисЧ
Ни разу не видел
#21 by Лефмихалыч
ты чо-то сочиняешь, скриншот покажи с отрицательными трэйсами
#22 by Mikeware
Круто! Это "предварительные вычисления" - они добавляют скорость :-)
#23 by es3000
ржите-ржите, сегодня уже неохота, завтра выложу скриншот
#24 by ДенисЧ
Завтра ты надешься, что кто-то увидит? О_о
#25 by Лефмихалыч
выкладывай паржом еще
#26 by Тьма
Ржите
#27 by romix
Справочник обычно тормозит при включенном показе остатков номенклатуры. Можно исключить колонку остатка (в последних релизах ТиС остаток отображается при перемещении курсора только по текущей позиции, этого может быть достаточно). Другой способ ускорить вывод остатков (если заранее известно число складов) показан тут: Суть в том что после проведения генерируется событие (можно сделать и через обработку ожидания) и остатки заносятся в реквизит Остаток справочника номенклатуры. Если несколько складов, то для каждого надо завести свой реквизит. Если карточка товара кем-то открыта, то остаток обновляется по ее закрытию.
#28 by romix
Если другие значения (я смотрю тут какой-то документ надо отображать) то можно наверное по тому же принципу записывать в реквизит и их.
#29 by Токс3
Остатки, остатки... тоже есть одна чумовая база без всяких остатков... Код наберёшь, потом через минуту на него курсор перескочит...
#30 by Токс3
+ для скорости поиска сделана обработка по кнопочке и позиционирование на найденном...
#31 by Mikeware
Если немного подумать, то делается это без всяких "асинхронных событий".
#32 by Mikeware
А что говорит товарищ Профайлер?
#33 by Злопчинский
единственный нормальный выход (а не способ сношать сеюе мозг) работа со справочником программно...
#34 by ag325
а собственно база на SQL или DBF ?
#35 by romix
Через обработку ожидания тоже получится, с небольшой правда задержкой. Но зато без внешней компоненты, если это критично.
#36 by es3000
(29, 30) у меня получается такая же ситуация: 1) справочник без формул и вычислений (была сначала догадка на вызов процедуры из текста на форме, но потом оказалось что в этой процедуре сразу срабатывает Возврат) 2) сделаана такая же кнопка, но бухи ей пользоваться не хотят, говорят не удобно, привыкли поиском по справлчнику. То есть причин для тороможения вроде нету, но все равно поиск жутко тормозит: набираешь букву - ждешь секунду а то и больше пока он спозиционируется. Причем начинают торомозитьи другие пользоватлели База SQL Так до конца и не понятно как с этим бороться. Замерять вроде и нечего
#37 by Mikeware
А что все-таки говорит товарищ Профайлер? (точнее, товарищи Профайлеры, раз база сиквельная?) поиск по какому реквизиту идет так долго?
#38 by milan
Базу переиндексируй, выгрузи-загрузи
#39 by грязный
аналогичная проблема
#40 by es3000
ну как неохота сегодня этим заниматься :) давайте после праздников обязательно напишу про профайлер каждую ночь SQL переиндексирует рад что не у меня одного такая проблема, а то уж я что только не думал
#41 by грязный
мы и базу откатывали, и скуль переустанавливали, перезагружали все что можно и тд и тп
#42 by ag325
рассказываю. у нас справочник 70000 товаров. быстрый поиск по артикулу используется при наборке накладных. когда база была в ДБФ, жалоб не было. перевели базу в SQL - началось такое же. нажимаешь буковку, ждешь секунду, переходит 1С-ка на строку. нажимаешь опять буковку - опять секунда. и т.д. учитывая что артикул до 10-12 символов - полная торба запустил профайлер и получил культурный шок. 1С-ка, понятное дело, на каждое нажатие выполняет SELECT запрос к справочнику, но этот запрос НЕ ПОПАДАЕТ в индексы... и такой запрос выполнял порядка 30-70 тысяч считываний (параметр Reads в трейсе) кроме этого в запросе в условии присутствует функция subst, которая даже при попадании в индекс обяжет SQL обойти полтаблицы в общем я написал для подбора товара свою обработку с таблицей значений и перехватом клавиш Formex-ом. и свой запрос к справочнику в 1С++, который теперь выполняет в среднем 60-200 чтений, вместо десятков тысяч. стало быстро. очень.
#43 by грязный
про дбф - один в один как у нас. причем перевели на скуль когда - некоторое время работало нормально все, а потом по наростающей все хуже и хуже. Про тз вместо форм списков и журналов тоже думал, но как то плохим вариантом счел, хочется всетаки оставить стандартные списки и журналы с их функционалом
#44 by ag325
тогда патчить 1С на предмет запроса который он выдает (-: вобщем, у нас тормоз был в одном только подборе в одном справочнике. решение точечное там чтобы все списки, все справочники поправить - это не выйдет
#45 by Sj
сделай еще одну форму,  и вынеси туда только наименование и код и попробуй быстрый поиск - если он работает нормально начинай наполнять форму необходимыми атрибутами. наверняка поймаешь такой момент, когда форма начнет тормозить
#46 by Mihenius
А отборов не стоит? ;) Может какой отбор хитрый стоит ...
#47 by Mikeware
Ничего удивительного. Подружитесь с товарищем профайлером, и вам воздастся... Зачем, собственно, патчить? Хотя ЗаменаЗапросов от ромикса может помочь - но лучше решать проблему нормально.
#48 by ag325
по нормальному с 1С-кой тут не получается договорится. или Вы что имеете ввиду под нормальным решением проблемы?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С