#0
by Альбатрос
После переноса переписанной файловой базы УТ 10.3 на MS SQL наблюдается лютые тормоза при работе с ней. Пользователей немного, штук 15 одновременной работы.При проведении ОРП с ТЧ в 226 строк система задумывается на 2(!) минуты, при чем 97% времени на строчку: УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить); Ну и формирование всяких отчетов стало занимать намного больше времени. На этом же сервере крутится еще 4 базы, с ними таких проблем нет. Настройки БД у всех одинаковые. Вроде и гуглил, и статейки всякие читал - причину найти не могу. Спасайте! Вводные: 8-ядерный Xeon CPU E5-2407 32Гб оперативной памяти SCSI винт (на котором базы) База УТ 10.3 размером в почти 9 Гб Платформа 1С:Предприятие 8.2 (8.2.19.90) Сервер 1с предприятия находится на другом компе Если нужна еще какая-нибудь информация - скажите. Насоветуйте чего-нибудь.
#0
by Альбатрос
После переноса переписанной файловой базы УТ 10.3 на MS SQL наблюдается лютые тормоза при работе с ней. Пользователей немного, штук 15 одновременной работы.При проведении ОРП с ТЧ в 226 строк система задумывается на 2(!) минуты, при чем 97% времени на строчку: УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить); Ну и формирование всяких отчетов стало занимать намного больше времени. На этом же сервере крутится еще 4 базы, с ними таких проблем нет. Настройки БД у всех одинаковые. Вроде и гуглил, и статейки всякие читал - причину найти не могу. Спасайте! Вводные: 8-ядерный Xeon CPU E5-2407 32Гб оперативной памяти SCSI винт (на котором базы) База УТ 10.3 размером в почти 9 Гб Платформа 1С:Предприятие 8.2 (8.2.19.90) Сервер 1с предприятия находится на другом компе Если нужна еще какая-нибудь информация - скажите. Насоветуйте чего-нибудь.
#3
by Andrewww123
Я бы на индексы обратил внимание. Ну и регламентные процедуры обязательно настроить(проверить выполняются ли).
#7
by Andrewww123
Про индексы. Вот таким запросом можно смотреть статистику по отсутствующим индексам. В конце дня нужно выполнить и если есть в результате какие-то строки, то нужно разбираться и создавать индексы. SET NOCOUNT ON DECLARE @dbid int IF (object_id('tempdb..##IndexAdvantage') IS NOT NULL) DROP TABLE ##IndexAdvantage CREATE TABLE ##IndexAdvantage ([Преимущество индекса] float, [База данных] varchar, [Transact SQL код для создания индекса] varchar, [Число компиляций] int, [Количество операций поиска] int, [Количество операций просмотра] int, [Средняя стоимость ] int, [Средний процент выигрыша] int ); DECLARE DBases CURSOR FOR SELECT database_id FROM sys.master_files -- Получаем список ID баз данных WHERE state = 0 AND -- ONLINE has_dbaccess(db_name(database_id)) = 1 -- Only look at databases to which we have access GROUP BY database_id OPEN DBases FETCH NEXT FROM DBases WHILE @@FETCH_STATUS = 0 BEGIN -- Выполняем для каждой базы данных -------------------------------------------------- [Transact SQL код для создания индекса] = 'CREATE INDEX [IX_' + OBJECT_NAME(mid.object_id,@dbid) + '_' + CAST(mid.index_handle AS nvarchar) + '] ON ' + mid.statement + ' (' + ISNULL(mid.equality_columns,'') + (CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns IS NOT NULL THEN ', ' ELSE '' END) + (CASE WHEN mid.inequality_columns IS NOT NULL THEN + mid.inequality_columns ELSE '' END) + ')' + (CASE WHEN mid.included_columns IS NOT NULL THEN ' INCLUDE (' + mid.included_columns + ')' ELSE '' END) + [Количество операций поиска] = migs.user_seeks, [Количество операций просмотра] = migs.user_scans, [Средняя стоимость ] = CAST(migs.avg_total_user_cost AS int), [Средний процент выигрыша] = CAST(migs.avg_user_impact AS int) FROM sys.dm_db_missing_index_groups mig JOIN sys.dm_db_missing_index_group_stats migs ON migs.group_handle = mig.index_group_handle JOIN sys.dm_db_missing_index_details mid FETCH NEXT FROM DBases GO SELECT * FROM ##IndexAdvantage ORDER BY 1 DESC -- Значение ''Преимущество индекса'' выше 5000 в промышленных системах означает, что следует рассмотреть возможность создания этих индексов. -- Если же значение превышает 10000, это обычно означает, что индекс может обеспечить значительное повышение производительности для операций чтения. -------------------------------------------------------------------------------------------- IF (object_id('tempdb..##IndexAdvantage2') IS NOT NULL) DROP TABLE ##IndexAdvantage2 SELECT * FROM ##IndexAdvantage WHERE [Преимущество индекса] >= 5000 ORDER BY 1 DESC Стырено с инфорстарта, кажется. Про регламентные процедуры статей куча, в гугле "регламентные процедуры sql 1с".
#8
by Альбатрос
ну я хз, это мне админ так говорил, а это из ИД оборудования, единственное, на что у меня есть права посмотреть
#9
by shuhard_серый
подними регламенты и начни с того, фулл у тебя в бэкапе или симпл, где темп сидит и далее по списку
#10
by Fragster
отладка на сервере включена? разбей строку из на две - одна для получения ТЗ из движений, другая для выполнения процедуры общего модуля
#11
by Альбатрос
Отладка на сервере отключена. Строки разбил, получение ТЗ из движения не занимает времени, что тормозит в общем модуле - посмотреть не могу.
#13
by Fragster
так включи отладку на сервере, бро. наверняка тормозит один запрос, который банальным выносом виртуальных таблиц из соединения во временные, а потом уже соединение со временными таблицами ускорится раз в пять.
#14
by vde69
для начала - регламенты!!! обновление статистики и индексы... дальше несколько дней ждать и если все будет плохо - писать сюда
#15
by Альбатрос
регламенты есть только по индексам, обновление статистики добавил и сразу провел на проблемной базе - результат 0.
#18
by dmrjan
Как вариант - поднять базу на PostgreSQL, которая в отличие от MSSQL не жрет всю память и при правильных запросах в 1с почти не блокирует данные на чтение. И посмотреть - если оперативки не станет хватать, значит дело в некорректных запросах. Я в свое время на Linux с помощью Htop выявил некорректный запрос.
#19
by Альбатрос
Да, такая мысль тоже была, спасибо. Вечером подключим отладку на сервере, регламентные я поднял. осмотрим короче...
#20
by H A D G E H O G s
1. Регламенты. 2. Переписать партионное списание на годный код. 3. Реализовать управляемые блокировки. Но так как nobody_cares, то все останется как есть.
#22
by ДенисЧ
"поднять базу на PostgreSQL, которая в отличие от MSSQL не жрет всю память и при правильных запросах в 1с почти не блокирует данные на чтение"
#25
by Lamer1C
попробуй статистику обновить. проверь. потом индексы перестроить, если 1 не поможет. а так причин может быть очень много...
#30
by Drac0
Я точно не помню. Просто была непонятная фигня со сложным запросом: вплоть до вешанья сервака. Оказалось, что в DOP было дикое число, скуль паралеллил и сам потом развлекался с этими потоками, ни на что больше не реагируя :)
#31
by Lamer1C
ну тогда точно в 0 ставил :) это параметр отвечает за распараллеливание операций для многоядерных процессоров: 0 - это неограниченно
#35
by Kvant1C
Посмотри какое приращение установлено для базы данных, если оно слишком маленькое, то возможно, что сервер только и занимается приращением бд при каждом добавлении записей, отсюда и тормоза могут быть
#38
by Альбатрос
Max degree of parallelism (DOP) значение 1 У меня такая проблема, при добавлении строчки -debug у меня перестает запускаться агент на сервере. Вот такая ошибка, это мне админ прислал: Компьютер: 1CSERVER.kom-kastor.local Описание: Параметры разрешений для конкретного приложения не дают разрешения Локальный Активация для приложения COM-сервера с CLSID {BA126AD1-2166-11D1-B1D0-00805FC1270E} пользователю 1CSERVERUSR1CV82 с SID (S-1-5-21-4102014034-2086728852-1080897402-1002) и адресом LocalHost (с использованием LRPC). Это разрешение безопасности можно изменить с помощью служебной программы управления службами компонентов. Xml события: <Event xmlns="; Я так понимаю, там что-то с настройками безопасности. Админ комментариев не дает. Подскажите, что не так?
#47
by leonidkorolev
Ну ок. Можно в профайлере посмотреть что происходит на скуле в момент выполнения этой процедуры. Поставь точку останова на процедуру, перед выполнение запусти профайле и смотри самые тяжелые запросы.
#49
by Альбатрос
Я несколько хз, где это запускать :))) И не понял, что конкретно этот скрипт делает. Буду рад пояснениям )))
#50
by vde69
запускать в скуле, скрипт выводит статистику ожидания блокировок (показывает слабые места)
#65
by Альбатрос
Надо ведь и нагрузку тогда обеспечить на проблемную базу для хорошего результата, не?
#66
by Kvant1C
Кстати на счет дисков, был такой случай когда проблемы на новом сервере были связаны именно с дисками, был косяк с контроллером, после настройки проблема ушла. В общем не лишне саму дисковую подсистему проверить на скорострельность.
#67
by Альбатрос
Ну как бэ я не могу это сделать, а сисадмин по-любому скажет, что все норм и проверять не надо.
#70
by vde69
запускать нужно на рабочем сервере во время обычной работы юзеров... никаких эмуляторов, перепроведений и т.д. там анализируется например время отклика клиента и т.д. то есть ситема в целом а не сервер
#71
by Kvant1C
>>сисадмин по-любому скажет, что все норм и проверять не надо ну тогда скажи ему чтобы он со скулем тогда сам боролся...
#72
by Альбатрос
да, и все обновленные до последнего релиза. А проблемная это "Управление торговлей", редакция 10.3 (10.3.18.3) Ну он заявит что проблема в самой базе. При этом его заявление будет выглядеть логичным, ведь остальные базы не тормозят. Запустил на час без нагрузки, кроме обычной
#74
by Альбатрос
Размер прироста выставлен в 200 мб при базе в 9гб. Судя по статье - норм показатель.
#79
by dmrjan
Попробуй в MSSQL включить регулятор запросов, и поставь 2000-10000, документы будет проводится быстрее, а вот кто больше всего начнет кричать, у того и смотри. Обычно отчеты сами начинают ругаться на этот параметр.
#82
by dmrjan
Если скажется, значит не все в порядке с другими базами. Но это не смертельно, всегда можно отключить это значение. Или поменять.
#84
by Kvant1C
Модель восстановления какая устновлена, full или simple? Если full, то поменяй на simple.
#88
by vde69
да не мечись... надо делать все по порядку, иначе на одни результаты будут наслаивается твои эксперименты... оптимизация - она не быстрая... сделал проверил подумал, потом снова можно делать
#90
by dmrjan
Может проблема в том, что в файловой версии было прописано, что процедура выполняется локально, а нужно на сервере? Посмотри - при проведении - сколько у тебя грузится сеть.
#92
by Альбатрос
Тест ничего особо не показал, кроме LAZYWRITER_SLEEP, у нее 21 %, все остальные не превышают 12 Может все-таки нагрузить ее?
#97
by 0wl
Получается, сервер недавно перезагружал? Для tempdb это очень маленький размер, поставь изначальный размер хотябы Мб 500, иначе постоянно будут блокировки на расширении файла данных. И я пропустил, индексы уже перестраивал? Если нет, запусти на ночь, днем перестроение индексов помешает работе пользователей
#98
by Альбатрос
Индексы регламентом перестраиваются в воскресенье - не помогло... Сервер перегружали сегодня ночью.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Тормоза при входе 2-го пользователя по сети (3-х польз.торговля), срочно!
- Совместимость MS SQL 2000 и MS SQL 2005 ?
- MS SQL 2008 SP3 замечено что после установки SP3 MS Windows Server 2003 стал как
- После переноса базы данных с sql server 2005 на 2012 тормозит база
- тормоза базы после переноса на другой комп
- КУДиР расходы после переноса из УСН 1.3
- v7: Перенос базы 1С 7.7 MS SQL 2005 на MS SQL 2000
- ЗУП 3.1 доплата за вредность после переноса данных
В этой группе 1С
- Как обратиться к итогам полученным в скд
- УПП: "Плоская" структура себестоимости
- Оставаться на 10.3 или переходить на 11
- bluetooth наушники philips SHB7150 на Win7x64 не ставится драйвер
- Фоновые вычисления при событии управляемой формы внешней обработки
- Как перенести программу Далион.Управление магазином на другой комп.
- v7: Некорректно выполняется *,bat файл при запуске из 1с
- Проблема с типовыми операциями
- Несколько значений одного доп. реквизита номенклатуры
- Как побороть признак модифицированости формы?
- УТ 11, перенос справочника цен из 7.7 в 8,3 ут
- Не отображается картинка на веб клиенте
- Busybox shell script
- Управляемые формы - не срабатывают точки останова
- СКД. Дополнительная группировка "полугодие", "9 месяцев"
- Управляемые формы. Как программно вывести несколько кнопок на форму
- Помогите. Не дает поменять даты выгрузки документо из УТ10.3 в БП3.0
- Как в MS Word нужный текст сделать жирным с подчеркиванием?
- Внешний отчет и СКД
- C#: "Ошибка синтаксиса в инструкции INSERT INTO"