Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Можно ли поспрашивать теоретические вопросы у знающих людей? Что есть: Конфигурация, не типовая. Сервер предприятия + сервер 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-цэ. - Чудеса случаются. Это Вам любой программист скажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 21:13 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
наутилус, 1. какая версия платформы? 2. "можно ли заставить 1С "убирать" за собой во время сессии клиента?" - можно. Во встроенном языке запросов ключевое слово УНИЧТОЖИТЬ . 3. "закрывать неиспользуемые соединения." - что имеется в виду? Если у вас зависают сессии после отключения пользователя из клиента, то разные методы есть, от версии платформы многое зависит. Оптимально - периодический перезапуск рабочих процессов на сервере. В платформе есть возможность указания периода перезапуска рабочего процесса. 4. "как отключать пользователей, если они какое-то время не работают" - никак, этого не требуется. Более того, это вредно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2011, 10:30 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
наутилус... Очень активно используются временные таблицы в работе, в основном при построении отчетов. соответственно, память на сервере сиквела начиная с 7 утра выжирается и фиг потом освобождается. Это нормальный штатный режим работы SQL-сервера. Запрашиваемые данные кэшируются сервером для ускорения обработки. Не надо ничего трогать - sql-сервер саам отлично с этим управляется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2011, 12:35 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
прошу прощения, что долго не отвечал. _VVP_1. какая версия платформы? 8.2.13.219 _VVP_2. "можно ли заставить 1С "убирать" за собой во время сессии клиента?" - можно. Во встроенном языке запросов ключевое слово УНИЧТОЖИТЬ . не ручаюсь, но вроде бы это приводит к truncate table? сегодня проверим. сенкс. _VVP_3. "закрывать неиспользуемые соединения." - что имеется в виду? Если у вас зависают сессии после отключения пользователя из клиента, то разные методы есть, от версии платформы многое зависит. есть 1300 пользователей. из них 300 - центральный офис. если в терминале мы можем "закрывать" сессии простаивающие, то с клиентами из локальной сети как бороться? почему хочу закрывать: если ночью происходит регламентная перезагрузка серверов (всем пользователям выдается сообщение, через Х минут завершаются сессии, и 20 минут техн.перерыв), то после того как "ночники" зайдут и начинают работать - на сервере (сиквела) нет максимальной нагрузки. т.е. отжирают память и ресурсы "спящие" сессии. люди ушли с рабочих мест, но из базы не вышли. _VVP_Оптимально - периодический перезапуск рабочих процессов на сервере. В платформе есть возможность указания периода перезапуска рабочего процесса. можете ткнуть в где почитать про это? _VVP_4. "как отключать пользователей, если они какое-то время не работают" - никак, этого не требуется. Более того, это вредно. мм. ситуация: человек сформировал отчет. посмотрел. не закрыл. свалил. на день, ночь, на несколько часов. всё это время его сессия отжирает ресурсы. как с этим поступать? nicktcherЭто нормальный штатный режим работы SQL-сервера. Запрашиваемые данные кэшируются сервером для ускорения обработки. Не надо ничего трогать - sql-сервер саам отлично с этим управляется это в теории так. хорошо и отлично САМ. а на практике другая картина, и сам не надо. надо контролируемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2011, 20:09 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
nicktcherнаутилус... Очень активно используются временные таблицы в работе, в основном при построении отчетов. соответственно, память на сервере сиквела начиная с 7 утра выжирается и фиг потом освобождается. Это нормальный штатный режим работы SQL-сервера. Запрашиваемые данные кэшируются сервером для ускорения обработки. Не надо ничего трогать - sql-сервер саам отлично с этим управляется +1 SQL-сервер - это серверное ПО, и оно должно по возможности наиболее эффективно использовать ресурсы сервера. Поэтому если оно захапало себе всю память, оно просто-напросто пытается максимально эффективно использовать имеющиеся у сервера ресурсы, и это нормально. Чем больше размер всех кешей (который определяется динамически), тем больше сожрано оперативной памяти и тем меньше среднее время ответной реакции сервера на SQL-запрос. Открытые сессии, по идее, должны оставаться открытыми, если с этими сессиями кто-то работает. Если убить работающий процесс с помощью kill, то иногда это может привести к рассогласованию данных в БД, если разработчик не догадался взаимосвязанные изменения данных по множеству счетов, регистров, справочников, документов, обернуть в транзакцию. Если пользователь завершил сеанс, то сессия должна закрываться. Если она почему-то не закрывается, нужно работать конкретно над этой проблемой, и вопрос стоит совершенно иначе. Увеличение размера Tempdb тоже не столь трагично. Если размер этой БД увеличивается, значит ей это нужно. Значит большое количество пользователей запускает транзакции, в которых активно используются временные таблицы. Если размер Tempdb большой, значит его не нужно увеличивать, когда его размера не хватает. Необходимо помнить о том, что операции, связанные с изменением размера кешей, баз данных, занимаемой памяти, сами по себе ресурсоемки и вызывают задержки в отклике SQL-сервера. Поэтому не нужно возвращать сервер в то состояние, в котором он опять вынужден будет перестраиваться и приводить к подобным задержкам. Дайте ему возможность выйти в рабочий режим и лишний раз не трогайте. И, наконец, попытайтесь ответить на вопрос, зачем Вам нужна та память, которая не используется SQL-сервером. На сервере что, еще какое-то ПО запущено, которому эта память нужна? Если это так, то проблема как раз в этом. Не нужно на одном сервере запускать несколько разных программ, которые конкурируют между собой за ресурсы этого сервера. Потому что постоянный пересмотр, у кого отнять память и кому ее отдать, опять-таки вызывает "замирания" в работе всего ПО, которое на этом сервере используется. В принципе, SQL-сервер сам способен освобождать память, если ОС его об этом попросит. Если ОС его не просит, значит ей эта память, как бы без особой надобности. Ну и напоследок, Вы можете ограничить размер памяти, используемый SQL-сервером, если в этом действительно есть необходимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2011, 09:34 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
наутилус_VVP_1. какая версия платформы?8.2.13.219_VVP_Во встроенном языке запросов ключевое слово УНИЧТОЖИТЬ .не ручаюсь, но вроде бы это приводит к truncate table? сегодня проверим. сенкс.Применение этого ключевого слова приведет к DROP TEMPORARY TABLE.наутилус_VVP_3. "закрывать неиспользуемые соединения." - что имеется в виду? Если у вас зависают сессии после отключения пользователя из клиента, то разные методы есть, от версии платформы многое зависит.есть 1300 пользователей. из них 300 - центральный офис. если в терминале мы можем "закрывать" сессии простаивающие, то с клиентами из локальной сети как бороться?Бороться регламентом, административными методами. Либо методами системного администрирования - задав разрешенное время работы пользователя в домене. Либо встроить в конфигурацию механизм принудительного самоотключения пользователя в зависимости от его роли/территории.наутилуспочему хочу закрывать: если ночью происходит регламентная перезагрузка серверов ..., то после того как "ночники" зайдут и начинают работать - на сервере (сиквела) нет максимальной нагрузки. т.е. отжирают память и ресурсы "спящие" сессии. люди ушли с рабочих мест, но из базы не вышли.Вы же выкинули их регламентом? Разве нет?наутилус_VVP_Оптимально - периодический перезапуск рабочих процессов на сервере. В платформе есть возможность указания периода перезапуска рабочего процесса.можете ткнуть в где почитать про это?Поставляемая документация на платформу, в частности книга по администрированию сервера 1С. В свойствах рабочего процесса устанавливается время перезапуска р.п.наутилусмм. ситуация: человек сформировал отчет. посмотрел. не закрыл. свалил. на день, ночь, на несколько часов. всё это время его сессия отжирает ресурсы. как с этим поступать?см. выше.наутилусэто в теории так. хорошо и отлично САМ. а на практике другая картина, и сам не надо. надо контролируемо.Для того, чтобы что-то контролировать, нужно знать как это работает. Изучайте, потом сможете контролировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2011, 10:20 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
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-сервером, если в этом действительно есть необходимость. нет. нету ) понятно, что он (сиквел) не просто так память ест. и кроме него на этом сервере память больше никому не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2011, 18:39 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
_VVP_Применение этого ключевого слова приведет к DROP TEMPORARY TABLE. понял, буду знать. сейчас буду общаться с программистами. _VVP_наутилуспропущено... есть 1300 пользователей. из них 300 - центральный офис. если в терминале мы можем "закрывать" сессии простаивающие, то с клиентами из локальной сети как бороться?Бороться регламентом, административными методами. Либо методами системного администрирования - задав разрешенное время работы пользователя в домене. Либо встроить в конфигурацию механизм принудительного самоотключения пользователя в зависимости от его роли/территории. ну где-то так я и представлял себе этот процесс. _VVP_наутилуспочему хочу закрывать: если ночью происходит регламентная перезагрузка серверов ..., то после того как "ночники" зайдут и начинают работать - на сервере (сиквела) нет максимальной нагрузки. т.е. отжирают память и ресурсы "спящие" сессии. люди ушли с рабочих мест, но из базы не вышли.Вы же выкинули их регламентом? Разве нет? да. как их "выкинуть" не перегружая сервера, корректно? т.е. завершить сессии только неактивных пользователей. я сейчас себе представляю, что должен быть механизм определяющий "рабочесть" сессии пользователя по определённым критериям. если процесс не рабочий - 1С завершает работу, либо же продолжает работать. _VVP_наутилуспропущено... можете ткнуть в где почитать про это?Поставляемая документация на платформу, в частности книга по администрированию сервера 1С. В свойствах рабочего процесса устанавливается время перезапуска р.п. вот сейчас про это буду читать. что будет происходить в процессе перезапуска р.п. спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2011, 18:43 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
_VVP_, только что делали: 1) запрос: сиквел: т.е. первый раз он сам truncate table делает как отработанное, потом по команде Уничтожить. 2) зашел в базу, сделал несколько операций, открыл один отчет. Потом закрыл все формы 1С (саму 1С оставил) и сделал отчет Disk Usage by Table. все временные таблицы живы. Потом закрыл 1С и сделал отчет Disk Usage by Table ещё раз. Никаких таблиц Значит 1С 100% оставляет временные таблицы до выхода из 1С. с этим можно бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2011, 19:30 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
наутилус, Можно вопрос: Вам больше заняться нечем? Попробуйте объяснить, зачем вам нужны все эти телодвижения. Для чего разгонять пользователей, которые не выключили 1с? Для чего Вам освобождать память SQL сервера, зная, что она ему понадобиться и он ее все равно завтра опять всю займет? Вас что не устраивает скорость с которой работает система? Если так, то все эти телодвижения ну никак не дадут даже 1% прироста, а даже наоборот, приведет к ухудшению работы, так как тут уже объяснялось, что сервер подгружает и оставляет в памяти те куски базы, к которым идет наибольшее количество обращений на чтение и изменение. Так нафига принудительно эти куски базы выкидывать из памяти, чтоб на следующий день он их опять туда читал с диска, теряя драгоценное время. У меня количество пользователей в базе в порядок меньше, но на SQL сервере заняты все 30 гигов оперативы и я этим не комплексую Раз занял - значит так нужно. Более того, после перезагрузки сервера на 3-5 сек начинают дольше формироваться отчеты со сложными отборами. Так что не нужно этого всего. Лучше опишите глобальную проблему, может кто и сможет подсказать как ее решить... Модератор: вырезано... . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2011, 21:33 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
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! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2011, 21:43 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
наутилус, наутилусзатем, что бы "левые", отработавшие свое вещи не висели в памяти. что бы освободить эту память для текущих задач, а не заставлять сервер использовать дисковую подсистему. Так они висят в памяти 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с, как работает клиент-серверная связка. Там это есть. Много вопрос снимется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2011, 22:09 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
наутилус, достаточно перезагружать сервер SQL, через некоторое время. tempdb при этом почиститься автоматом, ну и соединения само-собой. кстати - это одна из рекомендаций 1С. просто выбери время для этого... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2011, 19:16 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
В свойствах кластера 1C предприятия есть параметр: "Выключенные процессы останавливать через" - попробуй может поможет с освобождением процессов, там же находиться перезапуск рабочих процессов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2012, 08:58 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
djseregaВ свойствах кластера 1C предприятия есть параметр: "Выключенные процессы останавливать через" - попробуй может поможет с освобождением процессов, там же находиться перезапуск рабочих процессов при этом пользователей выбрасывает. что недопустимо при наших процессах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2012, 12:03 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
наутилусdjseregaВ свойствах кластера 1C предприятия есть параметр: "Выключенные процессы останавливать через" - попробуй может поможет с освобождением процессов, там же находиться перезапуск рабочих процессов при этом пользователей выбрасывает. что недопустимо при наших процессах УФ+тонкий клиент - не выбрасывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2012, 12:07 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
pailнаутилуспропущено... при этом пользователей выбрасывает. что недопустимо при наших процессах УФ+тонкий клиент - не выбрасывает. вот и пишем... тонкий клиент )).... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2012, 12:08 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
Атоматом - определить простой пользователя можно через 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-сервер саам отлично с этим управляетсяэто в теории так. хорошо и отлично САМ. а на практике другая картина, и сам не надо. надо контролируемо. Не забываем о парадигме пула соединений... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2012, 16:45 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
наутилусзашел в базу, сделал несколько операций, открыл один отчет. Потом закрыл все формы 1С (саму 1С оставил) и сделал отчет Disk Usage by Table. все временные таблицы живы. ... Значит 1С 100% оставляет временные таблицы до выхода из 1С. с этим можно бороться? А как 1С должна догадаться о том, что эти таблицы стали Вам не нужны. Сами создали - сами и уничтожте. В противном случае они только при закрытии сессии будут уничтожаться. Это всегда так было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2012, 16:50 |
|
||
|
1С 8.2 + MS SQL
|
|||
|---|---|---|---|
|
#18+
The Dim! Чесно говоря, не знаю, как реализованы временные таблицы в запросах 1С - как временные таблицы cиквеля (скорее всего и тогда понтно откуда рост tempdb) или как табличные переменные (они располагаются в оперативке, и только по необходимости свопятся в tempdb). как временные таблицы cиквеля - вот именно так. The Dim!Вероятно дело не только в самих по себе временных таблицах, а в запросах вообще...верне в их построении. Так что вопрос очень интересный, мусор ли это 1С или просто она так транслирует запросы в запросы сиквеля. дело в том, что в запросах на языке 1С я (например) джойню две таблицы по одному полю. в сиквеле это всё разворачиваться может в сумашедшие join - потому что одно поле 1С может в физической модели БД представлять 3 поля. и т.д. или запрос "Срез последних" - это тоже транслируется в определённые, не маленькие t-sql запросы. The Dim!А как 1С должна догадаться о том, что эти таблицы стали Вам не нужны. Сами создали - сами и уничтожте. В противном случае они только при закрытии сессии будут уничтожаться. Это всегда так было. а я указываю в 1С "Уничтожить". только нифига оно не освобождает (не удаляет) таблицы. там, выше, писал об экспериментах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2012, 17:02 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=37331915&tid=1520732]: |
0ms |
get settings: |
10ms |
get forum list: |
25ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 453ms |

| 0 / 0 |
