Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Медленная работа связки SQL+1C  [new]
Richard Parker
Member

Откуда:
Сообщений: 5
Добрый день! Прошу дельного совета от гуру форума.
Имеется:
отдельно выделенный сервер под Sql 2008 Standard (ос-win 2008 enterprise, озу 160 гб), отдельно выделенный сервер под 1С 8.3 (oc - win server 2008 st , озу 32 гб).
И всё было неплохо, пока руководство не пригласило внедренцев осуществить переход бухгалтерии с 7.7 на 8.
И вот при запуске какого-то расчета происходит зависание базы, чувствуют медленную работу остальные пользователи (~200 онлайн). И вроде как раньше было лучше. Хотя другая база, тот же документооборот крутится нормально. В этот момент сервер бд работает в обычном режиме, не зависает, проц не загружен, память 75-80гб занято. Тоже самое и с сервером 1С, всё норм.
Естественно, в этой медленной работе виноваты местные администраторы (наш отдел), у которых что-то неправильно настроено и слабые сервера и слабая сеть (48-портовые гигабитные Dlink).
По удаленному совету их сотрудника добавили в план перестроение индекса, кроме того, что база ожидаемо с 45гб выросла до 65 гб и лог с 7 до 22 больше ничего не произошло. Ну лог мы можем отцепить, ибо модель восстановления простая, достаточно полного бэкапа утром, в обед и после рабочего дня. Но вот увеличившаяся база стала небольшой проблемой, ибо рабочая копия часто разворачивается в тестовые базы на тестовом сервере для программистов, и свободного дискового пространства там стало резко не хватать. Следовательно, первый вопрос: как-то можно уменьшить размер бд, кроме нежелательной операции Сжатия? Ну даже если нельзя, эту неприятность мы как-нибудь переживем.
Но вот непосредственное начальство жестко поставило задачу разобраться с быстродействием. Понятно, что этот вопрос скорее для той же мисты, но тем не менее, как-то можно убедиться что проблемы именно на нашей стороне из-за неправильной работы sql или также доказать, что у нас всё ок.
Может есть что-то для проверки, типа теста Гилева или какой-нибудь скрипт?
Можно конечно ерничать и посоветовать нанять нормального администратора бд или прочитать документацию по sql, но может есть у кого-то дельные советы? Заранее спасибо за любую помощь.
27 окт 15, 21:37    [18335073]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
Richard Parker
Естественно, в этой медленной работе виноваты местные администраторы (наш отдел), у которых что-то неправильно настроено и слабые сервера и слабая сеть (48-портовые гигабитные Dlink).
Так пусть внедренцы, раз они такие квалифицированные и во всём разобрались, не скрывают эту информацию, а честно всё расскажут - с результатами замеров, выводами.

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

Или, если они не хотят или не могут, то, действительно, вам нужны админы, которые в этом могут разобраться. По симптому "медленно" никто не разберётся в проблеме.
Richard Parker
В этот момент сервер бд работает в обычном режиме, не зависает, проц не загружен, память 75-80гб занято.
А с дисками, с дисками что? Очереди есть?
Richard Parker
По удаленному совету их сотрудника добавили в план перестроение индекса, кроме того, что база ожидаемо с 45гб выросла до 65 гб и лог с 7 до 22 больше ничего не произошло.
Хороший совет - при простаивающем сервере СУБД и отсутствии нагрузки перестроить индексы :-)
28 окт 15, 00:37    [18335489]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Richard Parker
Member

Откуда:
Сообщений: 5
alexeyvg
А с дисками, с дисками что? Очереди есть?


Длина очереди 0,03-0,15.

Хотя запустил perfmon, на пару часов, так вот показатели диск С 0,02-0,10 на протяжении 2-х часов, D (на котором SQL развернут) - вот такие:
+

10/28/2015 09:00:19.951,"0.064079999999999998"
10/28/2015 09:00:39.953,"0.34351895962680812"
10/28/2015 09:00:59.953,"0.060725000607250008"
10/28/2015 09:01:19.953,"0.04851032138087915"
10/28/2015 09:01:39.953,"0.084725000847250015"
10/28/2015 09:01:59.953,"0.63169500631695008"
10/28/2015 09:02:19.953,"0.11126500111265002"
10/28/2015 09:02:39.953,"0.053400000534000007"
10/28/2015 09:02:59.953,"0.086770000867700009"
10/28/2015 09:03:19.953,"0.24607500246075004"
10/28/2015 09:03:39.953,"0.10077500100775001"
10/28/2015 09:03:59.953,"0.1701800017018"
10/28/2015 09:04:19.953,"0.12187500121875001"
10/28/2015 09:04:39.953,"0.17210000172100001"
10/28/2015 09:04:59.953,"130.56830630568305"
10/28/2015 09:05:19.953,"42.946300429463001"
10/28/2015 09:05:39.953,"0.11495000114950001"
10/28/2015 09:05:59.953,"0.084380000843800013"
10/28/2015 09:06:19.953,"0.077275471380375424"
10/28/2015 09:06:39.953,"0.045650000456500008"
10/28/2015 09:06:59.953,"0.12834500128345"
10/28/2015 09:07:19.953,"0.070905000709050009"
10/28/2015 09:07:39.951,"0.17638238204321943"
10/28/2015 09:07:59.951,"0.028799999999999999"
10/28/2015 09:08:19.951,"0.044795000000000001"
10/28/2015 09:08:39.951,"0.11797000000000001"
10/28/2015 09:08:59.951,"0.043299999999999998"
10/28/2015 09:09:19.951,"4.9908586565373847"
10/28/2015 09:09:39.951,"2.2410564225690277"
10/28/2015 09:09:59.951,"2.273555"
10/28/2015 09:10:19.951,"3.0496599999999998"
10/28/2015 09:10:39.951,"0.02895"
10/28/2015 09:10:59.951,"0.25952999999999998"
10/28/2015 09:11:19.951,"532.47609319979574"
10/28/2015 09:11:39.951,"205.35780500000001"
10/28/2015 09:11:59.951,"0.057419999999999999"
10/28/2015 09:12:19.951,"1.1233850000000001"
10/28/2015 09:12:39.953,"0.19995594809574757"
10/28/2015 09:12:59.953,"3.3425200334252003"
10/28/2015 09:13:19.953,"1.8401050184010501"
10/28/2015 09:13:39.953,"4.4657850446578502"
10/28/2015 09:13:59.953,"2.7837950278379502"
10/28/2015 09:14:19.953,"2.9852050298520503"
10/28/2015 09:14:39.953,"3.2645650326456503"
10/28/2015 09:14:59.953,"345.80739845807398"
10/28/2015 09:15:19.953,"0.042525000425250002"
10/28/2015 09:15:39.953,"0.49536500495365005"
10/28/2015 09:15:59.953,"1.7357650173576502"
10/28/2015 09:16:19.952,"3.243594894590816"
10/28/2015 09:16:39.953,"2.5805309863533372"
10/28/2015 09:16:59.953,"2.6858900268589001"
10/28/2015 09:17:19.953,"0.18682500186825002"
10/28/2015 09:17:39.953,"0.16766000167660003"
10/28/2015 09:17:59.953,"0.22325500223255001"
10/28/2015 09:18:19.953,"2.2710900227109003"
10/28/2015 09:18:39.953,"3.0439200304392005"
10/28/2015 09:18:59.953,"0.95742500957425014"
10/28/2015 09:19:19.953,"0.33443500334435006"
10/28/2015 09:19:39.953,"0.29667000296670004"
10/28/2015 09:19:59.953,"1.4297700142977001"
10/28/2015 09:20:19.953,"3.0468800304688002"
10/28/2015 09:20:39.953,"1.2079950120799501"
10/28/2015 09:20:59.953,"0.18470000184700003"



автор
Или, если они не хотят или не могут, то, действительно, вам нужны админы, которые в этом могут разобраться.


Да мы всегда открыты к диалогу, не считаем себя профессионалами, согласны на аудит, пожалуйста, без проблем. Это те ребята встали в позу, мол, сервера хреновые скорее всего, только в серверную мы никого не водили, но диагноз уже поставили.
28 окт 15, 10:04    [18336189]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Richard Parker,

Очередь к диску нужно всегда смотреть одновременно со скоростью записи и чтения на этот диск, потому как бывает косяк в контроллере когда очереди нет, скорость на нуле, а в скуле сплошные pagelatch, или очередь до небес, а скорость чтения\записи как у usb флешки.

Со стороны сиквела, для начала сбросьте счетчики ожидания и помониторьте день как они будут наполняться.
--обнулить счетчики
DBCC SQLPERF ( "sys.dm_os_wait_stats" , CLEAR )
--статистика
select * from sys.dm_os_wait_stats WHERE wait_type    NOT IN 
	(' FT_IFTS_SCHEDULER_IDLE_WAIT','BROKER_EVENTHANDLER','BROKER_TASK_STOP','BROKER_TO_FLUSH',
'CHECKPOINT_QUEUE','CLR_AUTO_EVENT','CLR_MANUAL_EVENT','CLR_SEMAPHORE ',
'DIRTY_PAGE_POLL','DISPATCHER_QUEUE_SEMAPHORE','HADR_FILESTREAM_IOMGR_IOCOMPLETION',
'IO_COMPLETION','LAZYWRITER_SLEEP','LOGMGR_QUEUE','PREEMPTIVE_OS_AUTHENTICATIONOPS',
'PREEMPTIVE_OS_CRYPTACQUIRECONTEXT','PREEMPTIVE_OS_CRYPTOPS',
'PREEMPTIVE_OS_NETVALIDATEPASSWORDPOLICY','PREEMPTIVE_OS_QUERYREGISTRY',
'PWAIT_ALL_COMPONENTS_INITIALIZED','REQUEST_FOR_DEADLOCK_SEARCH',
'RESOURCE_QUEUE','SLEEP_DBSTARTUP','SLEEP_SYSTEMTASK','SLEEP_TASK',
'SP_SERVER_DIAGNOSTICS_SLEEP','SQLTRACE_BUFFER_FLUSH','SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
'WAITFOR ','XE_DISPATCHER_JOIN ','XE_DISPATCHER_WAIT','XE_TIMER_EVENT','FT_IFTS_SCHEDULER_IDLE_WAIT') 
	order by wait_time_ms desc
28 окт 15, 11:04    [18336478]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
Richard Parker
Это те ребята встали в позу, мол, сервера хреновые скорее всего, только в серверную мы никого не водили, но диагноз уже поставили.
Да, странно. Им заказали внедрение, а в результате они продали лицензии, и нажали кнопку "установить". И всё. У них должны быть профессионалы, которые внедряют под ключ, что бы работало, как же иначе? Какая то администартивная проблема получается.

Или, получается, деньги получили они, а внедрять будете вы. В принципе, тоже неплохо, научитесь :-)
Просто руководству нужно всё это постоянно, доходчиво объяснять. Бабло отдали, весь доступ предоставили - пусть внедряют, что бы работало. Пусть скажут, в чём сервера хреновые, количественно, где в сети затык, конкретно, а не "в общем". Или пусть руководство перекладывает внедрение на вас; но вам нужно это изучать, не вы же подряжались и обещали - и это руководство должно понимать.

Richard Parker
D (на котором SQL развернут) - вот такие:
В общем всплески довольно большие есть в оереди.

Да, согласен с WarAnt насчёт сбора счётчиков.

Но вообще нужен человек, который знает про настройку/диагностику работы всего комплекса "1С 8", ведь не только в сиквеле может быть проблема.

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

А то, получается, смотрим в этом всём комплексе разные случайные кусочки, про которые знаем, и пытаемся понять, что там значат циферки показателей работы этих устройств :-) А устройств много - сиквел, ОС, хост для виртуалок, апп-сервер, роутеры, коммутаторы, пользовательские компы и т.п.

Хотя бы, как минимум, можно запустить трейс на сиквеле, и смотреть, какими запросами он бомбардируется, есть ли длительные запросы, или внезапные потоки мелких, кореллируются ли (и как) эти запросы с выполняемыми действиями в 1С. Но это, повторю, будет только изучение работы сиквела в связке, только одного звена.
28 окт 15, 15:39    [18338792]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
gallam
Member

Откуда:
Сообщений: 178
Richard Parker,
Компания Софтпоинт как раз решает эти вопросы: softpoint.ru
28 окт 15, 16:38    [18339186]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Richard Parker
Member

Откуда:
Сообщений: 5
Добрый день! Всем спасибо за ответы.
Прислали, значит, нам рекомендации.
Ощущение, что эту статейку я читал несколько лет назад, но тем не менее, вот что советуют профессионалы.

автор
Для MS SQL Server рекомендуется выполнять следующие регламентные операции:
• Обновление статистик
• Очистка процедурного КЭШа
• Дефрагментация индексов
• Реиндексация таблиц базы данных


Ну в общем, суть сводится к такому плану:
Картинка с другого сайта.

На вопрос зачем делать обновление статистик, если уже стоит в свойствах, и зачем нужен DBCC FREEPROCCACHE, сказали, что так надо, хуже не будет.

Ну мы тоже, проведя глубокое расследование, вроде отвели от себя стрелки. База не зависает, какой-то расчет блокирует (так и должно быть) определенные таблицы, следовательно работать нельзя остальным с этой частью. Этот расчет просто надо запускать регламентным заданием, когда никто не работает, например ночью, благо это возможно.

Так что, проблема в головах, как оказалось.
13 ноя 15, 09:59    [18410497]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Glory
Member

Откуда:
Сообщений: 104751
Richard Parker
На вопрос зачем делать обновление статистик, если уже стоит в свойствах,

В свойствах чего ?

Richard Parker
и зачем нужен DBCC FREEPROCCACHE, сказали, что так надо, хуже не будет.

А вы уже прочитали в хелпе о том, что делает эта команда ?
13 ноя 15, 10:03    [18410527]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
o-o
Guest
У меня цифры не сходятся.
Сервер 2008 Standard Edition, у него ж лимит 64 Гига.
Зачем его на машину с памятью 160Гиг поставили и как он умудряется 75-80Гиг расходовать?
13 ноя 15, 10:16    [18410621]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Richard Parker
Member

Откуда:
Сообщений: 5
Glory
Richard Parker
На вопрос зачем делать обновление статистик, если уже стоит в свойствах,

В свойствах чего ?


Свойства БД - Параметры - Автоматическое обновление БД.


Glory
А вы уже прочитали в хелпе о том, что делает эта команда ?


Прочитали.
13 ноя 15, 10:18    [18410642]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Richard Parker
Member

Откуда:
Сообщений: 5
Richard Parker

Свойства БД - Параметры - Автоматическое обновление БД.




Автоматическое обновление статистики, конечно.
Ну если я не прав, поправьте, зачем задавать провокационные вопросы.
13 ноя 15, 10:23    [18410664]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Glory
Member

Откуда:
Сообщений: 104751
Richard Parker
Свойства БД - Параметры - Автоматическое обновление БД.

Ну так это "автоматическое", а в плане "неавтоиматическое"

Richard Parker
Glory
А вы уже прочитали в хелпе о том, что делает эта команда ?


Прочитали.

И вы из прочитаного узнали, что делает эта команда ?
13 ноя 15, 10:27    [18410686]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Grыzha
Member [заблокирован]

Откуда: вылезла
Сообщений: 3084
Richard Parker
Добрый день! Прошу дельного совета от гуру форума.
Имеется:
отдельно выделенный сервер под Sql 2008 Standard (ос-win 2008 enterprise, озу 160 гб), отдельно выделенный сервер под 1С 8.3 (oc - win server 2008 st , озу 32 гб).
И всё было неплохо, пока руководство не пригласило внедренцев осуществить переход бухгалтерии с 7.7 на 8.
И вот при запуске какого-то расчета происходит зависание базы, чувствуют медленную работу остальные пользователи (~200 онлайн). И вроде как раньше было лучше. Хотя другая база, тот же документооборот крутится нормально. В этот момент сервер бд работает в обычном режиме, не зависает, проц не загружен, память 75-80гб занято. Тоже самое и с сервером 1С, всё норм.
Естественно, в этой медленной работе виноваты местные администраторы (наш отдел), у которых что-то неправильно настроено и слабые сервера и слабая сеть (48-портовые гигабитные Dlink).
По удаленному совету их сотрудника добавили в план перестроение индекса, кроме того, что база ожидаемо с 45гб выросла до 65 гб и лог с 7 до 22 больше ничего не произошло. Ну лог мы можем отцепить, ибо модель восстановления простая, достаточно полного бэкапа утром, в обед и после рабочего дня. Но вот увеличившаяся база стала небольшой проблемой, ибо рабочая копия часто разворачивается в тестовые базы на тестовом сервере для программистов, и свободного дискового пространства там стало резко не хватать. Следовательно, первый вопрос: как-то можно уменьшить размер бд, кроме нежелательной операции Сжатия? Ну даже если нельзя, эту неприятность мы как-нибудь переживем.
Но вот непосредственное начальство жестко поставило задачу разобраться с быстродействием. Понятно, что этот вопрос скорее для той же мисты, но тем не менее, как-то можно убедиться что проблемы именно на нашей стороне из-за неправильной работы sql или также доказать, что у нас всё ок.
Может есть что-то для проверки, типа теста Гилева или какой-нибудь скрипт?
Можно конечно ерничать и посоветовать нанять нормального администратора бд или прочитать документацию по sql, но может есть у кого-то дельные советы? Заранее спасибо за любую помощь.


Файл данных и лог разнесены на разные физ. диски ?
1Цэ очень любит использовать tempdb... очень... очень. Поэтому вставьте SSD диск и перенесите на него tempdb или организуйте диск в памяти (если ее много). Еще tempdb мона порезать на файлы по количеству ядер.
13 ноя 15, 10:34    [18410731]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8821
На вопрос зачем делать обновление статистик, если уже стоит в свойствах, и зачем нужен DBCC FREEPROCCACHE, сказали, что так надо, хуже не будет
.

Обычная практика, если бизнес-логика большей частью находится на клиенте, а сервер используется как свалка хранилище данных. А-ля SQL файловый сервер.
13 ноя 15, 11:55    [18411223]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
DoctorRoza
Member

Откуда:
Сообщений: 37
В Вашем случае: Обновление статистики -> Дефрагментация индекса -> Реиндексация индекса. Чистить кэш не спешите, отложите его на конец. Дополнительно и желательно: Пересчет итогов -> Тестирование и исправление. Дополнительно и если ничего вообще не помогло: Shrink логов () -> перенос temp DB на SSD -> обратиться к специалисту :) .
p.s.
Обязательно стоит помнить и о кривых руках программистов. А может они вешают базу?
13 ноя 15, 12:13    [18411377]     Ответить | Цитировать Сообщить модератору
 Re: Медленная работа связки SQL+1C  [new]
Volochkova
Member

Откуда:
Сообщений: 2321
DoctorRoza
В Вашем случае: Обновление статистики -> Дефрагментация индекса -> Реиндексация индекса. Чистить кэш не спешите, отложите его на конец. Дополнительно и желательно: Пересчет итогов -> Тестирование и исправление. Дополнительно и если ничего вообще не помогло: Shrink логов () -> перенос temp DB на SSD -> обратиться к специалисту :) .
p.s.
Обязательно стоит помнить и о кривых руках программистов. А может они вешают базу?


РЕЗЕРВНАЯ КОПИЯ!!!!
И только потом дефрагментация, индексы и т.п.

Кстати, очередность точно такая - Статистику обновить, а потом ребилд?
у 1с ников где то была методичка, сначала ребилд, а потом статистика.
13 ноя 15, 15:04    [18412598]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить