Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Информационный Канал Subscribe.Ru


#148<<  #149

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.Счётчики производительности SQL Server и Windows
2.ССЫЛКИ НА СТАТЬИ
2.1.Новые и обновлённые технические статьи Microsoft
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа
4.ПОЛЕЗНОСТИ
4.1.Как вставить кавычку в строку?

СОВЕТЫ

Счётчики производительности SQL Server и Windows

Настоящая статья исследует возможности анализа счётчиков производительности Windows 2000, под управлением которой работает SQL Server 2000. Даются пороговые значения ключевых счётчиков, рекомендации по наборам счётчиков для поиска узких мест различных компонент системы в целом и приводятся методики поиска и устранения выявленных с помощью счётчиков проблем.
При написании статьи использовались материалы технической библиотеки на сайте Microsoft, а также поставляемые с указанным выше программным обеспечением справочные, электронные документы и документация, поставляемая с Microsoft® Windows® 2000 Server Resource Kit Server Operations Guide.

[В начало]

Введение

Наличие узких мест производительности может быть вызвано тяжёлым запросом к системным ресурсам, и такие места присутствуют, в той или иной степени, в каждой системе. Исследуя узкие места Microsoft SQL Server с помощью рекомендуемых в этой статье счётчиков производительности, можно разработать комплекс мер по устранению этих узких мест. Узкие места могут быть обнаружены как в производительности компонент операционной среды, так и в компонентах СУБД.

Вот наиболее типичные причины возникновения узких мест:

· Недостаточность ресурсов, требуется их дополнить или модернизировать.
· Совместно используемые ресурсы одного типа, нагрузка на которые распределена не равномерно (например, один диск монополизирован).
· Ресурсы, работающие со сбоями.
· Неправильно отконфигурированные ресурсы.

Windows 2000 предоставляет возможность исследовать информацию о производительности, которая собирается в терминах объектов, счетчиков и экземпляров. Объектом производительности выступает любой ресурс, приложение или служба, производительность которых может быть измерена. Используя информацию, отражаемую в System Monitor (Performance Monitor в Windows NT 4.0), журналах производительности и в журнале оповещений, Вы можете выбирать объекты производительности, счетчики и экземпляры, чтобы собирать и исследовать по их значениям производительность системных компонент или имеющегося программного обеспечения.

[В начало]

Анализ узких мест

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

· Другой компонент может мешать нормальной загруженности исследуемого компонента.
· Чрезмерный сетевой трафик может мешать передаче клиентских запросов на сервер.
· Наличие узкого места может не давать компьютеру клиента получать доступ к серверу.
· Может неправильно использоваться System Monitor. Например, если Вы включили счетчики для не той дисковой подсистемы или Вы ошиблись в выборе экземпляра, указали неправильные счетчики или для не того компьютера, анализируемые данные могут казаться необъяснимо низкими.

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

Кандидат на узкое местоЭффекты на сервера
Память Недостаточный объём распределенной памяти или его доступность для SQL Server ухудшает общую производительность. Данные должны непрерывно читаться с диска, и чаще, чем данные находящийся в кэше постоянно. Windows NT 4.0 и Windows 2000 занимается чрезмерным свопингом данных на/с дисков тогда, когда там находятся необходимые страницы или память нужно освободить для таких страниц.
Процессоры Высокая и продолжительная утилизация процессоров может указывать на необходимость увеличения их числа.
Дисковые операции ввода - вывода (I/O) Медленные диски могут стать причиной снижения производительности I/O (дисковые операции чтения и записи), что ухудшает работу транзакционного механизма.
Подключения пользователей Не правильная конфигурация числа подключений пользователей может привести к медленной работе системы или ограничению объёма памяти, доступного SQL Server.
Блокировки Процесс может вынуждать другие процессы ожидать доступа к ресурсу, замедляя или останавливая, таким образом, работу этих процессов.

Кроме того, к снижению производительности может приводить наличие комбинации узких мест (может быть даже не очень выраженных). Такие проблемы наиболее трудно поддаются локализации, т.к. анализ отдельных компонент не даёт очевидных результатов, по которым можно принять решение о наличии узкого места.

[В начало]

Счётчики

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

\\Computer_name\Object(ParentInstance/ObjectInstance#InstanceIndex)\Counter

где:

  • \\Computer_name - дополнительный элемент, определяющий имя компьютера. Значением по умолчанию является локальный компьютер.
  • \Object - элемент, чью производительность показывает счетчик. Если этот объект имеет переменное количество экземпляров, он дополняется определяющей экземпляр строкой.
    • (ParentInstance/ObjectInstance#InstanceIndex) - элемент, который используется только тогда, когда объект поддерживает наличие множества экземпляров. Формат строки зависит от типа этого объекта. Если объект имеет один экземпляр, достаточно минимального формата, в котором указывается только имя экземпляра, заключённое в круглые скобки. Например: (Explorer).
    • Для объектов, которые существуют в нескольких экземплярах, к имени родителя прибавляется после наклонной черты (/) его номер. Например (Explorer/0).
    • Если объект может иметь множество экземпляров, которые имеют такую же строку имени, они могут быть последовательно проиндексированы, и индекс экземпляра (число, начинающееся с "1") записывается после значка решётки "#". Индексированные экземпляры отсчитываются от нулевого, так как все экземпляры имеют неявный нулевой индекс. Например: (Explorer/0#1).
  • \Counter - элемент, определяющий сам счетчик производительности.

Экземпляр, называемый "_Total instance" существует у большинства объектов и представляет собой сумму з начений для всех экземпляров объекта по используемому счётчику.

[В начало]

Типы счётчиков

Каждый счетчик относится к одному из существующих типов. Тип счётчика определяет, как измеряемые данные вычисляются, усредняются и отображаются. Консоль производительности поддерживает более 30 типов счётчиков, хотя многие из имеющихся типов не реализованы в виде счётчиков, поставляемых с Windows 2000. При описании счётчиков используются следующие обозначения:

  • Counter type name - тип счётчика. Счётчики System Monitor описаны в его справочном файле, там же описаны и их типы. Вы можете щёлкнуть мышкой на описание счётчика, и получите его определение.
  • Description - краткое описание типа счётчика, включающее описание формулы по которой вычисляются счётчики этого типа.
  • Generic type - родительский тип. Это общая категория, которая представляет формат отображения счётчика. Родительский тип включает:
    • Average - среднее значение. Эти счетчики измеряют значение через какое-то время и отображают среднюю величину последних двух измерений.
    • Difference - различие. Эти счетчики вычитают последнее измерение из предыдущего и отображают различие, если оно положительное; если отрицательное, они отображают ноль.
    • Instantaneous - текущее значение. Эти счетчики отображают значение текущего измерения.
    • Percentage - отображается вычисленное значение в процентах.
    • Rate - нормальное значение. Подобно среднему значению, только по всему интервалу измерений.
  • Formula - формула. Описывает, каким образом преобразуются исходные данные и другие компоненты, а также получается результирующий формат вычисленного значения для отображения на консоли. Переменные N и D используются в формуле для описания двух различных компонентов данных, например: исходного значения и частотности. Обычно, они используются для вычислений, необходимых для наглядного отображения полученных значений.

    Для каждого типа счётчиков, в формуле могут встречаться следующие переменные:

    ПеременнаяОписание
    B Переменная, хранящая исходные, основные значения. Некоторые тип счётчиков требуют использования массивов предшествующих значений, которые соотносятся с сохранённым значением для форматирования результатов. Это основное значение для любого тип счётчиков, знаменатель в формуле. При описании типа счётчика с множеством хранимых значений, каждое отдельное значение может быть позиционировано числовым индексом, например: B0 для самого старого значения выборки, B1 для следующего (более современного) значения выборки и Bn для самого последнего значения выборки.
    N Нумератор, обычно является первой переменной. В формулах N используется, чтобы описать исходные значения данных.
    D Знаменатель, обычно вторая переменная, когда она необходима.

Мы не будем описывать все существующие типы счётчиков, а ограничимся только теми, которые нам встретятся по тексту настоящей статьи. Вот они:

Базовый тип Описание Корреспондируемые типы
PERF_AVERAGE_BASE Хранит знаменатель для вычисления счётчика на текущий момент "time per operation" или "count per operation" PERF_AVERAGE_BULK
PERF_AVERAGE_TIMER
PERF_COUNTER_MULTI_BASE Показывает число выбранных элементов. Используется как знаменатель в вычислениях среднего значения выбранных элементов при синхронизации множителя, но сохраняет смысл элементов. PERF_100NSEC_MULTI_TIMER
PERF_100NSEC_MULTI_TIMER_INV
PERF_COUNTER_MULTI_TIMER
PERF_COUNTER_MULTI_TIMER_INV
PERF_RAW_BASE Хранит знаменатель счетчика, который представляет собой общую арифметическую дробь. PERF_RAW_FRACTION
PERF_SAMPLE_BASE Хранит число выбираемых прерываний, принимаемых и используемых как знаменатель в выбираемой дроби. Выбираемая дробь - число выборок, которые были 1 (или ИСТИНА) при типовом прерывании. PERF_SAMPLE_FRACTION

PERF_RAW_FRACTION

Описание Этот тип счётчиков показывает отношение подмножества к его полному множеству в процентах. Например, для сравнения числа байт, используемых на диске к его общему размеру в байтах. Счетчики этого типа показывают текущее процентное отношение, а не среднее значение за какое-то время.
Родительский тип Текущее значение, значение в процентах.
Формула (N0 / D0), где D - измеряемый атрибут, а N - один из компонентов этого атрибута.
Среднее значение SUM (N / D) /x

PERF_COUNTER_COUNTER

Описание Этот тип счётчиков показывает среднее число операций, законченных в течение одной секунды - базового интервала. Счетчики этого типа измеряют время импульсами сигналов системного таймера. F - переменная, которая представляет число импульсов сигнала таймера в секунду. Значение F разлагается в уравнении так, чтобы результат мог быть отображен в секундах.
Родительский тип Различие.
Формула (N1- N0) / ( (D1-D0) / F), где нумератор (N) представляет число операций, выполненных в течение последнего базового интервала; знаменатель (D) представляет число импульсов таймера за последний базовый интервала; F - частота импульсов таймера.
Среднее значение (Nx - N0) / ((Dx - D0) / F)

PERF_COUNTER_RAWCOUNT

Описание Этот тип счётчиков показывает только последнее, полученное значение. Они не показывают среднее значение.
Родительский тип Текущее значение.
Формула Не используется. Показываются исходные данные так, как они были собраны.
Среднее значение SUM (N) / x

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

[В начало]

ССЫЛКИ НА СТАТЬИ

Новые и обновлённые технические статьи Microsoft

FIX: Corrupted TDS Packets Cause Access Violation in SQL Server
FIX: Distribution Agent Fails with "Violation of Primary Key Constraint" Error Message
FIX: Infinite Recompile Occurs on Indexes That Have More Than 2,147,483,647 Rows
FIX: Intense SQL Server Activity Results in Spinloop Wait
FIX: Many Temporary Tables Remain After Analysis Services Drills Down a ROLAP Cube in SQL Server
How to Control the SQL Server Services on Windows 95 or Windows 98
How to Use ESQL in a Threaded Application
HOW TO: Add SQL Server 2000 Stored Procedures to Visual SourceSafe by Using Visual Studio .NET
HOW TO: Set Up Alternate Synchronization Partner in SQL Server 2000 Merge Replication
Ident.exe Retrieves @@IDENTITY From ODBC Inserts
INF: How to Suppress the Appshelp Message in an Unattended Installation
INF: Upgrade Virtual Servers from SQL Server 2000 Enterprise Evaluation Edition to SQL Server 2000 Enterprise Edition
MDAC 2.6 or Later Should Not Be Installed on SQL Server 7.0 Clusters
MDAC Cliconfg.* Files Are Not Upgraded After You Install SQL Server 2000 SP3a
Overview of the SQL 2000 Critical Update Wizard
PRB: "Setup Failed to Configure the Server" Error Message When You Install MSDE

[В начало]

Англоязычные статьи

Monitoring Performance
Viktor Gorodnichenko
DBAs are in charge of performance on production SQL servers and, sure, they hate to hear complains from end-users that the system is slow. But the truth is that often the complains are not groundless. As long as for developers performance is a last thing to care about after delivering a required functionality, providing wonderful interface, debugging and loud celebrating a new release shipped to production, then we have what we have. As a result, managers use to ask “What’s going on on the server?” and DBAs really need to have a clear and accurate answer.
Altering Replicated Tables (SQL 2000)
Andy Warren
A few weeks ago I published an article about modifying replicated tables with SQL 7. If you haven't read that article, I encourage you to do so before continuing. With SQL 2000 you can now add a column to a table (and a publication) with very little effort. The only thing to remember is that if you want the new column to be added to the subscribers, you MUST make the change via the 'Filter Columns' tab of the publication properties. SQL still provides no help if you want to modify an existing column. You can drop a column as long as it is not part of the primarykey or part of a filter (thanks to Jeff Cook for pointing this out to me). If you don't want the new column to be part of any existing publication you can add the column via Enterprise Manager or Query Analyzer.
Seven Monitoring Scripts
Joseph Sack
In this article, I will share with you seven Transact-SQL queries that I like to run daily for the SQL Server instances I support. These queries can be integrated into your own stored procedures, web pages, email reports, or monitoring routines

[В начало]

ФОРУМ SQL.RU

Самые популярные темы недели

Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
Новые упражнения на http://sql.ipps.ru
Как подключить базу Oracle к MSSQL !
Пацаны! вопрос на засыпку чиста! :)
Отмена каскадного удаления???
Блокировка данных
NULL или NOT NULL?
identity и репликация
Как сделать, чтобы триггер запустился всего ОДИН раз за всю операцию
Список пользователей в домене через SQL?
Как создается временная таблица?
Результат работы процедуры в таблицу
Разные домены и SQL-идентификация. Почему?
Автооповещение. Помогите настроить девушке.
Две таблицы - надо получить данные которые различны в них
View на view..на view
а как добавить в ячейку
Jobs CmdExec
Создание папок в виртуальном диске
Проблема с репликацией
Долгий-долгий запрос, можно ли ускорить?
BULK INSERT работает с перебоями
Можно ли как-то скрыть текст запроса в EM (Process Info), что запусается средств
Выделение кода из номера
помогите с производительностью (partition view)
backup на удалённый диск
ADOrecord?
Установка Microsoft SQL Server на Windows XP ?.....
Обновление данных на клиенте
Импорт данных из Clipper в MSSQL
Communication link failure
Как и надо ли бороться с идентичными подзапросами
удаление данных из таблицы с обнулением ID-Identity
Как хранить разницу между двумя датами
Как переносить(копировать) файлы средствами MS SQL?
Приоритет заданий шедуллера и приоритеты остального
MSDB SUSPECT ;(((
Альтернативные решения одной задачи
запустить процедуру пользователем(HE SA)
OPENROWSET и права на его использование
Иерархия, допускающая родственные связи
DTS

[В начало]

Вопросы остались без ответа

оценка физической памяти для БД
Дыры в терминальном сервере
MDAC 2.7 sp.1
А есть ли у кого описание xp_sqlagent_notify
Тест 70-229
Как просмотреть логи? ИЛИ как сделать по другому...
OpenRowset, connection string & MS Indexing Service
Перенос расписаний из 7.0 в 2000 ?
Very need Rac v.1.15 for SQL
Статистические функции в сиквеле
linked server: программа умирает, не дотянув до таймаута

[В начало]

ПОЛЕЗНОСТИ

Рассылка:  Вопросы и ответы по Microsoft SQL Server

Автор рассылки: Сергей Кошкин

Выпуск No. 17 от 2003-06-13
Вопрос : Как вставить кавычку в строку?
Ответ

[В начало]


Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру Гладченко на адрес: mssqlhelp@pisem.net

sql.ru Описание рассылки

МИНИФОРМА
ПОДПИСКИ




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное