Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 tеmpdb неконтролируемый рост  [new]
Alissa
Member

Откуда: Страна Чудес
Сообщений: 424
Добрый день.
Подскажите, как решить проблему существенного вырастания в размерах базы Tеmpdb?
Базы на сервере используют разработчики 1С. Как выяснилось, периодически запускают кривые запросы, которые подвисают, и приводят к росту базы tеmpdb.
Tеmpdb не шринкается, после перезапуска сервера не возвращается к исходному размеру автоматически (хотя должна бы). Приходится в нерабочее время разными манипуляциями ее уменьшать.
Как можно решить эту проблему?
30 янв 18, 09:24    [21149610]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33675
Блог
Alissa,

исправить "кривые запросы"?
30 янв 18, 09:49    [21149663]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Alissa
Member

Откуда: Страна Чудес
Сообщений: 424
Критик, предлагала. 1сники обвиняют код подрядчиков и упирают на то, что у них нет времени оптимизировать каждый запрос (типа их слишком много).
Я в 1С не разбираюсь, поэтому трудно критически оценить, насколько это верно, и должно ли так быть?
О том, что причина в кривом запросе тоже удалось узнать случайно, ранее они не признавались, преподнося рост базы, как "неожиданность, сбой sql, а мы ни при чем".
30 янв 18, 10:28    [21149770]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Alissa
Member

Откуда: Страна Чудес
Сообщений: 424
Интересно, что база tеmpdb выросла и стала в 10 раз больше продуктивной базы.
30 янв 18, 10:37    [21149803]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
архивариус
Member

Откуда:
Сообщений: 150
посмотрите всю тему тут:
Рост tempdb
30 янв 18, 10:41    [21149832]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
архивариус
Member

Откуда:
Сообщений: 150
руки не дошли реализовать поэтому только мысли вслух:

1.ищете в инете скрипт sp_WhoIsActive

2. запускать как то так
EXEC БазаГдеСоздадитеSP.dbo.sp_WhoIsActive
 @get_plans = 2
, @get_full_inner_text = 1
, @get_outer_command = 1
, @get_task_info = 2;


в данном случае интересует tempdb_current (в страницах (8K))

3. автоматизируете п.2 чтобы при превышении какого то порога (придумайте в зависимости от размера tempdb который ваш сервер может переварить нормально) сохранять текст запроса (sql_text,sql_command,query_plan), базу к которой он относится (1С) и т.п. для разборок с разработчиками 1С и киляете его.
30 янв 18, 10:55    [21149915]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
архивариус
Member

Откуда:
Сообщений: 150
Alissa
1сники обвиняют код подрядчиков и упирают на то, что у них нет времени оптимизировать каждый запрос (типа их слишком много).
Я в 1С не разбираюсь, поэтому трудно критически оценить, насколько это верно, и должно ли так быть?
О том, что причина в кривом запросе тоже удалось узнать случайно, ранее они не признавались, преподнося рост базы, как "неожиданность, сбой sql, а мы ни при чем".

если не оптимизировать запрос приведенный мной выше, то каждому жителю планеты нужно закупить серверов на десятки терабайт темпдб и всё равно этому запросу места не хватит!
30 янв 18, 11:05    [21149969]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
ну раз не хотят переписывать по-хорошему,
ограничьте сверху размер темпдб.
допустим, 100Гб выставьте и прирост запретите.
сами будут отваливаться.
и будут вынуждены переписывать свои творения
30 янв 18, 11:37    [21150173]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Yasha123
ну раз не хотят переписывать по-хорошему,
ограничьте сверху размер темпдб.
допустим, 100Гб выставьте и прирост запретите.
сами будут отваливаться.
и будут вынуждены переписывать свои творения
+1
Отлавливать прожорливые tempdb запросы конечно можно, а дальше то что? Прибивать? Ну так того же эффекта можно достичь лимитировав tempdb, только мороки меньше, да и 1С в этом случае будет получать нормальное сообщение что место кончилось, а не что меня прибил злой сисадмин.
31 янв 18, 02:10    [21152935]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7358
Проверьте для начала

DBCC useroptions

isolation level
31 янв 18, 03:07    [21152944]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
архивариус
Member

Откуда:
Сообщений: 150
Relic Hunter
Проверьте для начала
DBCC useroptions
isolation level

я не ТС , но мне тоже интересно:
базы
1c_upp read committed
1c_zup read committed snapshot
проблемы с темпдб бывают и там и там, где разработчики накосячят...
31 янв 18, 09:44    [21153216]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Alissa
Интересно, что база tеmpdb выросла и стала в 10 раз больше продуктивной базы.
Боян.
Неуёмное использование временных таблиц в отчетах/обработках.
Очень типично для 1С.

Резать темпДБ на лету хоть умеете ?
31 янв 18, 10:23    [21153370]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
LSV
Alissa
Интересно, что база tеmpdb выросла и стала в 10 раз больше продуктивной базы.
Боян.
Неуёмное использование временных таблиц в отчетах/обработках.
Очень типично для 1С.

Резать темпДБ на лету хоть умеете ?

я так понимаю, что это действие что бы просто устать?
31 янв 18, 10:31    [21153399]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
TaPaK
я так понимаю, что это действие что бы просто устать?

"вспотел - покажись начальству" (С) ))
31 янв 18, 11:30    [21153651]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
TaPaK
я так понимаю, что это действие что бы просто устать?
Про какое действие речь ?
31 янв 18, 13:39    [21154156]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
LSV
TaPaK
я так понимаю, что это действие что бы просто устать?
Про какое действие речь ?

Резать темпдб, резать темпдб "на лету", с учётом того что она отскочет на теже размеры после следующих кривых запросах или по вашему она расёт потому что взрослеет?
31 янв 18, 13:43    [21154172]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
TaPaK
LSV
пропущено...
Про какое действие речь ?

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

зы: я этим занимаюсь каждый день. База 24/7 ок.0.8Т и темпДБ бывает под 0.8Т (это "творит" всего один сраный отчет).
31 янв 18, 16:22    [21154949]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Alissa
Member

Откуда: Страна Чудес
Сообщений: 424
LSV
TaPaK
пропущено...

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

зы: я этим занимаюсь каждый день. База 24/7 ок.0.8Т и темпДБ бывает под 0.8Т (это "творит" всего один сраный отчет).

Проблема еще в том, что на лету не шринкается база.
Даже после ребута сервера база темпдб остается такая же, как была. Хотя по доке должна вернуться к исходному размеру.
1 фев 18, 09:51    [21156558]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Alissa,

DBCC OPENTRAN на tempdb что показывает
1 фев 18, 09:54    [21156569]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Alissa
Member

Откуда: Страна Чудес
Сообщений: 424
LSV
Alissa
Интересно, что база tеmpdb выросла и стала в 10 раз больше продуктивной базы.
Боян.
Неуёмное использование временных таблиц в отчетах/обработках.
Очень типично для 1С.

Резать темпДБ на лету хоть умеете ?

Шринк без реорганизации страниц уменьшает ее всего на сотню мегабайт, несущественно по сравнению с объемом базы.
1 фев 18, 09:56    [21156574]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Alissa
Member

Откуда: Страна Чудес
Сообщений: 424
TaPaK
Alissa,

DBCC OPENTRAN на tempdb что показывает

В данный момент не могу посмотреть, позже гляну.
Скорее всего есть открытые транзакции (подвисшие запросы).
Потому что шринк с реорганизацией страниц подвисал в мониторе активности в статусе SUSPEND.
1сники сообщали, что не могут в 1с убить свои подвисшие запросы.
1 фев 18, 10:03    [21156602]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Alissa
TaPaK
Alissa,

DBCC OPENTRAN на tempdb что показывает

В данный момент не могу посмотреть, позже гляну.
Скорее всего есть открытые транзакции (подвисшие запросы).
Потому что шринк с реорганизацией страниц подвисал в мониторе активности в статусе SUSPEND.
1сники сообщали, что не могут в 1с убить свои подвисшие запросы.

тогда какого чуда вы хотите? убивайте всех
1 фев 18, 10:18    [21156668]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Alissa
Проблема еще в том, что на лету не шринкается база.
Даже после ребута сервера база темпдб остается такая же, как была. Хотя по доке должна вернуться к исходному размеру.
Это вы мне рассказываете ???!!! :)
Конеш сама она не шринкается. Это нужно делать вручную. Но без остановки системы.
Но есть ньюансы:
если темпДБ в данный момент сильнонагружена (частая проблема на 1С), то шринк может не дать результатов.
Но... если определить виновника(ов) и грохнуть его из 1С консоли или SSMS, то шринк увенчается успехом.

Делаю так:
сначала 1 раз dbcc shrinkfile ('templog')
потом неск. раз dbcc shrinkfile ('tempdev',200000)
где 200000 - объем в Мб целевого размера, т.е. какой размер должен остаться.

Выставляйте сначала 80% от уже занятого места и постепенно уменьшайте. Если сделать сразу мало, то может зафейлиться.
На больших нагруженных базах (ок. 1Т) может выполняться долго: иногда больше часа. А также может быть заблокирован к-л процессом (Blocked By xx). Если этот процесс грохнуть (KILL xxx), то скорее всего попустит.
Иногда приходится немного ждать и повторять процесс.

После ребута, ТемпДБ будет без активных процессов, и ее можно одним махом радикально урезать.
1 фев 18, 10:51    [21156822]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Alissa
Даже после ребута сервера база темпдб остается такая же, как была. Хотя по доке должна вернуться к исходному размеру.

значит, ей этот начальный размер поменяли.
без вашего ведома
1 фев 18, 11:00    [21156856]     Ответить | Цитировать Сообщить модератору
 Re: tеmpdb неконтролируемый рост  [new]
nvv
Member

Откуда:
Сообщений: 54
Разработчики 1с не разбирающиеся в СУБД + DBA не разбирающийся в программировании - самая вредная связка какая только может быть. Без пересекающихся знаний не решите ничего.
Пригласите 1с эксперта (есть такая сертификация). Этот человек расскажет вам и вашим программистам все и о правильном программировании в 1с, и правильной эксплуатации mssql и PG (знаний oracle и db2 сейчас не требуют).

Хороший программист сам может решить все вопросы с СУБД.
Хороший DBA сам скажет какими запросами программисты убили ЦПУ, диски, вымыли кэши, съели tempdb и т.д. - программистам через техжурнал 1с останется только получить номера строк в модулях с вызовом этих запросов. (но скорей всего они скажут "а мы не умеем, вы сами во всем виноваты!" )
1С Эксперт умеет это все без чьей либо "помощи".
3 фев 18, 20:35    [21163333]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить