powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / 1С 8.2 + MS SQL
20 сообщений из 20, страница 1 из 1
1С 8.2 + MS SQL
    #37329623
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Можно ли поспрашивать теоретические вопросы у знающих людей?

Что есть:
Конфигурация, не типовая. Сервер предприятия + сервер MSSQL.
Активных пользователей в базе - около 1300. Все работают через терминалы с базой.
База:
Total Space Usage: 198 165,50 MB
Data Files Space Usage: 163 600,00 MB
Transaction Log Space Usage: 34 565,50 MB

Очень активно используются временные таблицы в работе, в основном при построении отчетов. соответственно, память на сервере сиквела начиная с 7 утра выжирается и фиг потом освобождается. Если ночью перезагружают сервер (иногда нужно, иногда по регламенту) - ночная смена продолжает работать выедая не более 43% доступной памяти.

Так как сервер предприятия постоянно держит открытым соединение к сиквелу - естественно tempdb не очищается (делали эксперименты, по профайлеру видно, что 1С не убивает временные таблицы, а только очищает их - truncate)
Вопрос: можно ли заставить 1С "убирать" за собой во время сессии клиента?
Убирать - это:
1) подчищать tempdb
2) закрывать неиспользуемые соединения.

Есть ли стандартные механизмы 1С как отключать пользователей, если они какое-то время не работают, не проявляют активности?

все эти вопросы больше касаются 1С, а в моих задачах звучит "обслуживание БД". 1с-ники на большинство вопросов разводят руками, мол невиноватая-я-это-всё-1-цэ.

-
Чудеса случаются. Это Вам любой программист скажет.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37330103
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наутилус,

1. какая версия платформы?
2. "можно ли заставить 1С "убирать" за собой во время сессии клиента?" - можно.
Во встроенном языке запросов ключевое слово УНИЧТОЖИТЬ .
3. "закрывать неиспользуемые соединения." - что имеется в виду?
Если у вас зависают сессии после отключения пользователя из клиента, то разные методы есть, от версии платформы многое зависит.
Оптимально - периодический перезапуск рабочих процессов на сервере. В платформе есть возможность указания периода перезапуска рабочего процесса.
4. "как отключать пользователей, если они какое-то время не работают" - никак, этого не требуется. Более того, это вредно.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37330412
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наутилус...
Очень активно используются временные таблицы в работе, в основном при построении отчетов. соответственно, память на сервере сиквела начиная с 7 утра выжирается и фиг потом освобождается.


Это нормальный штатный режим работы SQL-сервера. Запрашиваемые данные кэшируются сервером для ускорения обработки. Не надо ничего трогать - sql-сервер саам отлично с этим управляется
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37331369
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу прощения, что долго не отвечал.

_VVP_1. какая версия платформы?
8.2.13.219

_VVP_2. "можно ли заставить 1С "убирать" за собой во время сессии клиента?" - можно.
Во встроенном языке запросов ключевое слово УНИЧТОЖИТЬ .
не ручаюсь, но вроде бы это приводит к truncate table? сегодня проверим. сенкс.

_VVP_3. "закрывать неиспользуемые соединения." - что имеется в виду?
Если у вас зависают сессии после отключения пользователя из клиента, то разные методы есть, от версии платформы многое зависит.
есть 1300 пользователей. из них 300 - центральный офис. если в терминале мы можем "закрывать" сессии простаивающие, то с клиентами из локальной сети как бороться?
почему хочу закрывать: если ночью происходит регламентная перезагрузка серверов (всем пользователям выдается сообщение, через Х минут завершаются сессии, и 20 минут техн.перерыв), то после того как "ночники" зайдут и начинают работать - на сервере (сиквела) нет максимальной нагрузки. т.е. отжирают память и ресурсы "спящие" сессии. люди ушли с рабочих мест, но из базы не вышли.

_VVP_Оптимально - периодический перезапуск рабочих процессов на сервере. В платформе есть возможность указания периода перезапуска рабочего процесса.
можете ткнуть в где почитать про это?

_VVP_4. "как отключать пользователей, если они какое-то время не работают" - никак, этого не требуется. Более того, это вредно.
мм. ситуация: человек сформировал отчет. посмотрел. не закрыл. свалил. на день, ночь, на несколько часов. всё это время его сессия отжирает ресурсы.
как с этим поступать?

nicktcherЭто нормальный штатный режим работы SQL-сервера. Запрашиваемые данные кэшируются сервером для ускорения обработки. Не надо ничего трогать - sql-сервер саам отлично с этим управляется
это в теории так. хорошо и отлично САМ. а на практике другая картина, и сам не надо. надо контролируемо.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37331843
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Garya Привилегированный пользователь
Участник
nicktcherнаутилус...
Очень активно используются временные таблицы в работе, в основном при построении отчетов. соответственно, память на сервере сиквела начиная с 7 утра выжирается и фиг потом освобождается.


Это нормальный штатный режим работы SQL-сервера. Запрашиваемые данные кэшируются сервером для ускорения обработки. Не надо ничего трогать - sql-сервер саам отлично с этим управляется +1

SQL-сервер - это серверное ПО, и оно должно по возможности наиболее эффективно использовать ресурсы сервера. Поэтому если оно захапало себе всю память, оно просто-напросто пытается максимально эффективно использовать имеющиеся у сервера ресурсы, и это нормально. Чем больше размер всех кешей (который определяется динамически), тем больше сожрано оперативной памяти и тем меньше среднее время ответной реакции сервера на SQL-запрос.

Открытые сессии, по идее, должны оставаться открытыми, если с этими сессиями кто-то работает. Если убить работающий процесс с помощью kill, то иногда это может привести к рассогласованию данных в БД, если разработчик не догадался взаимосвязанные изменения данных по множеству счетов, регистров, справочников, документов, обернуть в транзакцию. Если пользователь завершил сеанс, то сессия должна закрываться. Если она почему-то не закрывается, нужно работать конкретно над этой проблемой, и вопрос стоит совершенно иначе.

Увеличение размера Tempdb тоже не столь трагично. Если размер этой БД увеличивается, значит ей это нужно. Значит большое количество пользователей запускает транзакции, в которых активно используются временные таблицы. Если размер Tempdb большой, значит его не нужно увеличивать, когда его размера не хватает. Необходимо помнить о том, что операции, связанные с изменением размера кешей, баз данных, занимаемой памяти, сами по себе ресурсоемки и вызывают задержки в отклике SQL-сервера. Поэтому не нужно возвращать сервер в то состояние, в котором он опять вынужден будет перестраиваться и приводить к подобным задержкам. Дайте ему возможность выйти в рабочий режим и лишний раз не трогайте.

И, наконец, попытайтесь ответить на вопрос, зачем Вам нужна та память, которая не используется SQL-сервером. На сервере что, еще какое-то ПО запущено, которому эта память нужна? Если это так, то проблема как раз в этом. Не нужно на одном сервере запускать несколько разных программ, которые конкурируют между собой за ресурсы этого сервера. Потому что постоянный пересмотр, у кого отнять память и кому ее отдать, опять-таки вызывает "замирания" в работе всего ПО, которое на этом сервере используется. В принципе, SQL-сервер сам способен освобождать память, если ОС его об этом попросит. Если ОС его не просит, значит ей эта память, как бы без особой надобности.

Ну и напоследок, Вы можете ограничить размер памяти, используемый SQL-сервером, если в этом действительно есть необходимость.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37331915
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наутилус_VVP_1. какая версия платформы?8.2.13.219_VVP_Во встроенном языке запросов ключевое слово УНИЧТОЖИТЬ .не ручаюсь, но вроде бы это приводит к truncate table? сегодня проверим. сенкс.Применение этого ключевого слова приведет к DROP TEMPORARY TABLE.наутилус_VVP_3. "закрывать неиспользуемые соединения." - что имеется в виду?
Если у вас зависают сессии после отключения пользователя из клиента, то разные методы есть, от версии платформы многое зависит.есть 1300 пользователей. из них 300 - центральный офис. если в терминале мы можем "закрывать" сессии простаивающие, то с клиентами из локальной сети как бороться?Бороться регламентом, административными методами. Либо методами системного администрирования - задав разрешенное время работы пользователя в домене. Либо встроить в конфигурацию механизм принудительного самоотключения пользователя в зависимости от его роли/территории.наутилуспочему хочу закрывать: если ночью происходит регламентная перезагрузка серверов ..., то после того как "ночники" зайдут и начинают работать - на сервере (сиквела) нет максимальной нагрузки. т.е. отжирают память и ресурсы "спящие" сессии. люди ушли с рабочих мест, но из базы не вышли.Вы же выкинули их регламентом? Разве нет?наутилус_VVP_Оптимально - периодический перезапуск рабочих процессов на сервере. В платформе есть возможность указания периода перезапуска рабочего процесса.можете ткнуть в где почитать про это?Поставляемая документация на платформу, в частности книга по администрированию сервера 1С. В свойствах рабочего процесса устанавливается время перезапуска р.п.наутилусмм. ситуация: человек сформировал отчет. посмотрел. не закрыл. свалил. на день, ночь, на несколько часов. всё это время его сессия отжирает ресурсы. как с этим поступать?см. выше.наутилусэто в теории так. хорошо и отлично САМ. а на практике другая картина, и сам не надо. надо контролируемо.Для того, чтобы что-то контролировать, нужно знать как это работает. Изучайте, потом сможете контролировать.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37332952
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GaryaSQL-сервер - это серверное ПО, и оно должно по возможности наиболее эффективно использовать ресурсы сервера. Поэтому если оно захапало себе всю память, оно просто-напросто пытается максимально эффективно использовать имеющиеся у сервера ресурсы, и это нормально. Чем больше размер всех кешей (который определяется динамически), тем больше сожрано оперативной памяти и тем меньше среднее время ответной реакции сервера на SQL-запрос.
это понятно )

GaryaОткрытые сессии, по идее, должны оставаться открытыми, если с этими сессиями кто-то работает. Если убить работающий процесс с помощью kill, то иногда это может привести к рассогласованию данных в БД, если разработчик не догадался взаимосвязанные изменения данных по множеству счетов, регистров, справочников, документов, обернуть в транзакцию. Если пользователь завершил сеанс, то сессия должна закрываться. Если она почему-то не закрывается, нужно работать конкретно над этой проблемой, и вопрос стоит совершенно иначе.
это тоже понимаемо и понятно. я не предлагал рубить сессии пользователей MS SQL. этот вопрос касался 1с-ных сессий. я понимаю, что сервер предприятия 1С сам должен корректно заканчивать сессии иначе это неизбежно приведёт к проблемам.

GaryaУвеличение размера Tempdb тоже не столь трагично. Если размер этой БД увеличивается, значит ей это нужно. Значит большое количество пользователей запускает транзакции, в которых активно используются временные таблицы. Если размер Tempdb большой, значит его не нужно увеличивать, когда его размера не хватает. Необходимо помнить о том, что операции, связанные с изменением размера кешей, баз данных, занимаемой памяти, сами по себе ресурсоемки и вызывают задержки в отклике SQL-сервера. Поэтому не нужно возвращать сервер в то состояние, в котором он опять вынужден будет перестраиваться и приводить к подобным задержкам. Дайте ему возможность выйти в рабочий режим и лишний раз не трогайте.
об этом я тоже не спрашивал в контексте SQL - то, что темпдб забивается - я даже знаю чем. программисты работают и пытаются оптимизировать свои алгоритмы, мне же надо оптимизировать работу сервера SQL. с ТемпДБ как раз всё даже не так уж плохо. до меня вообще темпдб не делилась на файловые группы, и была на одном винте вместе с логом транзакций. сейчас 20 файлов tempdb на разных дисках, дисковая очередь сократилась, сложные отчеты активно использующие временные таблицы стали отрабатывать шустрее.

GaryaИ, наконец, попытайтесь ответить на вопрос, зачем Вам нужна та память, которая не используется SQL-сервером. На сервере что, еще какое-то ПО запущено, которому эта память нужна? Если это так, то проблема как раз в этом. Не нужно на одном сервере запускать несколько разных программ, которые конкурируют между собой за ресурсы этого сервера. Потому что постоянный пересмотр, у кого отнять память и кому ее отдать, опять-таки вызывает "замирания" в работе всего ПО, которое на этом сервере используется. В принципе, SQL-сервер сам способен освобождать память, если ОС его об этом попросит. Если ОС его не просит, значит ей эта память, как бы без особой надобности.
мне не память его нужна как таковая (на этом сервере кроме сиквела ничего больше нет, сервер предприятия 1С на отдельном физическом сервере). Я просто вижу, что если завершить сессии 1С (регламентная перезагрузка 1С и SQL серверов) - то до утра память сервера не "сьедается" даже на 50%, т.е. "уснувшие/висящие/спящие и пр." сессии отжирают память зря. вот с этим и хотел бороться.

GaryaНу и напоследок, Вы можете ограничить размер памяти, используемый SQL-сервером, если в этом действительно есть необходимость.
нет. нету ) понятно, что он (сиквел) не просто так память ест. и кроме него на этом сервере память больше никому не нужна.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37332958
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_VVP_Применение этого ключевого слова приведет к DROP TEMPORARY TABLE.
понял, буду знать. сейчас буду общаться с программистами.

_VVP_наутилуспропущено...
есть 1300 пользователей. из них 300 - центральный офис. если в терминале мы можем "закрывать" сессии простаивающие, то с клиентами из локальной сети как бороться?Бороться регламентом, административными методами. Либо методами системного администрирования - задав разрешенное время работы пользователя в домене. Либо встроить в конфигурацию механизм принудительного самоотключения пользователя в зависимости от его роли/территории.
ну где-то так я и представлял себе этот процесс.

_VVP_наутилуспочему хочу закрывать: если ночью происходит регламентная перезагрузка серверов ..., то после того как "ночники" зайдут и начинают работать - на сервере (сиквела) нет максимальной нагрузки. т.е. отжирают память и ресурсы "спящие" сессии. люди ушли с рабочих мест, но из базы не вышли.Вы же выкинули их регламентом? Разве нет?
да. как их "выкинуть" не перегружая сервера, корректно? т.е. завершить сессии только неактивных пользователей.
я сейчас себе представляю, что должен быть механизм определяющий "рабочесть" сессии пользователя по определённым критериям.
если процесс не рабочий - 1С завершает работу, либо же продолжает работать.

_VVP_наутилуспропущено...
можете ткнуть в где почитать про это?Поставляемая документация на платформу, в частности книга по администрированию сервера 1С. В свойствах рабочего процесса устанавливается время перезапуска р.п.
вот сейчас про это буду читать. что будет происходить в процессе перезапуска р.п.

спасибо!
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37333014
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_VVP_,

только что делали:
1)
запрос:


сиквел:


т.е. первый раз он сам truncate table делает как отработанное, потом по команде Уничтожить.

2)
зашел в базу, сделал несколько операций, открыл один отчет. Потом закрыл все формы 1С (саму 1С оставил) и сделал отчет Disk Usage by Table. все временные таблицы живы.
Потом закрыл 1С и сделал отчет Disk Usage by Table ещё раз. Никаких таблиц
Значит 1С 100% оставляет временные таблицы до выхода из 1С.

с этим можно бороться?
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37333161
Igor Glushaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наутилус,

Можно вопрос: Вам больше заняться нечем? Попробуйте объяснить, зачем вам нужны все эти телодвижения. Для чего разгонять пользователей, которые не выключили 1с? Для чего Вам освобождать память SQL сервера, зная, что она ему понадобиться и он ее все равно завтра опять всю займет? Вас что не устраивает скорость с которой работает система? Если так, то все эти телодвижения ну никак не дадут даже 1% прироста, а даже наоборот, приведет к ухудшению работы, так как тут уже объяснялось, что сервер подгружает и оставляет в памяти те куски базы, к которым идет наибольшее количество обращений на чтение и изменение. Так нафига принудительно эти куски базы выкидывать из памяти, чтоб на следующий день он их опять туда читал с диска, теряя драгоценное время.
У меня количество пользователей в базе в порядок меньше, но на SQL сервере заняты все 30 гигов оперативы и я этим не комплексую Раз занял - значит так нужно. Более того, после перезагрузки сервера на 3-5 сек начинают дольше формироваться отчеты со сложными отборами.
Так что не нужно этого всего. Лучше опишите глобальную проблему, может кто и сможет подсказать как ее решить... Модератор: вырезано... .
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37333170
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Glushaevнаутилус,

Можно вопрос: Вам больше заняться нечем? Попробуйте объяснить, зачем вам нужны все эти телодвижения.
объясняю.

Igor GlushaevДля чего разгонять пользователей, которые не выключили 1с? Для чего Вам освобождать память SQL сервера, зная, что она ему понадобиться и он ее все равно завтра опять всю займет?
затем, что бы "левые", отработавшие свое вещи не висели в памяти. что бы освободить эту память для текущих задач, а не заставлять сервер использовать дисковую подсистему.

Igor GlushaevВас что не устраивает скорость с которой работает система? Если так, то все эти телодвижения ну никак не дадут даже 1% прироста, а даже наоборот, приведет к ухудшению работы, так как тут уже объяснялось, что сервер подгружает и оставляет в памяти те куски базы, к которым идет наибольшее количество обращений на чтение и изменение.
не устраивает.
вы гарантируете "никак не дадут даже 1% прироста"? на чем основывается утверждение?
а если этих "куски" часто меняются? или вы будете утверждать, что пусть диск задействует, а память будет занята хламом?

Igor GlushaevТак нафига принудительно эти куски базы выкидывать из памяти, чтоб на следующий день он их опять туда читал с диска, теряя драгоценное время.
вопрос итераций не дни. ))

Igor GlushaevУ меня количество пользователей в базе в порядок меньше, но на SQL сервере заняты все 30 гигов оперативы и я этим не комплексую Раз занял - значит так нужно. Более того, после перезагрузки сервера на 3-5 сек начинают дольше формироваться отчеты со сложными отборами.
я думаю в этом и непонимание "пользователей в порядок меньше". 1300 и 130 это совершенно разные нагрузки. у меня 120 гиг оперативки и 160 весит база. и оптимизация темпдб дала существенный, осязаемый (и подсчитанный статистически) прирост быстродействия. лично для меня даже 10% улучшения быстродействия будут громадными.

Igor GlushaevТак что не нужно этого всего. Лучше опишите глобальную проблему, может кто и сможет подсказать как ее решить
Модератор: вырезано
проблема не в сиквеле. проблема в освобождении ресурсов сиквела используемых сервером предприятия 1С. потому и ветка эта в форуме 1С, а не на форуме MS SQL!
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37333192
Igor Glushaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наутилус,

наутилусзатем, что бы "левые", отработавшие свое вещи не висели в памяти. что бы освободить эту память для текущих задач, а не заставлять сервер использовать дисковую подсистему.

Так они висят в памяти 1с сервера, а не SQL. Между сервером 1с и SQL всегда один коннект. Ну ради бога, почитайте документацию, как работает связка 1с8 и MS SQL. Кроме того, в самом MS SQL имеется очень хороший, даже отличный оптимизатор памяти, и не надо ему помогать работать, он сам прекрасно все умеет делать.

наутилусне устраивает.
вы гарантируете "никак не дадут даже 1% прироста"? на чем основывается утверждение?
а если этих "куски" часто меняются? или вы будете утверждать, что пусть диск задействует, а память будет занята хламом?

Почитайте наконец доки, и в том числе, принципы работы с памятью, и кэшем в MS SQL. Сам сервер прекрасно умеет избавляться от хлама, который он сочтет не нужным. Дайте наконец-то работать серверу. Не лезьте вы к софту. Ну при всем своем желании не сможете вы сделать лучше, чем сам сервер. Ну никак... Лучше в сторону кода 1с смотреть, да железа сервера, может там собака порылась, а вы каждую ночь серверу устраиваете ему еще дополнительную экзекуцию.

наутилуся думаю в этом и непонимание "пользователей в порядок меньше". 1300 и 130 это совершенно разные нагрузки. у меня 120 гиг оперативки и 160 весит база. и оптимизация темпдб дала существенный, осязаемый (и подсчитанный статистически) прирост быстродействия. лично для меня даже 10% улучшения быстродействия будут громадными.


Проходил я через это. У меня порядка 100 пользователей и пара баз, под 120 гигов каждая. И в обоих идет активная работа. Это еще не считая еще 5 баз до 30 гигов каждая...
Разницы нет 10, 100, 1000 и 100 000 пользователей в базе. Если конекту (сиречь пользователю) не нужны данные с сервера баз данных, то SQL и не держит жестко для него ресурсы, При первой же потребности он их отдаст тому, кому они нужны. Другой вопрос - а может этих ресурсов физически не хватает?

Каковы характеристики железа? Что за железо на сервере 1с? Сколько используется рабочих процессов?

наутилусесли для вас это детский сад, то я рад за вас.

проблема не в сиквеле. проблема в освобождении ресурсов сиквела используемых сервером предприятия 1С. потому и ветка эта в форуме 1С, а не на форуме MS SQL!

Еще раз, почитайте хотя бы инфу на официальном сайте 1с, как работает клиент-серверная связка. Там это есть. Много вопрос снимется.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37333853
Фотография a_titeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наутилус,

достаточно перезагружать сервер SQL, через некоторое время. tempdb при этом почиститься автоматом, ну и соединения само-собой. кстати - это одна из рекомендаций 1С. просто выбери время для этого...
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37610339
djserega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В свойствах кластера 1C предприятия есть параметр: "Выключенные процессы останавливать через" - попробуй может поможет с освобождением процессов, там же находиться перезапуск рабочих процессов
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37610728
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
djseregaВ свойствах кластера 1C предприятия есть параметр: "Выключенные процессы останавливать через" - попробуй может поможет с освобождением процессов, там же находиться перезапуск рабочих процессов
при этом пользователей выбрасывает. что недопустимо при наших процессах
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37610734
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наутилусdjseregaВ свойствах кластера 1C предприятия есть параметр: "Выключенные процессы останавливать через" - попробуй может поможет с освобождением процессов, там же находиться перезапуск рабочих процессов
при этом пользователей выбрасывает. что недопустимо при наших процессах
УФ+тонкий клиент - не выбрасывает.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37610737
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pailнаутилуспропущено...

при этом пользователей выбрасывает. что недопустимо при наших процессах
УФ+тонкий клиент - не выбрасывает.
вот и пишем... тонкий клиент ))....
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37611446
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Атоматом - определить простой пользователя можно через COM-интерфейс сервера приложений. И там же с сервера их закрывать, это, пожалуй, самый корректный способ.
Как вариант, можно через обработку ожидания в самой 1С.

Еще вариант - а каждом компьютере клиента создать такой скрипт - WMI + WSH... я бы не стал.

Что даст:
1. Освобождение кючей;
2. Уменьшение пула подключений как сервера приложений так и сиквеля. Как следствие освобождение простаивающих ресурсов обоих.
При работающих клиентах пул будет только расти.
3. ... бэкапы, обновления... и т.д...


Кстати, а разве только результат запросов на внутреннем языке будут в tempdb ?

наутилусТак как сервер предприятия постоянно держит открытым соединение к сиквелу - естественно tempdb не очищается (делали эксперименты, по профайлеру видно, что 1С не убивает временные таблицы, а только очищает их - truncate
Как-бы связь "Открытого соединения" и "trubcate" вещи разные. Как уже писалось выше - после использования нужно уничтожать объекта. Ну нету у 1С того что называют сборщик мусора... нету... а то что есть... оставляет желать лучшего.


наутилус...tempdb не очищается...
и
наутилус...память на сервере сиквела начиная с 7 утра выжирается и фиг потом освобождается...
Так у вас получается и tempdb и оперативная память используется очень активно?

Временные таблицы скуля - (# и ##) располагаются в tempdb, это факт. Чесно говоря, не знаю, как реализованы временные таблицы в запросах 1С - как временные таблицы cиквеля (скорее всего и тогда понтно откуда рост tempdb) или как табличные переменные (они располагаются в оперативке, и только по необходимости свопятся в tempdb).

Вероятно дело не только в самих по себе временных таблицах, а в запросах вообще...верне в их построении. Так что вопрос очень интересный, мусор ли это 1С или просто она так транслирует запросы в запросы сиквеля.

наутилусмм. ситуация: человек сформировал отчет. посмотрел. не закрыл. свалил. на день, ночь, на несколько часов. всё это время его сессия отжирает ресурсы.
как с этим поступать?
СКД ?


наутилусnicktcherЭто нормальный штатный режим работы SQL-сервера. Запрашиваемые данные кэшируются сервером для ускорения обработки. Не надо ничего трогать - sql-сервер саам отлично с этим управляетсяэто в теории так. хорошо и отлично САМ. а на практике другая картина, и сам не надо. надо контролируемо.
Не забываем о парадигме пула соединений...
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37611461
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наутилусзашел в базу, сделал несколько операций, открыл один отчет. Потом закрыл все формы 1С (саму 1С оставил) и сделал отчет Disk Usage by Table. все временные таблицы живы.
...
Значит 1С 100% оставляет временные таблицы до выхода из 1С.

с этим можно бороться?

А как 1С должна догадаться о том, что эти таблицы стали Вам не нужны. Сами создали - сами и уничтожте. В противном случае они только при закрытии сессии будут уничтожаться. Это всегда так было.
...
Рейтинг: 0 / 0
1С 8.2 + MS SQL
    #37611492
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The Dim! Чесно говоря, не знаю, как реализованы временные таблицы в запросах 1С - как временные таблицы cиквеля (скорее всего и тогда понтно откуда рост tempdb) или как табличные переменные (они располагаются в оперативке, и только по необходимости свопятся в tempdb).
как временные таблицы cиквеля - вот именно так.

The Dim!Вероятно дело не только в самих по себе временных таблицах, а в запросах вообще...верне в их построении. Так что вопрос очень интересный, мусор ли это 1С или просто она так транслирует запросы в запросы сиквеля.
дело в том, что в запросах на языке 1С я (например) джойню две таблицы по одному полю. в сиквеле это всё разворачиваться может в сумашедшие join - потому что одно поле 1С может в физической модели БД представлять 3 поля. и т.д. или запрос "Срез последних" - это тоже транслируется в определённые, не маленькие t-sql запросы.


The Dim!А как 1С должна догадаться о том, что эти таблицы стали Вам не нужны. Сами создали - сами и уничтожте. В противном случае они только при закрытии сессии будут уничтожаться. Это всегда так было.
а я указываю в 1С "Уничтожить". только нифига оно не освобождает (не удаляет) таблицы. там, выше, писал об экспериментах.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1С 8.2 + MS SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]