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

Откуда:
Сообщений: 5
Привет всем!

Представим, что есть некая БД на MS SQL 2008.
Сервер обрабатывает N запросов в секунду к этой БД и вполне справляется с ними.
Но вот нам нужно, чтобы сервер выполнял N*2 запросов в секунду. В текущей конфигурации он не сдюживает и "падает". Тогда мы апгрейдим его поставив SSD диски и максимальное кол-во RAM. Какое-то время все замечательно.
Но в перспективе рост числа запросов в секунду в N*10.
Так вот, как дальше обеспечить обработку большего и большего числа запросов если мы уже уперлись в потолок производительности одного сервера?
Какие есть методы, способы решения такой задачи?
29 окт 14, 01:14    [16770365]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
FessAectan
Привет всем!

Представим, что есть некая БД на MS SQL 2008.
Сервер обрабатывает N запросов в секунду к этой БД и вполне справляется с ними.
Но вот нам нужно, чтобы сервер выполнял N*2 запросов в секунду. В текущей конфигурации он не сдюживает и "падает". Тогда мы апгрейдим его поставив SSD диски и максимальное кол-во RAM. Какое-то время все замечательно.
Но в перспективе рост числа запросов в секунду в N*10.
Так вот, как дальше обеспечить обработку большего и большего числа запросов если мы уже уперлись в потолок производительности одного сервера?
Какие есть методы, способы решения такой задачи?
Поставить второй сервер.

А вообще
Картинка с другого сайта.
29 окт 14, 01:53    [16770428]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
FessAectan
Member

Откуда:
Сообщений: 5
Понятно, что поставить второй сервер.
Интересуют технологии/методы имеющиеся в разрезе используемой СУБД, позволяющие распределить нагрузку.
29 окт 14, 02:07    [16770443]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
FessAectan
Member

Откуда:
Сообщений: 5
В общем сперва собрать данные со счетчиков, найти узкое место, а уж потом воспрашать :)
Хотел бы просто увидеть какие варианты есть.
Я не в курсе, может есть фичи у MS для масштабирования.
Для HA, понятно, можно сделать кластер с отдельным стораджом или два сервера с репликацией.
29 окт 14, 08:03    [16770677]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
Искать узкое место.
А запросы какие.
Или процентное соотношение хотя бы.
Вставка данных, модификация, выборка.
29 окт 14, 08:16    [16770695]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
FessAectan
В общем сперва собрать данные со счетчиков, найти узкое место, а уж потом воспрашать :)
Хотел бы просто увидеть какие варианты есть.
Я не в курсе, может есть фичи у MS для масштабирования.
Для HA, понятно, можно сделать кластер с отдельным стораджом или два сервера с репликацией.

можно "размазать" структуру БД на несколько дисковых массивов желательно с многоканальным контроллером при помощи файловых групп или дополнительных файлов данных базы. Посмотреть в сторону секционирования проблемных таблиц. Заняться оптимизацией индексов и запросов.
29 окт 14, 10:01    [16771123]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
Лисицын
Member

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

а если есть просто шесть серверов, к примеру по 16 ядер и по 64гб памяти, размазать на них нагрузку не проще?
29 окт 14, 10:59    [16771511]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
FessAectan
Member

Откуда:
Сообщений: 5
Нашел статью на данном ресурсе - https://www.sql.ru/articles/mssql/2004/04051301distributedpartitionedviews.shtml
как мне кажется это самое оно.
29 окт 14, 11:12    [16771581]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Лисицын
stavgreengo,

а если есть просто шесть серверов, к примеру по 16 ядер и по 64гб памяти, размазать на них нагрузку не проще?

проще конечно, но для этого как минимум необходим ms sql 2012 c технологией AlwaysOn иначе я очень мутно представляю себе вашу согласованность данных при обращений к каждому из серверов.
29 окт 14, 11:16    [16771607]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
Crimean
Member

Откуда:
Сообщений: 13148
классифицировать нагрузку
для читающей (пусть будет OLAP, хотя это грубо) держать все "под чтение"
для пишущей (пусть будет OLTP) - нормализовать хранение, чтобы меньше писать
для совмещения - развернуть несколько окружений и трансформировать данные из OLTP в OLAP систему
дальше - строить фермы / федерации серверов
29 окт 14, 11:19    [16771618]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
FessAectan
Member

Откуда:
Сообщений: 5
Всем большое спасибо за советы, пойду читать документацию и отслеживать счетчики производительности.
29 окт 14, 11:22    [16771645]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
zatar86
Member

Откуда: СПБ
Сообщений: 228
Если есть возможность обновиться до 2012, можно always on использовать, и использрвать Read-Only Routing, чтобы часть нагрузки на резервную ноду ушла.
А так искать причину тормозов и запросы, процедурй и т.д.
29 окт 14, 13:02    [16772308]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
убрать бестолковые прокладки между сервером и клавиатурой, и нанять грамотных sql-щиков
29 окт 14, 21:28    [16775001]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
FessAectan
Привет всем!

Представим, что есть некая БД на MS SQL 2008.
Сервер обрабатывает N запросов в секунду к этой БД и вполне справляется с ними.
Но вот нам нужно, чтобы сервер выполнял N*2 запросов в секунду. В текущей конфигурации он не сдюживает и "падает". Тогда мы апгрейдим его поставив SSD диски и максимальное кол-во RAM. Какое-то время все замечательно.
Но в перспективе рост числа запросов в секунду в N*10.
Так вот, как дальше обеспечить обработку большего и большего числа запросов если мы уже уперлись в потолок производительности одного сервера?
Какие есть методы, способы решения такой задачи?


Для начала вам надо включить монитор ресурсов и собрать статистику, на основе которой обрести понимание того, что происходит на сервере и каких именно ресурсов не хватает.
30 окт 14, 13:25    [16776948]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Если сервер теряет производительность при N*2 то надо весь софт выкинуть ф топку.
30 окт 14, 14:38    [16777528]     Ответить | Цитировать Сообщить модератору
 Re: Как увеличить производительность MS SQL ?  [new]
Nonname
Member

Откуда:
Сообщений: 9
Ладно вам издеваться над человеком. Вообще вопрос совсем некорректен, так как никто вам не скажет как вам поднять производительность в разрезе вашей базы данных, так как вы не сказали нам характер этой базы данных. Бывает так одна процедурка вешает всю цепочку платежа в oltp базе, бывает просто индексов достроить надо. Нужно собрать данные по тому что вообще происходит с базой данных. Самые вероятные причины:блокировки (а то и дедлоки), отсутствие индексов, ошибки в запросах, проблемы настройки самого сервера. Блокировки мониторятся в счетчиках производительности. Индексы - нужно смотреть планы запросов, которые участвуют в ежедневной нагрузке, ошибки запросов так же в планах и профилировщике. Так же для просмотра повисших запросов существует процедура Who is Active.
31 окт 14, 16:56    [16785033]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить