Страница 1 из 1

Вопрос по оптимизации SQL

Добавлено: Пт авг 29, 2014 08:15
iboxjo
Некоторое время назад встал вопрос оптимизации работы SQL сервера. Не являясь DBA и обладая знаниями SQL на уровне простых запросов испытываю некоторые сложности в этом вопросе. По результатам поиска свёл задачи оптимизации к следующим:

Обновление статистик
exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'
Очистка процедурного КЭШа
DBCC FREEPROCCACHE
Дефрагментация индексов
sp_msforeachtable N'DBCC INDEXDEFRAG ([ИМЯ БАЗЫ ДАННЫХ], ''?'')'
Реиндексация таблиц
sp_msforeachtable N'DBCC DBREINDEX (''?'')'

Собственно, вопрос. Насколько верны данные запросы и дадут ли они видимый эффект в работе с базами.
[Сервер 2008 R2 Express ADV, несколько баз на грани 8Гб+несколько связанных баз сообщений ED, autoshrink=true]. В данный момент, пользователи испытывают досточно ощутимые задержки при работе с декларациями, от чего собственно и начались пляски с бубном.

Заранее благодарен за любую помощь.

Re: Вопрос по оптимизации SQL

Добавлено: Пт авг 29, 2014 14:19
popov
Про вышеупомянутые запросы ничего не могу сказать (ни плохого, ни хорошего).
Но обычно все эти "оптимизации" ощутимого эффекта не дают, особенно на Express'ах, где основная проблема производительности связана не с самой БД, а ее размером в сочетании с ограничением на используемую память (не более 1 гига). Т.е. MS специально ограничил размер используемой оперативки в своей БЕСПЛАТНОЙ версии, чтобы Вы сильно далеко (в плане размера рабочей БД) на ней не уехали ;)
Если у Вас несколько больших баз ГТД-ПРО, то можно посоветовать доп. экземпляр SQL Server поставить, т.к. получается что этот 1 гиг делится между ними и каждой БД достается еще меньше оперативки и начинаются тормоза.

Re: Вопрос по оптимизации SQL

Добавлено: Пт авг 29, 2014 14:33
iboxjo
Спасибо за ответ. Пока провёл перестроение индекса одной из баз - визуально работать стало легче, но пока нагрузка не полная.

Re: Вопрос по оптимизации SQL

Добавлено: Пн сен 01, 2014 15:20
aiki
В свое время, пока был старый и хилый сервер, помогло отключение параметра "показывать панель ЭД-2 в списке ГТД", навигация ускорилась.

Re: Вопрос по оптимизации SQL

Добавлено: Пн сен 01, 2014 16:46
popov
aiki писал(а):В свое время, пока был старый и хилый сервер, помогло отключение параметра "показывать панель ЭД-2 в списке ГТД", навигация ускорилась.
Это только на тормоза скроллинга по списку деклараций влияет.
С тех пор мы сделали обновление этой панели пореже (только когда интенсивный скроллинг заканчивается).
В общем, это тоже "копейки" :)

Re: Вопрос по оптимизации SQL

Добавлено: Вт сен 02, 2014 09:33
aiki
Ну, тогда следует проанализировать мат. часть. На сервере нужно запустить монитор ресурсов, и проанализировать показания при активности. Может "затыки" на аппаратном уровне идут, частое обращение к свопу из-за не хватки ОЗУ, или длинные очереди и таймаут по обработке запросов к дисковой подсистеме, отклик сетевого интерфейса, загрузка ЦП.