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

Откуда:
Сообщений: 12
Добрый день форумчане!
Однозначного ответа на свой вопрос я толком не нашел, поэтому хочу спросить здесь.
Мой вопрос:
Есть сервер на Атлоне 2х245 2.9 ГГц 3 Г оперативы вин 2003 на этом все поднят iis и поставлена база на MSSql2005 express.
Это платформа для внутриоффисной системы, в пик около 20 подклчений к базе, по требованию заказчика для рефреша данных каждые 3 сек идет запрос с от каждого клиента к базе - это кроме каких-либо других запросов.

В пик начинаются тормоза (запрос данных) и загрузка проца на серваке прыгает от 50 до 98%.
Так как для рефреша данных используется тяжелый запрос, сделал аналог sqlDependency и делаю рафреш, если в нужных мне таблицах что-то изменилось. Однако это не очень помогло, так как идет большой двусторонний траффик и постоянно что-то пишется или обновляется. Тяжелые запросу оптимизировал, поубирал лишнее.

Сам вопрос вот в чем, если поставить вместо 2005 express, скажем 2005 standard будет ли выигрыш, я читал, что у экспресс я так понял пользует только гиг оперативы, как это повлияет?

И еще... я не совсем понимаю, разве это такая дикая нагрузка на сервак? 20 клиентов - в пике порядка 500 запросов к базе.
Извиняюсь, если я чего-то недопонимаю, собственно за советом и разъяснениями и обращаюсь:)
4 сен 11, 16:15    [11224175]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Sergey_Inf
Member

Откуда:
Сообщений: 12
пардон 500 запросов я имел ввиду в минуту
4 сен 11, 16:18    [11224182]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
iljy
Member

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

а вы уверены, что проблема именно в памяти и процессоре? Что замеряли?
Стандарт вообще говоря стоит приличных денег. И потом - почему 2005, когда скоро уже 2011 будет? Поставьте хотя бы 2008 R2.
4 сен 11, 16:28    [11224207]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Коляныч
Member

Откуда:
Сообщений: 279
А какой-нибудь анализ проводился - это точно SQL процессор съедает или IIS или какой-то другой процесс? Если виноват именно SQL, то желательно посмотреть типичные запросы, их планы выполнения, может быть там какие-нибудь жутко неправильно работающие джойны джойнятся изо всех сил, которым можно как-то помочь.
4 сен 11, 16:30    [11224209]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Sergey_Inf
Member

Откуда:
Сообщений: 12
Спасибо за такую оперативность:)
Замерял системным монитором в винде, проц загружен практически только процессом sqlserver-а iis мало грузит.
Почему 2005 стандарт - он скажем так, есть где-то купленный. И еще один нюанс - сервер на 2003 винде и чтобы ставить например 2008-й sql нужно соответственно вин2008 сервер ставить, а это и расходы и все переставлять и поднимать на 7-м иисе.
Что касается запросов, то там особо страшного ничего я не наблюдал, тяжелые места я упростил, как знал, а для более тонкой настройки нужно садиться и курить над каждым запросом.
Но начальство, как говорится, требует результатов на вчера. И повторюсь с вопросом,
Можно ли уменьшить тормоза переходом с 2005-ого экспресса на стандарт?
Экспресс- на сколько я знаю порезанная версия.
4 сен 11, 20:54    [11224992]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Коляныч
Member

Откуда:
Сообщений: 279
Революционных изменений вроде бы не должно произойти, может быть на несколько процентов и побыстрее побежит, но чуть большая активность пользователей снова загрузит проц на 100%. Польза от перехода видится только одна - наличие в нормальных неэкспрессовых скулях профайлера, который может помочь провести более детальную диагностику пробемы. То есть садиться и курить всё равно придётся, но хотя бы не вслепую.
4 сен 11, 21:35    [11225182]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Sergey_Inf
Member

Откуда:
Сообщений: 12
вместо профайлера я пользовал запрос на предмет самых жирных запросов и времени их выполнениия, как раз для рефреша данных и используются эти запросы.
Похоже, мне видится только одни вариант - что-то подкручивать в проге... чудес как говорится не бывает.
А что вы можете сказать по поводу 2008-ого sql-я? на сколько у него компилятор продвинутый? там говорят сильно от 2005-ого отличается.
4 сен 11, 21:41    [11225211]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
iljy
Member

Откуда:
Сообщений: 8711
Sergey_Inf
Спасибо за такую оперативность:)
Замерял системным монитором в винде, проц загружен практически только процессом sqlserver-а iis мало грузит.
Почему 2005 стандарт - он скажем так, есть где-то купленный. И еще один нюанс - сервер на 2003 винде и чтобы ставить например 2008-й sql нужно соответственно вин2008 сервер ставить, а это и расходы и все переставлять и поднимать на 7-м иисе.
Что касается запросов, то там особо страшного ничего я не наблюдал, тяжелые места я упростил, как знал, а для более тонкой настройки нужно садиться и курить над каждым запросом.
Но начальство, как говорится, требует результатов на вчера. И повторюсь с вопросом,
Можно ли уменьшить тормоза переходом с 2005-ого экспресса на стандарт?
Экспресс- на сколько я знаю порезанная версия.

А с чего вы взяли, что вин2008 потребуется?? Вы системные требования смотрели?
Для отладки можете качнуть Enterprise Evaluation, поставить профайлер и посмотреть, что у вас там делается.
По поводу уменьшения тормозов - смотря из-за чего они. Посмотрите сравнение стандарта и экспресса, в чем разница.
4 сен 11, 22:05    [11225317]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Коляныч
Member

Откуда:
Сообщений: 279
Сама по себе лежащая в основе математика не менялась со времён изобретения B-деревьев. В 2008-м просто добавились некоторые новые типы данных, появилась возможность хранить в индексах некоторую доп. информацию, хранить фильтрованные индексы и прочие мелкие приятные бонусы. Но чтобы какие либо из преимуществ заюзать, нужно со знанием дела вносить изменения в базу - переделывать её структуры или менять запросы. Если просто так отдетачить от 2005-го и приаттачить к 2008-му, то производительность сама по себе точно не выростет.

Всё таки на мой взгляд с гораздо большей пользой будет потратить время не на переходы на новые версии серверов, а на анализ причины почему затыкается текущий. Если будет понятна причина, то тогда и ответ на вопрос какая польза от перехода будет тоже понятен. Например, в момент апдейта данных перестраивается куча индексов. Если эти индексы на самом деле никому не нужны, ничуть не облегчают последующий поиск по данным, то значит индексы можно и нужно прибить. Или если поиск в 99% случаев происходит только по органиченному подмножеству значений проиндексированного поля, тогда индекс можно оставить, но отфильтровать и в этом случае переход на 2008-й оправдан, поскольку в 2005-ом вроде бы фильтрации индексов не было.
4 сен 11, 22:08    [11225338]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Sergey_Inf
Member

Откуда:
Сообщений: 12
мда... ну что ж начну "курить" запросы, спасибо за разъяснения... а то б блин, понаставил:)
4 сен 11, 22:25    [11225428]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
--------------------------------
Guest
Может имеет смысл задействовать CDC?
5 сен 11, 11:33    [11227059]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Sergey_Inf
Member

Откуда:
Сообщений: 12
--------------------------------
Может имеет смысл задействовать CDC?


интересная штука, но есть только на 2008 R2 интерпрайз... какое удовольствие много киллобаксов стоит.
5 сен 11, 22:04    [11231274]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
Sergey_Inf
Member

Откуда:
Сообщений: 12
начал тотальный тюнинг запросов и вот снова вопрос:)
2 таблицы t1 и t2 около 3 тыс записей в каждой (таблицы каждый день в среднем + 30 записей)
есть запрос, берем часть полей из одной, потом внутренний джоин еще несколько таблиц.

так вот из т2 в общий результат выбираются записи подзапросом, насколько выгоднее заменить подзапрос внешним джоином в моем случае?
7 сен 11, 10:31    [11238797]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
Sergey_Inf
начал тотальный тюнинг запросов и вот снова вопрос:)
2 таблицы t1 и t2 около 3 тыс записей в каждой (таблицы каждый день в среднем + 30 записей)
есть запрос, берем часть полей из одной, потом внутренний джоин еще несколько таблиц.

так вот из т2 в общий результат выбираются записи подзапросом, насколько выгоднее заменить подзапрос внешним джоином в моем случае?
Ответ вам даст сравнение планов выполнения, statistics io и statistics time.
7 сен 11, 10:47    [11238887]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Sergey_Inf
насколько выгоднее заменить подзапрос внешним джоином в моем случае?


Проще паренной репы - пишите и так, и эдак и смотрите планы выполнения. С 90%-й вероятностью они совпадут. Ибо скульный оптимизатор далекоооо не дурак.
7 сен 11, 11:00    [11239018]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1982
Sergey_Inf
Добрый день форумчане!
Однозначного ответа на свой вопрос я толком не нашел, поэтому хочу спросить здесь.
Мой вопрос:
Есть сервер на Атлоне 2х245 2.9 ГГц 3 Г оперативы вин 2003 на этом все поднят iis и поставлена база на MSSql2005 express.
Это платформа для внутриоффисной системы, в пик около 20 подклчений к базе, по требованию заказчика для рефреша данных каждые 3 сек идет запрос с от каждого клиента к базе - это кроме каких-либо других запросов.

В пик начинаются тормоза (запрос данных) и загрузка проца на серваке прыгает от 50 до 98%.
Так как для рефреша данных используется тяжелый запрос, сделал аналог sqlDependency и делаю рафреш, если в нужных мне таблицах что-то изменилось. Однако это не очень помогло, так как идет большой двусторонний траффик и постоянно что-то пишется или обновляется. Тяжелые запросу оптимизировал, поубирал лишнее.

Сам вопрос вот в чем, если поставить вместо 2005 express, скажем 2005 standard будет ли выигрыш, я читал, что у экспресс я так понял пользует только гиг оперативы, как это повлияет?

И еще... я не совсем понимаю, разве это такая дикая нагрузка на сервак? 20 клиентов - в пике порядка 500 запросов к базе.
Извиняюсь, если я чего-то недопонимаю, собственно за советом и разъяснениями и обращаюсь:)


Забавная там у Вас внутриофисная система...
Любопытно было бы взглянуть - зачем там КАЖДЫЕ 3 СЕКУНДЫ ДАННЫЕ ОБНОВЛЯТЬ?
9 сен 11, 17:06    [11255630]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
как-то тут
Guest
Sergey_Inf
для рефреша данных каждые 3 сек идет запрос с от каждого клиента к базе - это кроме каких-либо других запросов.

Так как для рефреша данных используется тяжелый запрос, сделал аналог sqlDependency и делаю рафреш, если в нужных мне таблицах что-то изменилось

проблема где-то здесь, а не в версии сервера.
9 сен 11, 17:59    [11256042]     Ответить | Цитировать Сообщить модератору
 Re: производительность Sql Server 2005  [new]
uaggster
Member

Откуда:
Сообщений: 1073
Sergey_Inf
начал тотальный тюнинг запросов и вот снова вопрос:)
2 таблицы t1 и t2 около 3 тыс записей в каждой (таблицы каждый день в среднем + 30 записей)
есть запрос, берем часть полей из одной, потом внутренний джоин еще несколько таблиц.

Ну вот наверняка всё тупее и проще до невозможности :-)
Либо а) Индексов каких то не хватает (профайлером вылавливаем типичные (в пределе - все) запросы, натравливаем index tunning wizard, наслаждаемся;
либо б) Статистика не пересчитывалась чуть более, чем никогда, таблицы не сжимались, и не дай бог еще база не бэкапилась и лог достиг космических размеров. Соответственно - делаем всё выше перечисленное, наслаждаемся;
либо в) при параллельной работе клиенты таки лочат друг друга (соответственно, пока один чего то длинное пишет, все остальные курят). О5 же через профайлер смотрим, кто кому чего жмёт, а в тексте запросов расставляем подсказки на грязное чтение (with no lock), если оно допустимо.

А может и еще тупее. Диск стал тесен. Антивирус кошмарского на сервер вкрячили. Степень параллелизма в настройках сервера стоит = 0, как по дефолту (соответственно, какой то большой тяжелый запрос сжирает весь процессор, остальные курят). Дисковая подсистема на букву Г... плохая (блин, ну вот поднять 0+1 рейд на самой старой зверушке ну 10, ну 20 тыр. стоит. Рублей. Максимум. Так не делает же никто!)

Короче, наверняка всё как всегда у всех, и 90% неисправностей кроется в вилке. Или розетке. :-)

Прошу прощения, ничего личного!
10 сен 11, 16:17    [11258418]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить