Тормоза SQL - только для профи, остальным просьба не мешать #147955


#0 by AlexSTAL
Перевод базы с DBF в SQL ------------------------ Железо: Intel SE7501BR2 два Xeon 2.4 GHz, 4 Гига памяти, RAID на SCSI 15000 об/мин Софт: Windows 2003 Server Enterprise SP1 SQL 2000 SP4 Поднятый терминал, работа только в нём Пользователей: до 23, активных всегда около 12-15 Объём базы DBF: 5.7 Гига (DBF=4 Гига, CDX=1.7 Гига) Сконвертировал её в SQL, отключил журнал транзакций, получил: MDF=11.6 Гига; LDF=0.001 Гига На серваке кроме 1С ничего не выполняется, ещё раз подчеркну - ТЕРМИНАЛ. Конфигурация польностью самописная. Получил: жуткие тормоза при просмотре формы списка справочника "Номенклатура", где используется получение текущего остатка конкретного товара на конкретном складе: Остаток = Ит.СКД(СчетПоКоду("46"),"К",,МХ,ТЭ) - Ит.СКК(СчетПоКоду("46"),"К",,МХ,ТЭ); Номенклатуры 5400 элементов. База на DBF просто летает, раздражает и напрягает только потеря данных при получении бух. итогов . Что посоветуете? Где посмотреть, что подкрутить?
#1 by КонецЦикла
Показывай остаток по текущему элементу, внизу А вообще-то лучше юзать регистры
#2 by AlexSTAL
Он внизу и показывается! Конфа простая, вообще без регистров
#3 by Волшебник
Ну так заведи.
#4 by КонецЦикла
Т.е. не в колонке, а внизу? Приведи текст функции полностью
#5 by AlexSTAL
А поможет ли???
#6 by SiMazx
Прямым запросом
#7 by MMF
А период итогов где-нить устанавливается? Кроме того, лучше избавиться от СчетПоКоду("46"). Инициализируй переменную Сч46 = СчетПоКоду("46") при открытии формы.
#8 by AlexSTAL
Разжевать можно? желательно набросить пример Ничего не изменилось
#9 by PaulBC
Ит откуда берется?
#10 by Волшебник
Эта ветка только для профи, остальным просьба не мешать.
#11 by Любитель XML
в точку :)
#12 by AlexSTAL
о как....
#13 by КонецЦикла
А попробуй закоментить все в этой функции кроме Стр = "-"; Возврат Стр; Это чтобы удостовериться... а вообще не люблю я счета эти и итоги...
#14 by AlexSTAL
Летает, скорость сравнима с DBF
#15 by MMF
настрой трассу в профайлере с фильтром по TextData like '%_1SBKTTL%' и отсортируй по cpu Повторяю. У тебя период итогов устанавливается?
#16 by КонецЦикла
Э-эх... а там временный расчет или что? Что там с Ит?
#17 by AlexSTAL
(15, 16) Ит создаётся при запуске формы: никаких временных расчётов и т.п. Период итогов установлен штатными средствами на 1 квартал 2006 года
#18 by MMF
подожди... у тебя на одном сервере и терминал и скуль?
#19 by AlexSTAL
Да, возможности изменить это нет
#20 by AlexSTAL
Замерил, за одну секунду можно посмотреть 6 номенклатурных позиций
#21 by MMF
почему? убей терминал, поставь юзерам локальные 1С-ки  и все будет ок
#22 by AlexSTAL
Связано с безопастностью, очень большой сетью (по длине некоторые участки 500 метров - 5 хабов-повторителей) - просто локально работать не будет или очень не устойчиво. Терминал то подключается 10-15 секунд
#23 by MMF
зарезервируй 1,5 гига память под скуль, поставь приоритет SQL server. Смотри в perfmon-е счетчики по скулю, дискам, памяти и т.д, почитать об выявлении узких мест и оптимизации можно в статьях на sql.ru. Или обратись к спецам для обследования твоей системы.
#24 by AlexSTAL
скуль сейчас жрёт под 2 гига... больше не просит...
#25 by MMF
ИМХО, счастливой совместной жизни скуля и сервера терминалов не бывает. Можно, конечно, поизвращаться на тему прямых запросов.
#26 by AlexSTAL
понятно... будет извращаться другими методами, но только не прямыми запросами к SQL...
#27 by SiMazx
А больше он и не может попросить.. Тебе нужен Advanced Server 2003, запускать с ключом /3Gb Иначе он тебе больше 2 гигов под процесс и не даст...
#28 by AlexSTAL
это я читал где-то.... он сейча 1,75 занимает
#29 by На Enterprise
с ключом /3Gb будет давать больше. Это to
#30 by AlexSTAL
Огромный респект AHDP!!! За оригинальную идею сделать счёт активным! Скорость работы возросла в два раза и находится на приемлемом уровне!!!
#31 by AlexSTAL
А вот при установке галочки "Отбор субконто" только увеличился объём базы с 10,1 Гига до 11,8. На скорость это как-то не повлияло в моём случае - может на отчёты повлиет, где нужна выборка нескольких субконто
#32 by Nightwish
Во первых мне кажется странным что базу после перевода на скуль так сильно разнесло, мне кажется если вес дбф 4 Гб то и мдф должен столько же весить, но ни как ни больше в 3 раза.
#33 by AlexSTAL
Проверено на разных базах в разное время
#34 by Старуха Юзергиль
В упор не вижу AHDP
#35 by vS
анналогично...
#36 by AlexSTAL
он в аську ко мне стучался
#37 by AlexSTAL
При чём файл выгрузки 1Cv77.dat занимает 1.3 Гига
#38 by КонецЦикла
Заюзай ты регистры, ешкин кот... что за изврат... тьху
#39 by Nightwish
Если самописная, значит чо то криво вы написали. очь сильная разница, но не может такое быть при нормальном раскладе
#40 by AlexSTAL
Юзать регистры - это значит переписать ВСЁ, и гарантии скорости нет Кроме того типовая бухгалтерия работает и без регистров и никто не называет это извратом. С моей точки зрения регистр = счету и измерения регистра = субконто счета.
#41 by AlexSTAL
Что бы такое говорить, нужно быть уверенным в этом
#42 by 12345
смотреть остатки отчетом
#43 by КонецЦикла
У тебя имхо не совсем типовая
#44 by AlexSTAL
(39 43) Только что провёл эксперимент - выгрузил типовую бухгалтерию из SQL в DBF: SQL MDF = 200 мегов 1Cv77.dat выгрузки = 19 мегов DBF = 61 мег; CDX = 26 мегов насмешил
#45 by ValeriTim
По поводу выбора между БИ и регистрами ... в свое время смотрел как 1С строит SQL запрос по БИ ... жуть, а по регистрам все коротко и ясно. Может просто для показа остатков по складу вести двойной учет и в БИ и в регистрах ?
#46 by AlexSTAL
Минусы: 1) Доработка всех модулей перепроведения 2) Замедлится проведение документов, некоторые имеют до 100-150 строк 3) Возрастёт объём базы
#47 by ValeriTim
А как инициализируются БИ ? кад можно ?
#48 by AlexSTAL
#49 by КонецЦикла
Могу вызвать недовольство Пита, но... видел решение, где бух. итоги заменили регистрами, т.е. сделали аналог плана счетов и проводок (типа регистров бух-ии) Наверное, нужен был этот гимор
#50 by AlexSTAL
Ок! Попробую... если интересно, то могу после рассказать о результатах
#51 by ValeriTim
Сделай так: возможно полегчает ... кстати первое субконто - место хранения, а второе ? счет сделать активным и считать остаток: Остаток = Ит.СКД(СчетПоКоду("46"),"К",,МХ,ТЭ)
#52 by ValeriTim
помоему это такой геморой ...
#53 by AlexSTAL
Счёт активным я сделал в первую очередь А ПериодМ никаким образом не может повлиять на срез итогов
#54 by AlexSTAL
Место хранения и ТЭ - текущий элемент - номенклатура
#55 by КонецЦикла
Ну в восьмерке он так прямо и реализован :)
#56 by ValeriTim
не надо сравнивать с восьмеркой. там двойная запись автоматом делается, а сдесь ручками.
#57 by zels
Подключи 1С++. У меня был запрос по остаткам ОС: DBF - 10 сек SQL - 50 сек
#58 by ValeriTim
ты пробовал ПериодМ поставить ? Я не уверен, а вдруг поможет ...
#59 by AlexSTAL
А мне кажется, что это связано с политикой продаж программы! 7.7 продаётся 3-мя блоками, а 8.0 одним. Посему одинэсовцы и условно разделили регистры на регисты и план счетов с субконто (ну условно конечно сказал я это)
#60 by AlexSTAL
Прежде чем сказать, я всегда пробую :-)
#61 by КонецЦикла
Лана, это я слегка утрированно, но идею понил... политика - вряд ли Уже вроде советовали ранее
#62 by AlexSTAL
Где взять то 1С++ (что бы я долго в инете не рылся)
#63 by КонецЦикла
#64 by КонецЦикла
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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