Портативные ИР 4.87. Консоль запросов вешает 1С
|
|
mbelousova66 | Дата: Среда, 03.04.2019, 10:52 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 7
Репутация: 3
Статус: Оффлайн
| Портативные ИР 4.87. Консоль запросов, ничего не выполняя, просто открытая висит и захватывает под себя данные (Захвачено СУБД в консоли управления сервером 1С Предприятия). Соответственно, все зависает и аут. Прямо беда. Что делать? Работаем в клиент-серверном варианте. Клиент 1С:Предприятие 8.2 (8.2.19.130) х32 Сервер 1С:Предприятие 8.2 (8.2.19.130) х64 СУБД MS SQL 2014. ОС с которой запускаю клиента Win 10 (сборка 1803 вроде)
|
|
| |
tormozit | Дата: Среда, 03.04.2019, 21:48 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| Подобных тем куча на этом форуме и в них 0 раз была подтверждена связь зависания и открытой консоли запросов ИР. Это конечно не значит что это связи нет. Поэтому мне нужно более подробное описание эксперимента и цепочки рассуждения, доказывающих эту связь. То, что у сеанса растет показатель "Захвачено СУБД" является задуманным поведением. Это нужно для использования единого менеджера временных таблиц во всех операциях выполнения запросов в консоли. Захвата данных при этом абсолютно точно не происходит. Предлагаю провести 2 эксперимента, в которых постараться соблюсти высокую похожесть условий. 1. Открыть консоль запросов ИР, выполнить в ней любой запрос и оставить на долго до зависания. 2. Запустить такой же сеанс в той же базе, но не открывать консоль запросов. Оставить этот сеанс на в 2 более длительное время.
Кстати на 8.3.14 показатель "Захвачено СУБД" уже не растет в той же ситуации.
|
|
| |
mbelousova66 | Дата: Четверг, 04.04.2019, 08:07 | Сообщение # 3 |
Рядовой
Группа: Пользователи
Сообщений: 7
Репутация: 3
Статус: Оффлайн
| Благодарю за ответ. Да, вопрос не простой. Я основываюсь только на своих наблюдениях. У меня всегда открыто 2 и более сеанса в толстом клиенте с рабочей базой, в одном из них, часто висит консоль с выполненным запросом. Если я про нее "забываю" и вовремя не закрываю (10-15 мин) то через 30 минут мне начинают поступать обращения от пользователей, которые в процессе своей работы используют запросы к большим табличкам (бух итоги, как правило) с жалобами, что у них "все зависло", при этом никаких других процессов, с большим количеством "Захваченно СУБД" (кроме моего, на 1 месте и того пользователя, на 2 месте) я в консоли сервера не наблюдаю. При этом есть закономерная тенденция, чем объемней выборка, чем больше в ней временных таблиц, тем быстрее, наступает "зависание". Я бы это назвала именно зависанием сервера 1С Предприятия. Да, он у нас старенький, да, надо переходить на 8.3, эти вопросы учтем и постараемся в ближайшее время решить. Озаботилась всем этим в связи с грядущими работами. Надо будет в полуручном режиме переносить данные из К.А. 1.1 и без консоли - никак не обойтись. При этом не хочется мешать пользователям. В общем, это уже детали...Перед работами планируем обновить на 8.3.
Сегодня на ночь оставлю два сеанса. 1. С консолью, пустой, без запроса, она так же захватывает, даже пустая. 2. Без консоли. Завтра проверим, что случится с сервером предприятия.
|
|
| |
tormozit | Дата: Четверг, 04.04.2019, 21:49 | Сообщение # 4 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| По поводу 8.3.14 предоставил неверную информацию. Увеличение этого показателя здесь также происходит. Просто увеличиваться он начинает после выполнения запроса, создающего временную таблицу. 2 эксперимента, описанных мной, нужно проводить последовательно, а не параллельно.
|
|
| |
mbelousova66 | Дата: Пятница, 05.04.2019, 09:51 | Сообщение # 5 |
Рядовой
Группа: Пользователи
Сообщений: 7
Репутация: 3
Статус: Оффлайн
| Эксперимент закончился. Утром сервер приложений продолжал работать, но у пользователей более длительно выполнялись (точнее, так и не дождались выполнения) запросы. Как раз, на вложенной картинке видно сеанс, следующий за моим, запрос был к бух итогам, не дождались, сняли сеансы пользователя и мой. То есть, все со стороны выглядит так: пользователь приходит и говорит: вчера работало, а сегодня "висит", посмотри, пожалуйста... После того, как я свой сеанс закрыла, а пользователь "перезашел" в программу, все у него выполнилось без проблем, "как вчера".
Во вложениях картинки моего сеанса с пустой консолью и картинка консоли сервера 1С Предприятия.
Что-то там на что-то влияет....
В общем, подобное поведение внешнего инструмента разработчика однозначно мешает работе наших пользователей
|
|
| |
mbelousova66 | Дата: Пятница, 05.04.2019, 09:53 | Сообщение # 6 |
Рядовой
Группа: Пользователи
Сообщений: 7
Репутация: 3
Статус: Оффлайн
| Вторая картинка.
Добавлено (05.04.2019, 09:55) --------------------------------------------- На картинке с консолью сервера видно мой вчерашний второй сеанс и видно, что он ничего не захватил.
|
|
| |
tormozit | Дата: Суббота, 06.04.2019, 10:06 | Сообщение # 7 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| Попробуй вместо закрытия сеанса закрыть консоль запросов. Удержание менеджера временных таблиц выполняется переменной в модуле формы консоли запросов. Какие временные таблицы находятся в такой ситуации в менеджере временных таблиц (закладка "Временные таблицы") и сколько в них строк? Если ты запускаешь выполняешь те же действия, что и пострадавшие пользователи, в новом сеансе или сеансе предполагаемом виновнике, то у тебя воспроизводится зависание при выполнении запроса? Если пострадавший пользователь в момент зависания запускает новый сеанс и пробует повторить нужный ему запрос, то он тоже зависает? Какого рода запрос выполняется при этом? Желательно привести его листинг. Использует ли он временные таблицы? Что при этом видно в СУБД? Какие текущие запросы выполняются? О какой конкретно таблице бух. итогов идет речь (ее имя в СУБД, размер данных, размер индекса)? Случаются ли там же подобные зависания в других ситуациях без участия консоли запросов? Сколько пользователей в среднем работает в базе?
|
|
| |
tormozit | Дата: Суббота, 06.04.2019, 10:15 | Сообщение # 8 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| Чтобы досрочно освободить менеджер временных таблиц и соответственно освободить соединение СУБД в консоли запросов, нужно нажать "Удалить временные таблицы"
|
|
| |
tormozit | Дата: Суббота, 06.04.2019, 10:40 | Сообщение # 9 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| Предыдущие обсуждения подобных проблем http://devtool1c.ucoz.ru/forum/2-969-1 http://devtool1c.ucoz.ru/forum/2-830-1 http://devtool1c.ucoz.ru/forum/2-969-1
|
|
| |
tormozit | Дата: Пятница, 18.09.2020, 22:19 | Сообщение # 10 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| Полезные обсуждения на партнерском форуме https://partners.v8.1c.ru/forum/t/1423290/m/1423290 https://partners.v8.1c.ru/forum/t/532452/m/532452
|
|
| |
tormozit | Дата: Понедельник, 21.09.2020, 09:49 | Сообщение # 11 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| Здесь получен ответ от 1С
Вопрос:
Цитата в базе есть сеанс, в котором открыта обычная форма (например консоль запросов), удерживающая в себе объект МенеджерВременныхТаблиц. Для такого сеанса показатель "Захвачено СУБД" будет расти до тех пор, пока объект не будет уничтожен (например путем закрытия формы). При этом содержимое менеджера временных таблиц контролируется прикладным кодом и пользователем, т.е. нет бесконтрольного роста количества и размера временных таблиц в нем. В среднем в этом менеджере временных таблиц находится малый объем данных. Объект может жить целый рабочий день. Будет ли в таком случае какое то негативное влияние на производительность СУБД и каков его механизм? Ответ:
Цитата Негативного влияния на производительность в описанном случае быть не должно.
|
|
| |
tormozit | Дата: Вторник, 22.09.2020, 08:53 | Сообщение # 12 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| Сегодня получил уточнение по реальным сценариям.
Вопрос:
Цитата Имеем базу, в которой работают 50 пользователей и периодически проводят 5 видов документов. В коде проведения этих документов создаются и сразу уничтожаются разные по составу колонок временные таблицы. Пользователь открыл толстую форму. Она создала постоянный менеджер временных таблиц на клиенте. Случай 1. Пользователь выполнил создание в нем простейшей пустой временной таблицы, т.е. имеем постоянное удержание временной таблицы и соответственно соединения с СУБД. Далее пользователь в том же сеансе открывает другую форму и запускает в ней недолгое перепроведение тех же типов документов (для ясности без явной транзакции. Таким образом в удерживаемом постоянно соединении с СУБД образуется и удерживается набор пустых временных таблиц всех используемых при проведении составов колонок временных таблиц. Ответ:
Цитата Работа соединения с SQL-сервером замедляется, если в этом соединении создаются и удаляются многочисленные временные таблицы. Чтобы производительность 1С:Предприятия из-за этого не снижалась, предусмотрено обновление соединений с SQL-сервером с течением времени. В описанный сценарий препятствует обновлению, и это приводит к снижению производительности. Длительное удерживание менеджеров временных таблиц не рекомендуется. Таким образом деградация производительности на SQL сервере со временем будет, если после открытия консоли запросов ИР выполнить много разных запросов с использованием временных таблиц и оставить сеанс работать. Создал задачу http://www.hostedredmine.com/issues/887410
|
|
| |
tormozit | Дата: Понедельник, 28.09.2020, 01:39 | Сообщение # 13 |
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
| Защита от проблемы реализована в 5.57
|
|
| |