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

Откуда: Сталинград
Сообщений: 2352
Может кто то пользуется средствами анализа сервера на предмет таких проблем как, например с нехваткой памяти или другой мощности сервера?

Встроенные средства такие, конечно показывают инфу, но в некоторых случаях мне сложно сказать, что здесь имеется узкое место
13 апр 18, 09:08    [21335487]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2352
я хочу сказать, что нужен некое средство обнаружение проблем на сервере с базами данных
например результат проверки .. зеленый все ок, красный есть проблемы такие ето такие то
13 апр 18, 09:10    [21335495]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
aleksrov
Member

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

Ну это наверно Idera, Red Gate, Sentry One и прочее... Я думаю у них что нибудь есть.
Но я предпочитаю по дедовски, по хардкору, через запросы :)
13 апр 18, 09:16    [21335511]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
архивариус
Member

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

PAL (Performance Analysis of Logs) (или на github )
Using PerfMon and PAL to Diagnose SQL Issues
13 апр 18, 09:55    [21335637]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1801
SAS2014,

PRTG
13 апр 18, 10:25    [21335707]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
04cf9f9576a6f15
Member

Откуда:
Сообщений: 1991
SAS2014
я хочу сказать, что нужен некое средство обнаружение проблем на сервере с базами данных
например результат проверки .. зеленый все ок, красный есть проблемы такие ето такие то
Такое средство есть. Это квалифицированный DBA.

#Хэш=
14 апр 18, 14:09    [21339160]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Владислав Колосов
Member

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

вы как-то рассуждаете на уровне кухарки, управляющей государством. Если бы проблемы решались нажатием кнопки - давно бы всем раздали такую кнопку, а не учились бы по 10-15 лет.
14 апр 18, 20:25    [21339811]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Дед-Папыхтет
Member

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

Мне понравился SQL Sentry - решение из коробки, а так - perfmon.exe и джобы самописные с DMV всякими... трасса, extended events, audit много средств для отслеживания событий разных, но их настраивать надо. В конторах часто zabbix используют для мониторинга серверов, и на нем счетчкики и триггера настраивают исходя из своих знаний.
14 апр 18, 21:30    [21339966]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2352
спс за инфу, жаль, что они платные
16 апр 18, 08:59    [21341497]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 2042
SAS2014
Может кто то пользуется средствами анализа сервера на предмет таких проблем как, например с нехваткой памяти или другой мощности сервера?

Встроенные средства такие, конечно показывают инфу, но в некоторых случаях мне сложно сказать, что здесь имеется узкое место


Вы для себя определили уже, что означает "нехватка памяти или другой мощности сервера"?
16 апр 18, 10:27    [21341690]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
aleksrov
Member

Откуда:
Сообщений: 686
Ролг Хупин,

Ну это ж очевидно, когда работает все медленно :)
16 апр 18, 10:28    [21341695]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 2042
aleksrov
Ролг Хупин,

Ну это ж очевидно, когда работает все медленно :)


да, еще типа
"вчера всё работало нормально, а сегодня какая-то фигня там"
16 апр 18, 10:52    [21341773]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
04cf9f9576a6f15
Member

Откуда:
Сообщений: 1991
aleksrov
Ролг Хупин,

Ну это ж очевидно, когда работает все медленно :)
А должно работать быстро?

#Хэш=
16 апр 18, 11:02    [21341798]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2352
Ролг Хупин
SAS2014
Может кто то пользуется средствами анализа сервера на предмет таких проблем как, например с нехваткой памяти или другой мощности сервера?

Встроенные средства такие, конечно показывают инфу, но в некоторых случаях мне сложно сказать, что здесь имеется узкое место


Вы для себя определили уже, что означает "нехватка памяти или другой мощности сервера"?


это как один из примеров по нехватки памяти, просто щас серверу выделено макс 5 Гб, и у системе остается 2-3 Гб
вот и думаю этого достаточно или это одна из причин торможения работы БД на сервере
17 апр 18, 01:14    [21343955]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2352
система Win Serv 2012
17 апр 18, 01:15    [21343956]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Дед-Папыхтет
Member

Откуда:
Сообщений: 2301
SAS2014
система Win Serv 2012

perfmon to sql server первая попавшаяся и полно другого в гугле. Классика посмотри
диски: IOPS, очереди, время отклика диска
память: процент попадания в кэш, время жизни страницы буффер кэша
проц: нагрузка общая по ядрам если необходимо
своп насколько задействуется
всякие pagelatch есть расщепления страниц, ошибки, дидлоки, блокировки.

Начни с простого, после можно копнуть уже глубже и принимать решения в случае проблем. Это не коробочное решение конечно, но и что бы коробочным пользоваться, нужно в счетчиках разобраться что бы понимать какие проблемы могут быть и как их диагностировать.
17 апр 18, 09:31    [21344351]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1950
SAS2014
Ролг Хупин
пропущено...


Вы для себя определили уже, что означает "нехватка памяти или другой мощности сервера"?


это как один из примеров по нехватки памяти, просто щас серверу выделено макс 5 Гб, и у системе остается 2-3 Гб
вот и думаю этого достаточно или это одна из причин торможения работы БД на сервере

Коллега, подумайте вот о чем.
У Вас есть таблица небольшая, несколько миллионов строк, которая влезает в 10% оперативной памяти. И вторая аналогичная.
Вам нужно вывести select top 1000 from table1 left join table2 on неоднозначное_условие.
Оптимизатор MSSQL полез в статистику, а она устарела. И он промахнулся. Вместо того, чтобы простым table scan или index scan пробежать по двум таблицам и выдать ответ за несколько миллисекунд - он взял и решил, что из второй таблицы прилетит 2-3 строки, а поэтому построит цикл nested loops, прикрутив выборку из первой. Это была ошибка - под такое условие из второй таблицы прилетит 2-3 миллиона строк, каждую из которых нужно будет обработать на процессоре.

Памяти свободной - ну просто навалом. Запрос быстро отработает и на 5400 rpm HDD диске в ноутбуке. А база "тормозит". Куда упирается? В тактовую частоту процессора (ну и в шину и в L3 кэш, но это мелочи).

Таки Вы хоть обвешайте сервер самым крутым железом - ничего не поможет. Без - как уже тут правильно Вам подметили - главного инструмента.

"Такое средство есть. Это квалифицированный DBA" (с)
17 апр 18, 09:46    [21344398]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1950
04cf9f9576a6f15
aleksrov
Ролг Хупин,

Ну это ж очевидно, когда работает все медленно :)
А должно работать быстро?

#Хэш=


Ни в коем случае! База должна работать медленно. Это даст следующий эффект.

1. Пользователи будут ощущать важность DBA и разработчиков.
2. Разработчики и DBA выбьют бюджет на новое железо (раскручивая маховик потребления и в целом современной экономики).
3. Руководство не даст денег на лицензии Oracle/MSSQL/и так далее, инициировав программу перехода на "бесплатные" mysql/mongodb/postgresql, что даст новые рабочие места и уменьшит колониальную зависимость от буржуев с Запада.
4. Оптимизация запросов потребует найма новых разработчиков, существующие станут их начальниками (из-за расширения штата и потребности обучать новеньких), это приведет к повышению их социального статуса и размера зарплаты и премий.
5. Руководство ощутит, что оно принимает верные стратегические - кадровые и финансовые - решения, укрепляя IT инфраструктуру предприятия и вытягивая разработчиков со всего рынка, ослабляя сразу потенциальных конкурентов.
6. Пользователи, запросы которых на ускорение некоторых выборок данных или построения отчетов, ощутят, что их запросы удовлетворяются, что они важные винтики в машине предприятия, что вся мощь IT индустрии брошена на успешное удовлетворение их хотелок.

Как видите - все будут довольны и счастливы. И не нужно ускорять базу сразу!
17 апр 18, 09:55    [21344427]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 925
Andy_OLAP, вы сделали мой день )))
17 апр 18, 10:13    [21344473]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
aleksrov
Member

Откуда:
Сообщений: 686
Andy_OLAP
SAS2014
пропущено...


это как один из примеров по нехватки памяти, просто щас серверу выделено макс 5 Гб, и у системе остается 2-3 Гб
вот и думаю этого достаточно или это одна из причин торможения работы БД на сервере

Коллега, подумайте вот о чем.
У Вас есть таблица небольшая, несколько миллионов строк, которая влезает в 10% оперативной памяти. И вторая аналогичная.
Вам нужно вывести select top 1000 from table1 left join table2 on неоднозначное_условие.
Оптимизатор MSSQL полез в статистику, а она устарела. И он промахнулся. Вместо того, чтобы простым table scan или index scan пробежать по двум таблицам и выдать ответ за несколько миллисекунд - он взял и решил, что из второй таблицы прилетит 2-3 строки, а поэтому построит цикл nested loops, прикрутив выборку из первой. Это была ошибка - под такое условие из второй таблицы прилетит 2-3 миллиона строк, каждую из которых нужно будет обработать на процессоре.

Памяти свободной - ну просто навалом. Запрос быстро отработает и на 5400 rpm HDD диске в ноутбуке. А база "тормозит". Куда упирается? В тактовую частоту процессора (ну и в шину и в L3 кэш, но это мелочи).

Таки Вы хоть обвешайте сервер самым крутым железом - ничего не поможет. Без - как уже тут правильно Вам подметили - главного инструмента.

"Такое средство есть. Это квалифицированный DBA" (с)



Вы понятия не имеете как работает оптимизатор, видимо.
Во первых у вас никогда не будет такого разброса в статистике и факт если она обновляется автоматом, напомню, когда таблица пустая статистика устаревает сразу же как вы добавили данные, после этого она устаривает после добавления 500 строк (если до этого было меньше 500) и потом 500+20%, я думаю вы сами можете посчитать что при таком раскладе такого разброса не будет. Более того при флаге 2371 и в 2016 по умолч. используется динамический порог обновления статистики это: SQRT(1000 * кол-во строк).
Также при использовании Top может быть использован Row Goal и здесь также может быть не однозначно как поведет себя запрос, при неравномерном распределении данных. Также не забывайте об индексах.
Я даже решил проверить как поведет себя оптимизатор при таком разбросе.
Обновил статистику с немного неверными данными, т.е. сделал Update Statistics name with rowcount = 5 для Employer
В таблице 65552 строки, это таблица Employer (я специально вставил много строк), обьеденим с таблицей Orders (830 строк, статтистика свежая) по EmployeID, итог: вверху скан Orders, внизу seek Employer через Nested Loop.
OK. А что если заказов намного больше, делаем Update Statistics name with rowcount = 1 000 000
Тут у нас интереснее, он сделал скан Employer, потом сделал Seek к индексу по EmpID на Orders, 65552 раза, вернул 830 строк, потом сделал Key Lookup к Orders. Даже если убрать Top работает довольно быстро.
Более забавно если мы добавим условие, к примеру Employes.ID > 8 (по факту есть только один такой empid, это 9, и у него 43 заказа). Даже так, при крайе неверном кол-во ожидаемых строк, SQL выбрал похожий план как и вообще без where, только теперь вверху вместо скана Employer идет Seek.
Также Нндо учитывать что когда он считает ожидаемое кол-во строк он использует помимо статистики метаданные, когда считает селективность.
К примеру возьмем план при where E.ID > 8, вверху у нас seek с ожидаемым количеством строк 4.99939, он взял это число сначала посчитав селективность, а потом умножив ее на кол-во строк из статистики. Селиктивность в данном случе у нас 0.999878 (65544/65552) округленное до нужной стпени, умноженное на 5. При этом если бы мы сделали условие Employes.ID > 8 and Employes.ID < 100 то ожидаемое кол-во строк было бы 1, так как после подсчтеа селективности и умножение ее на данные из статистики мы получим меньше 1 строки, а SQL должен вернуть минимум одну строку.

Я к чему все это, вы прям так мастерски предсказали как себя запрос поведет. К тому же надо быть полным "спецом" чтобы н езаметить такие расхождения.
17 апр 18, 11:16    [21344713]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1950
aleksrov
Вы понятия не имеете как работает оптимизатор, видимо.

Это точно, Вы совершенно правы! Я даже никогда не использовал option (querytraceon 8649) и option (querytraceon 2312).
Просто так написал какую-то ерунду, решил запугать SAS2014, но совершенно неудачно.
Постараюсь так больше никогда не делать. Еще раз таки извините, я нечаянно, так получилось.
17 апр 18, 11:43    [21344817]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
aleksrov
Member

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

Буду знать, что насильное использование паралельного плана означает "я знаю как работает SQL" :)
17 апр 18, 11:55    [21344845]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 4558
Andy_OLAP
aleksrov
Вы понятия не имеете как работает оптимизатор, видимо.

Это точно, Вы совершенно правы! Я даже никогда не использовал option (querytraceon 8649) и option (querytraceon 2312).
Просто так написал какую-то ерунду, решил запугать SAS2014, но совершенно неудачно.
Постараюсь так больше никогда не делать. Еще раз таки извините, я нечаянно, так получилось.

я по прежнему утверждаю, что это call центр индусов.

автор
Буду знать, что насильное использование паралельного плана означает "я знаю как работает SQL" :)

триггер колл центра сработал на UPDATE STATISTICS ... WITH rowcount = 1кк как искуственную генерацию праллельного плана :)
17 апр 18, 12:29    [21345000]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1950
aleksrov
Andy_OLAP,

Буду знать, что насильное использование паралельного плана означает "я знаю как работает SQL" :)

Я Вам больше скажу - иной раз оптимизатору выкручиваете руки, заставляете использовать кошерный параллелизм, а в реальности он делает в одно ядро. Так что "option" это не всегда "насильное использование".
17 апр 18, 12:31    [21345012]     Ответить | Цитировать Сообщить модератору
 Re: Узнать проблемы с сервером SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1950
TaPaK
я по прежнему утверждаю, что это call центр индусов.

Я помню Ваши утверждения. Знаете, память с возрастом ухудшается, приходится записывать, даже поручил завести на Вас отдельную папку в Вашем личном деле и внести туда распечатанный скриншот с этой Вашей фразой.
17 апр 18, 12:32    [21345019]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить