semenov
Рейтинг
+1.39
Сила
2.47

semenov

Открытие скрытых данных для оптимизации производительности приложений

Ян Стерк (Ian Stirk)
Код доступен для загрузки по адресу: DMVsinSQLServer2008_01.exe (155 KB)

В статье рассматривается:
Динамические административные представления и функции
Причины задержек в работе серверов
Распространенные проблемы с индексом
Проблемы, связанные с логическим вводом/выводом

msdn.microsoft.com/ru-ru/magazine/cc135978.aspx

Не очень известный факт о кластерном индексе

Казалось бы все уже давно разжевано, однако об одном интересном факте мало кто знает — если кластерный индекс уникальный, то при создании неуникальных некластерных индексов, ключ кластерного индекса будет не только на листовом уровне дерева, но и в промежуточных узлах. Об этом подробно написала Kalen Delaney в своем блоге: sqlblog.com/blogs/kalen_delaney/archive/2010/03/07/more-about-nonclustered-index-keys.aspx Не пересказывая г-жу Дилани, отмечу только, что это приводит к интересному эффекту — при наличии уникального кластерного индекса по полю X и неуникального некластерного индекса по полю Y, для запроса вида select… where Y = @param1 and X = @param2 при использовании некластерного индекса, index seek будет по обоим полям — Y, X, а не только по Y. Если же этот индекс сделать уникальным, то, как и ожидается, ключ кластерного индекса будет только на листовом уровне, и index seek будет только по Y.

Как зашифровать флешку (truecrypt)

У каждого человека есть секреты. Личный дневник, пароль от банковского счета в Швейцарии, фотки укреплений вероятного противника, чертежи вечного двигателя, список любовниц, да мало ли что еще. Данные удобно хранить на USB флешке. Она маленькая, дешевая, емкая. Ее легко носить в кармане, просто спрятать или передать другому человеку. Но так же просто флешку потерять.

Задача: мне нужен USB флеш диск вся информация на котором зашифрованна. Когда я вставляю флешку в компьютер – она должна спрашивать пароль и без правильного пароля не расшифровываться. Флешка должна работать автономно, без установки на компьютер какого либо софта.

Идеальным средством для решения такого рода проблем является шифрование данных. Тыц.

Мониторинг производительности RAM

Два наиболее важных счетчика памяти, за которыми нужно следить:
Page Faults/sec (Ошибок страницы/сек);
Pages/sec (Обмен страниц в сек).

При использовании совместно эти счетчики подскажут, хватает ли оперативной памяти вашей системе. Они сделают это, продемонстрировав объем подкачки.

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

Счетчик Page Fault/sec включает в себя ошибки аппаратуры и программ. Допустимый уровень значительно выше, чем для счетчика Pages/sec. Многие системы выдерживают до 250 ошибок страниц, пока работа системы не даст заметный сбой. Значение Pages/sec, равное 20, тем не менее, показывает, что система сконфигурирована с недостаточной RAM. Как только значение Pages/sec превысит 10, начинайте думать о добавлении памяти.

Другими счетчиками для отслеживания являются:
Commit Limit (Предел выделенной виртуальной памяти);
Committed Bytes (Байт выделенной виртуальной памяти).

Эти два счетчика работают вместе, так что надо просматривать их оба, чтобы решить, что система использует виртуальную память соответствующим образом. Счетчик Commit Limit показывает общее количество доступной виртуальной памяти. Счетчик Committed Bytes показывает общее количество виртуальной памяти, которое система уже получила из своих ресурсов. Когда значения Committed Bytes приближается к Commit Limit, вы узнаете, что в системе заканчивается виртуальная память.

Может потребоваться регулировка максимального и минимального значения файла подкачки в зависимости от особенностей работы системы. Компания Microsoft рекомендует делать минимальную величину файла подкачки равной физической RAM плюс 11 Мб. Лучший способ состоит в определении обычных рабочих требований файла подкачки для данного компьютера, чтобы затем указать это значение (если оно не будет ниже рассчитанного по формуле Microsoft).

Примечание. Windows XP Professional позволяет компьютеру самому определять величину файла подкачки. Если вы так поступите, то можете получить сбой в работе. Лучше устанавливать величину файла подкачки вручную.

Максимальным размером файла подкачки должно быть самое большое допустимое значение. Это звучит очень неопределенно, так что лучше установить максимальное значение равным 150 % от минимального, следить за значениями Commit Limit и Committed Bytes и внести уточнения.

Оригинал тыц

Обнаружение проблем ввода-вывода, связанных с SQL Server

Можно выделить два основных счётчика, которые можно использовать для того, чтобы быстро проанализировать работу дисков:

Avg. Disk sec/Read — показывает среднее время в секундах, потраченное на чтение данных с диска.
Avg. Disk sec/Write — показывает среднее время в секундах, потраченное на запись данных на диск.

Эти два счётчика измеряют время ожидания непосредственно в той программной надстройке, где диски устройства хранения данных становятся доступны операционной системе. Они позволяют точно измерить, сколько времени диски и аппаратное окружение потратили на обслуживание запросов ввода-вывода независимо от того, какие были задействованы аппаратные средства.
Используя эти счётчики при исследовании загрузки нескольких дисков, можно выяснить то, как обстоят дела с каждым отдельным диском, таким образом, можно понять, является ли узким местом какой-либо из исследуемых дисков.
Подобно правилу буравчика, если мы имеем дело с OLTP системой, среднее значение должно быть меньше 15 ms со всплесками до 25 ms. Если у вас эти значения ниже указанного порога, тогда ваш ввод-вывод не испытывает затруднений, и никакой дополнительный анализ узких мест дисков больше не потребуется. Это эмпирическое правило может использоваться для любого типа системы. Чем меньше времени требуется для чтения или записи данных, тем быстрее будет ваша система.
Картинка ниже показывает Avg. Disk sec/Read для диска C:. Можно видеть, что среднее значение порядка 0.130, что составляет 130 ms, и максимальное значение 1.089, что составляет 1089 ms. Таким образом, у исследуемой системы ввод-вывод является узким местом, что видно из полученных значений счётчиков. Если бы интерпретировалось значение Avg. Disk sec/Write, оно привело бы к аналогичным выводам.

Если значения представленных выше счётчиков превышают указанные оптимальные пороговые значения, придётся заняться более глубоким анализом, измерив для этого данные следующих счётчиков производительности:

Disk Transfers/sec – демонстрирует нагрузку операций чтения и записи на диск.
Disk Reads/sec — нагрузка операций чтения с диска.
Disk Writes/sec — нагрузка операций записи на диск.
Avg. Disk Queue Length — показывает среднее значение числа запросов чтения и записи, которые стояли в очереди к выбранному диску во время интервала измерений.
Current Disk Queue Length — показывает число запросов, адресованных выбранному диску в то время, когда непосредственно выполнялись измерения.

Оригинал www.itcommunity.ru/blogs/rsug/archive/2011/09/21/171608.aspx

Классификация водки и других напитков в стиле IT

0.1л – demo
0.25л – trial version
0.5л – personal edition
0.7л – professional edition
1.0л – network edition
1.75л – enterprise
3л – for small business
5л – corporate edition
Бутыль самогона – home edition
“На посошок” – Service pack
Рассол с утра – Recovery tool
Закуска – plugins
Пиво – patch
coca-cola, fanta, 7-UP – trojan viruses

Заметки о MS SQL Server

Лучшие советы по эффективному обслуживанию баз данных
Пол С. Рэндал (Paul S. Randal)

Удобная процедура трассировки событий на стороне сервера

Объём дисков на T-SQL

Команды управления DBCC (Transact-SQL)

Resource Governor: управление ресурсами в SQL Server

Прозрачное шифрование баз данных

Уровни RAID и SQL Server
В SQL Server обычно реализуются уровни RAID (redundant array of independent disks, избыточный массив независимых дисков) 0, 1 и 5.

Описание и исправление неточностей в подсчете страниц и строк в представлениях каталога.
DBCC UPDATEUSAGE (0);
GO

Очистка процедурного КЭШа

Оптимизатор MS SQL Server кэширует планы запросов для их повторного выполнения. Это делается для того, чтобы экономить время, затрачиваемое на компиляцию запроса в том случае, если такой же запрос уже выполнялся и его план известен.

Возможна ситуация, при которой MS SQL Server, ориентируясь на устаревшую статистическую информацию, построит неоптимальный план запроса. Этот план будет сохранен в процедурном КЭШе и использован при повторном вызове такого же запроса. Если Вы обновили статистику, но не очистили процедурный кэш, то SQL Server может выбрать старый (неоптимальный) план запроса из КЭШа вместо того, чтобы построить новый (более оптимальный) план.

Таким образом, рекомендуется всегда после обновления статистик очищать содержимое процедурного КЭШа.

Для очистки процедурного КЭШа MS SQL Server необходимо выполнить следующий SQL запрос:
DBCC FREEPROCCACHE

Этот запрос следует выполнять непосредственно после обновления статистики. Соответственно, частота его выполнения должна совпадать с частотой обновления статистики.

Информация об использовании пространства
exec sp_spaceused

Информация о моделях восстановления и сортировок
select name, recovery_model_desc, collation_name from sys.databases

Сконфигурировать модель
ALTER DATABASE <Имя бд> SET RECOVERY FULL|SIMPLE|BULK_LOGGED

Скрипты Windows на заметку

Сбор информации (дата и размер файлов) файлов каталога в отдельный список
Выполните команду в CMD: dir /s /tc /l <путь к серверной части>\*.* > <имя списка>

dir /s /tc /l “R:\ISPRO709.DEMO\Dll\*.*” > List.txt

Находясь в нужном каталоге можно выполнить следующую команду:

dir /s > List.txt

Что такое взаимоблокировки и как с ними бороться

Deadlocks. Cтатья опубликована в журнале RSDN Magazine #5-2003

Введение
Основные понятия

Блокировки
Типы блокировок
Блокировки намерения
Протокол двухфазной блокировки
Уровни изоляции
Особенности Microsoft SQL Server
Взаимоблокировка
Встроенные способы определения взаимоблокировок

Timeout based
Wait-for graph based
Timestamp based
Реализация в Microsoft SQL Server
Возможные причины возникновения взаимоблокировок
Первый пример
Второй пример
Способы устранения
Третий пример
Определение «виновных» транзакций
Анализ ситуации
Способы устранения
Распределенная взаимоблокировка
Общие рекомендации
Первоисточники

Автоматизация обслуживания индекса базы данных в MS SQL SERVER

Следующий сценарий проверяет все индексы в базе данных Сервер планирования и находит индексы со средней фрагментацией больше 10%. Затем, в зависимости от степени фрагментации, для этих индексов выполняется реорганизация или перестроение.
Читать дальше →