Показаны сообщения с ярлыком mssql. Показать все сообщения
Показаны сообщения с ярлыком mssql. Показать все сообщения

пятница, 20 января 2012 г.

Автотюнинг БД MSSQL с Database Engine Tuning Advisor

Ну и запросы у вас - сказала база данных и повисла

Прикопаю еще одну полезную операцию, к которой приходится прибегать раз в полгода, чтоб в очередной раз не вспоминать мучительно в какие программы и в каком порядке нужно втыкать если база стала подтормаживать.

  • Запускаем SQL Server Profiler ("C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\PROFILER.EXE"), Файл - Создать трассировку (Ctrl-N), включаем сохранение в файл, увеличиваем размер файла:



  • Нажимаем Запустить, открывается окно с трассировкой:



  • Открываем приложение(я), которое работает с БД и выполняем все операции, которые так или иначе обращаются к БД, ну или как вариант выполняем только ту операцию, с тормозами которой надо разобраться.
  • Останавливаем трассировку Файл - Остановить трассировку.
  • Запускаем Помощник по настройке ядра СУБД (Database Engine Tuning Advisor, "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\DTASHELL.EXE"):



  • Указываем файл, созданный профайлером и имя БД (можно и отдельные таблицы в этой БД), обращения к которой надо анализировать:



  • Давим кнопку Начать анализ
  • По завершению анализа программа выдаст рекомендации по тюнингу БД:



    Если при трассировке выполнялись не все возможные операции с БД, то к рекомендациям удалять индексы надо отнестись с осторожностью - скорее всего они все таки нужны именно в этих, не протестированных операциях.

  • После того, как нужные рекомендации отмечены, а не нужные наоборот, выбираем Действия - Применить рекомендации
  • Переходим к началу инструкции и повторяем все еще раз до тех пор, пока Помощник перестанет выдавать рекомендации по улучшению.

четверг, 12 мая 2011 г.

Timeout в Microsoft SQL Server Management Studio

Второй раз в этом году трачу лишние полчаса на "открытие Америки" :( Пожалуй надо записать, пригодится через год.

Если попытаться в дизайнере Microsoft SQL Server Management Studio изменить, например, размер поля в большой таблице, есть неплохие шансы получить через 10 мин сообщение:


- Не удалось изменить таблицу.  
Истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает.
Выполнение данной инструкции было прервано.

Чтобы операция могла спокойно завершиться нужно в режиме дизайнера открыть диалог настройки через меню Сервис-Параметры и увеличить Интервал ожидания транзакции:



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

суббота, 27 февраля 2010 г.

Переезд с Windows 2003/IIS6/MsSql2005 на Windows 2008/IIS7/MsSql2008

Намедне пришлось "переезжать" ASP.NET/MSSQL сайт, разработанный в расчете на Windows 2003/IIS6/MsSql2005 на Windows 2008/IIS7/MsSql2008 (просто потому что Windows 2003/MsSql2005 для новых заказчиков купить уже нельзя, только Windows 2008/MsSql2008). Непонятки пришлось собирать по кусочкам, поэтому решил заскладировать в одном месте.

  1. Законнектиться к локальному SQL server по имени .\MSSQLSERVER теперь нельзя, хотя установлен он таки с именем инстанции MSSQLSERVER, надо писать (local)
  2. Ok, запускаю инсталлятор сайта, вписываю (local), однако SQL Server все равно не виден. Оказывается упразднили SQLDMO :( Проблема решается установкой компонентов обратной совместимости с Microsoft SQL Server 2005 SQLServer2005_BC.msi из пакета дополнительных компонентов для Microsoft SQL Server 2008.
  3. Следующий шаг в инсталляторе, и - теперь он не видит IIS7, чтобы создать сайт. Причина аналогичная - компоненты IISNamespace отсутствуют как класс.
    Решение даже попроще - при настройке ролей сервера надо дополнительно инсталлировать компоненты, обеспечивающие совместимость со средствами управления IIS6:



    Уфф, инсталлятор отработал.
  4. Запускаю сайт, первая же страничка, которая обращается к базе выдает:
    "System.Data.SqlClient.SqlException: Ошибка входа пользователя "IIS APPPOOL\DefaultAppPool"".
    Решение такое - открываем диспетчер служб IIS, заходим в настройки дополнительных параметров для DefaultAppPool:



    В этих настройках находим параметр Удостоверение (Identity) и изменяем учетную запись с ApplicationPoolIdentity на LocalSystem:



    Чудо - данные из базы появились на страничках.
  5. Радоваться однако рано - на сайте нет ни одной картинки, которые генерируются при помощи HttpHandlers. Оказывается IIS7 не видит обработчиков, зарегистрированных в Web.config в секции <system.web><httpHandlers> и их нужно перетащить в <system.webserver><handlers>, добавив для правильности формата атрибуты name и preCondition.
  6. Остался не работающий модуль (IHttpModule), определяющий разрешение экрана клиента. Решение аналогичное - запись для него, которая была в <system.web><httpModules> надо вставить в <system.webServer><modules>.
  7. И последняя мелочь - нормально отображавшаяся картинка, заданная как background-image: url(/images/plan.gif) показываться не хочет. Так - background-image: url(~/images/plan.gif) - тоже. Отображается только так - background-image: url(images/plan.gif).
Картинки появляются, все остальное тоже вроде как фунциклирует, рабочий день прошел.