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

Откуда:
Сообщений: 13
Всем привет.
Дано:
Сервер HP ProLiant 380G7 96 Gb RAM, 2xXeon, Raid5 на дисках HP 72Gb 15k.
На этом сервере установлен ESXi и под ним живут 3 сервера - терминальный, сервер 1С (8.2 УПП), и SQL 2008R2 x64 сервак.
Терминальный - 4 ядра, 16Gb Ram
Сервер 1С - 4 ядра, 16Gb Ram
Сервер SQL - 8 ядер, 32 Gb Ram
На всех серверах установлена Windows 2008R2 x64.
Размер базы - 40Gb.
Одновременно работающих бухгалтеров порядка 30 человек, но тяжелые проводки проводятся ночью, когда никого нет в базе.

В чем проблема:
Когда наступает конец месяца, и начинаются проводки тяжелых документов, то обработка одного из них длится 2.5-3.5 часа.
При всем при этом загрузка процессоров, сети, дисков минимальна (<30% в пике).Оперативки также всем машинам хватает, разве что только скуль жрет всю предоставленную ему память (28Gb из 32) но это нормально.
Пробовал ставить "Max Dergee of Paralleism" в 1 и в 4 - разницы никакой. Разговаривал с конторой, которая нам донастраивала 1Ску - говорят что конкретно данную функцию своими руками не трогали и она стандартная (расчет себестоимости производства, если кому интересно). Вызвал их к нам. Пришли, посмотрели код и резюмировали, что 78% времени проводки тратится на запись каких-то мелких значений в таблицу.На мое резонное замечание что очереди к диску нет и он свободен - тактично промолчали.
Регламентные работы по базам SQL - перестройка индексов, шринк базы, обновление статистик и т.д. и т.п. - пробовал все. Не помогает.
Вопрос:
Как заставить 1С нормально загружать SQL сервак своими запросами?
Пока подумываю сграбить SQL запросы которые 1С посылает во время этой обработки и в них покопаться, может чего оптимизировать можно.Верно ли я мыслю?
Может стоит обновить железо?Хотя куда его обновлять, если данное железо работает на 20% от своего потенциала я не знаю.





P.S. нагрузку на железо смотрел и средствами винды и средствами ESXi. Картина везде примерно одинаковая, до 100% загрузки там очень и очень далеко.То что многое не советуют SQL ставить на виртуальную машину я также в курсе.
16 ноя 13, 19:12    [15141891]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
Есть возможность все диски заменить на SSD. Но поможет ли?Надежно ли?
16 ноя 13, 19:41    [15141945]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34005
Блог
Fedor_S
Когда наступает конец месяца, и начинаются проводки тяжелых документов, то обработка одного из них длится 2.5-3.5 часа.


снимайте данные по блокировкам, планам, показаниям счетчиков в этот момент,
тогда можно о чем-то говорить
16 ноя 13, 19:49    [15141959]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
Критик,
а конкретные SQL запросы не напишите мне случайно?
И еще одно уточнение - когда происходит обслуживание баз данный средствами SQL то загрузка дисков идет по полной программе (до 200 мегабайт в сек, судя по Activity Monitor в SQL) а вот 1Ска не может так диски загрузить...
16 ноя 13, 19:53    [15141965]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
Дал серверу SQL 64 Гига ОЗУ и перенес его на другой хост (точно такой же на котором и был, но теперь на нем крутится он один, без терминального сервера и сервера 1С, т.е. диски только в распоряжении SQL, больше их никто не трогает)Посмотрим что будет завтра. Пока запустил по одной из баз план обслуживания...
16 ноя 13, 20:10    [15141986]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Fedor_S
Регламентные работы по базам SQL - перестройка индексов, шринк базы, обновление статистик и т.д. и т.п. - пробовал все. Не помогает.
Попробуйте базу удалить, этого вы точно не пробовали. А если серьезно, то я не понимаю, зачем, ну зачем люди делают шринк базы!? Особенно как регламент.


Ожидания смотрели?

WITH Waits AS
(SELECT wait_type, wait_time_ms / 1000. AS wait_time_s,
100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct,
ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn
FROM sys.dm_os_wait_stats WITH (NOLOCK)
	WHERE wait_type NOT IN (N'CLR_SEMAPHORE', N'LAZYWRITER_SLEEP', N'RESOURCE_QUEUE',N'SLEEP_TASK',
			                N'SLEEP_SYSTEMTASK', N'SQLTRACE_BUFFER_FLUSH', N'WAITFOR', N'LOGMGR_QUEUE',
			                N'CHECKPOINT_QUEUE', N'REQUEST_FOR_DEADLOCK_SEARCH', N'XE_TIMER_EVENT',
			                N'BROKER_TO_FLUSH', N'BROKER_TASK_STOP', N'CLR_MANUAL_EVENT', N'CLR_AUTO_EVENT',
			                N'DISPATCHER_QUEUE_SEMAPHORE' ,N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'XE_DISPATCHER_WAIT',
			                N'XE_DISPATCHER_JOIN', N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP', N'ONDEMAND_TASK_QUEUE',
			                N'BROKER_EVENTHANDLER', N'SLEEP_BPOOL_FLUSH', N'SLEEP_DBSTARTUP', N'DIRTY_PAGE_POLL',
			                N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',N'SP_SERVER_DIAGNOSTICS_SLEEP'))

SELECT W1.wait_type, 
CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2
ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 99 OPTION (RECOMPILE); -- percentage threshold
19 ноя 13, 04:14    [15152054]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
maximaz
Member

Откуда:
Сообщений: 11
Это особенности 1С - выполнение расчетов в курсоре. Соответственно вопрос, чем вам может помочь замена дисков в случае, когда 1С последовательно (по одной) обрабатывает все партии продукции

Расчет себестоимости 2.5 часа это немного. Кто-то переписывает процедуру расчета себестоимости. что-бы уложиться в ночь

Имеет смысл обратиться в профильный форум
19 ноя 13, 07:56    [15152140]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
Mind,

по поводу ожиданий...
Тут вылезла новая проблемка. Во время расчета себестоимости этот самый расчет просто напросто виснет. за 9-10 часов он не проводится.Висит и все.Приходится принудительно отрубать главбуха с утра, чтобы бухгалтерия могла работать.
Ставил эксперимент на копии главной базы, в которой никто не работает. Расчет себестоимости проходит. В основной - ни в какую.
Ниже выкладываю ожидания на момент когда расчет повис.Расчет запустили в 21.00, скрин на 9.00 утра.

[IMG]http://s018.radikal.ru/i519/1311/cb/211b4043e1b0.jpg[/IMG]

По поводу CXPACKET - я чисто ради эксперимента поставил MAX DEGREE of Paralelizm = 0. Оттуда они и взялись.
Но проблема уже не в том, что база медленно считается, а в том, что расчет просто виснет.
22 ноя 13, 09:20    [15172134]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Fedor_S
Во время расчета себестоимости этот самый расчет просто напросто виснет.
"Виснет" - это же что то конкретное.

Что делает сервер? Какие запросы выполняет? Что там блокируется? Или долго выполняется какой то запрос?

Это главбух может говорит - расчёт виснет, а специалист должен посмотреть на место "зависания", в отличие от "медленной работы" это вещь достаточно конкретная.
22 ноя 13, 09:51    [15172285]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
maximaz
Это особенности 1С - выполнение расчетов в курсоре. Соответственно вопрос, чем вам может помочь замена дисков в случае, когда 1С последовательно (по одной) обрабатывает все партии продукции
Ну, если в курсоре действительно делаются мелкие записи в базу, всё это не в общей транзакции, да ещё и нету кеша записи на диск - то вполне возможно, что причина в дисковой подсистеме (включая наслоение виртуализации).

Нет очереди к диску? - так откуда ей взяться, если в курсорном цикле к диску отправляется по одной операции записи, а потом ожидание, когда эта запись физически будет зафиксирована на магнитной поверхности.
22 ноя 13, 09:56    [15172309]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
alexeyvg,
кеш для рейда есть, 256 МБ.
22 ноя 13, 11:30    [15172795]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
alexeyvg,

в этом то вся и проблема. На долго повесить (и не факт что получится, виснет не каждый раз) и исследовать рабочую базу нельзя, бухгалтерия взвоет. На выходных тоже проблема ибо предприятие 24/7 работает. Буду искать компромисс.
Блокировок судя по отчетам там нет, иначе счетчик блокировок бы зашкаливал.
Если я все-таки договорюсь с главбухом о приостановке их работы и исследование зависшей базы, то не подскажете мне случайно где смотреть? На SQL или на 1С?В 1С я не силен, в SQL еще более или менее. Если в скуле смотреть то где конкретно?И как?Запросы?
22 ноя 13, 11:35    [15172842]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Fedor_S
в этом то вся и проблема. На долго повесить (и не факт что получится, виснет не каждый раз) и исследовать рабочую базу нельзя, бухгалтерия взвоет. На выходных тоже проблема ибо предприятие 24/7 работает. Буду искать компромисс.
Ну как, увидели зависание - посмотрели, что происходит.

Конечно, если есть возможность подольше поработать с зависшей базой, то это хорошо.
Fedor_S
На SQL или на 1С?В 1С я не силен, в SQL еще более или менее. Если в скуле смотреть то где конкретно?И как?Запросы?
По 1С - это в другой форум, не в курсе.

А по SQL очевидно - записать трейс запросов и поснимать блокировки.
Fedor_S
Блокировок судя по отчетам там нет, иначе счетчик блокировок бы зашкаливал.
Ну, эээ, одной блокировкой можно повесить базу на год :-) Так что если счётчик блокировок больше 1, то это тоже рассматривайте :-)
22 ноя 13, 12:37    [15173324]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
alexeyvg,
по мимо счетчика блокировок, есть общее время блокировок. и оно за неделю составило 200 секунд. так что я думаю что это не надо рассматривать.хотя все может быть.

"Ну как, увидели зависание - посмотрели, что происходит." хехе) зависание увидеть не возможно ибо все очень медленно шевелится, сервак стоит практически свободный :) Я лишь знаю примерное время выполнения этой проводки, прибавляю к нему час и смотрю, провелось или нет. Если нет, то можно начинать исследование.По другому - никак.

Вопросик, как записать трейс запросов и поснимать блокировки? На SQL сервере крутится порядка 15 баз и трейс идет по ним всем. Как его снять по одной конкретной базе?
22 ноя 13, 13:03    [15173539]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Fedor_S
"Ну как, увидели зависание - посмотрели, что происходит." хехе) зависание увидеть не возможно ибо все очень медленно шевелится, сервак стоит практически свободный :)
В смысле, невозможно выполнить запрос в SSMS??? "все очень медленно шевелится" - что именно не шевелится? Notepad не запускается?

Может вообще что то с виртуалкой?
22 ноя 13, 13:07    [15173568]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Fedor_S
по мимо счетчика блокировок, есть общее время блокировок. и оно за неделю составило 200 секунд.
Это какое поле какого представления? Вы конкретнее говорите.
22 ноя 13, 13:12    [15173619]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Fedor_S
На SQL сервере крутится порядка 15 баз и трейс идет по ним всем. Как его снять по одной конкретной базе?

Какой именно "трейс" идёт по базам? Как он настроен, откуда запущен? Трейс снимается через профайлер, через процедуры sp_trace_*, или ещё как-то?
22 ноя 13, 13:22    [15173705]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
Гость333,

Трейс смотрю через профайлер.

вот результат по ожиданиям:

select wait_type, waiting_tasks_count, wait_time_ms, max_wait_time_ms, signal_wait_time_ms
from sys.dm_os_wait_stats
where wait_time_ms + signal_wait_time_ms<>0
order by wait_time_ms + signal_wait_time_ms desc

http://s020.radikal.ru/i710/1311/16/675699389539.jpg

Медленно шевелится сама обработка. Сервак не загружен практически. Когда обработка "зависла" как посмотреть? Я могу только по примерному времени.
Запрос запросто можно выполнить, не известно в какой момент времени его выполнять. Как убедится что обработка повисла то?
и какой запрос? подскажите пожалуйста.
22 ноя 13, 13:45    [15173933]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Fedor_S
Трейс смотрю через профайлер.

При запуске трейса можно задавать различные фильтры, в том числе и по имени БД.
Сам профайлер тоже даёт нагрузку на сервер БД, иногда довольно большую — вплоть до помирания оного сервера.
22 ноя 13, 14:12    [15174221]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Гость333
Сам профайлер тоже даёт нагрузку на сервер БД, иногда довольно большую

Хотя вряд ли это ваш случай.
22 ноя 13, 14:13    [15174229]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
Гость333,

вопрос в догонку - регламентные работы, например резервное копирование базы, чисто теоретически может повесить эту проводку?
А бэкап всего сервера сторонними средствами, в частности у нас ArcServe для этого.
22 ноя 13, 15:06    [15174747]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Antoshka
Member

Откуда:
Сообщений: 828
Тынц Копайте код 1С
22 ноя 13, 16:01    [15175299]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Fedor_S
Запрос запросто можно выполнить, не известно в какой момент времени его выполнять. Как убедится что обработка повисла то?
и какой запрос?
Ну вы же пишете:
Fedor_S
Тут вылезла новая проблемка. Во время расчета себестоимости этот самый расчет просто напросто виснет. за 9-10 часов он не проводится.Висит и все.
То есть вы знаете, что нечто у вас повиснет, если нажать вот эту кнопку.

Ну вот, запускаете трейс, и нажимаете кнопку. И смотрите, что делает сервер в ответ на нажатие кнопки, и почему "повис".

Вообще у вас же должна быть тестовая среда? Можно это всё смотреть без других баз, пользоваетлей, приложений?
Fedor_S
На долго повесить (и не факт что получится, виснет не каждый раз) и исследовать рабочую базу нельзя, бухгалтерия взвоет.
Отчего "бухгалтерия взвоет"?
У вас же виснет конкретный запрос к БД или что?
22 ноя 13, 17:58    [15176174]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
alexeyvg,
виснет проводка за месяц. ее необходимо починить до конца этого месяца.Сейчас ее вешаем ради эксперимента. В тот самый момент когда происходит зависание, никто не может провести ниодин документ в этой базе(даже самый маленький, ибо проводка накладывает блокировки)
Тестовая база есть, она является копией рабочей, но проблема в том, что в тестовой все проводится.
23 ноя 13, 08:36    [15178222]     Ответить | Цитировать Сообщить модератору
 Re: И опять вопрос по связке 1С и SQL Server  [new]
Fedor_S
Member

Откуда:
Сообщений: 13
Fedor_S,

повесил на выходных базу и поисследовал ее профайлером. Вот результаты исследований:

Профиль в профайлере TSQL_Locks

[IMG]http://s45.radikal.ru/i109/1311/4c/4647877be77ct.jpg[/IMG]

Профиль в профайлере пользовательский, отслеживает все SQL запросы к конкретной базе:

[IMG]http://s020.radikal.ru/i711/1311/cc/5336440114d4t.jpg[/IMG]

Профиль в профайлере Tuning:

[IMG]http://s020.radikal.ru/i722/1311/9c/706821fdba94t.jpg[/IMG]

P.S.
Во время данных замеров никого кроме зависшего сеанса небыло.
Какие соображения господа?
24 ноя 13, 10:07    [15180939]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить