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

Откуда:
Сообщений: 1497
Здравствуйте.
Есть боевая база и в данный момент в ней же на рабочих данных строятся отчеты. Знаю, что это неправильно и надо разносить данные для работы и данные для отчетов, но пока есть то что есть.
Есть также проблема - когда выполняется расчет для какого-нибудь большого отчета, сервер оч.напряженно думает. Так, что у пользователей все тормозит и некоторые даже подключиться к серверу в этот момент не могут. Расчет делается за 6 минут, но выполняется он джобом, так что пользователю все равно сделается он за 6 минут или за 10. Это допустимо.
Вопрос - возможно ли как-то понизить приоритет у процедуры/джоба, чтобы она не так сильно нагружала сервер?



Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64) Aug 19 2014 12:21:34 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)

Памяти на машине 100 гигов, скулю отдано 75 гигов
Процессоров: 24
25 мар 16, 14:03    [18977817]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить нагрузку на сервер при выполнении хранимки  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Диам,

если пользователю всё равно то используйте хинт в запросе option (maxdop 1).
25 мар 16, 14:06    [18977833]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить нагрузку на сервер при выполнении хранимки  [new]
Добрый Э - Эх
Guest
Диам,

пересмотреть логику работы хранимки не пробовали? за 6 минут можно перелопать десятки (если не сотни) гигабайт данных.
25 мар 16, 14:07    [18977844]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить нагрузку на сервер при выполнении хранимки  [new]
WarAnt
Member

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

maxdop 1 во всех запросах процедуры расчета поставьте.
А оптимизировать расчет не пробовали? Разбить на части? Выполнять в другое время?
25 мар 16, 14:08    [18977850]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить нагрузку на сервер при выполнении хранимки  [new]
o-o
Guest
впервые слышу, чтобы из-за запуска отчета к серверу не могли подключиться.
какую интересно он выдает ошибку?

какие именно пользователи жалуются на тормоза, те, что данные модифицируют?
так может стОит посмотреть ожидания,
может, это чтение наложило S, вот все и ждут?
а теперь вам советуют вместо чтения в 24 потока начать в 1 читать, это зачем,
чтобы читалось еще дольше и изменятели данных еще дольше ждали?

короче, смотрите ожидания, если на блокировках ждут, может вам RCSI поможет
25 мар 16, 14:27    [18977981]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить нагрузку на сервер при выполнении хранимки  [new]
Glory
Member

Откуда:
Сообщений: 104751
Диам
Так, что у пользователей все тормозит и некоторые даже подключиться к серверу в этот момент не могут.

Таймаут на время подключения увеличьте со стандартных 30 секунд

Диам
Вопрос - возможно ли как-то понизить приоритет у процедуры/джоба, чтобы она не так сильно нагружала сервер?

https://msdn.microsoft.com/en-us/library/bb933866(v=sql.100).aspx
25 мар 16, 14:58    [18978221]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить