« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга



ПнВтСрЧтПтСбВс
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
    Популярное
Гостевая книга на ASP.NET

Анимация спрайтов

Протокол взаимодействия процесса Winlogon и библиотеки GINA

Вызов функций по указателю

Функция AccessResource

ПРИЛОЖЕНИЕ 1. Основы языка программирования C++

Создание и запуск проекта на основе ATL Server

Архитектура BDE и его особенности при работе с SQL-серверами

Оптимизация приложений С++Builder в архитектуре клиент/сервер

8 веских причин сделать сайт на PHP




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 176
Пользователей: 0

Статьи:: Базы данных :: MS SQL Server :: О настройке конфигурации SQL Server 7.0



отправить ссылку другу версия для печати  Обсудить на форуме

О настройке конфигурации SQL Server 7.0

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

Хорошо известны общие положения оптимизации работы СУБД. Настройка выполняется с целью увеличения производительности. Производительность сервера измеряется транзакциями в секунду, а клиента – определяется временем отклика. Исходной картиной для настройки является базовая линия (Base Line). Настройка и оптимизация выполняются сначала для приложения и физической реализации базы данных, и лишь затем изменяются параметры конфигурации сервера. Но именно о конфигурации сервера и пойдет речь в этой статье.



Есть еще одно общее правило: не изменять несколько параметров одновременно. Изменили, увидели положительный эффект, оставили. Не увидели положительного эффекта – вернули в исходное состояние. И, конечно, никто не проводит эксперименты с рабочим, «боевым», сервером.

В Microsoft автоматическую настройку SQL Server 7.0 называют одной из его замечательных положительных черт. И это подтверждает практика. Почти все опции, влияющие на производительность сервера, в документации SQL Server 7.0 отмечены как SC. Это означает, что сервер устанавливает для них оптимальные значения самостоятельно (Self Configuring). С другой стороны, если оптимальные значения параметров устанавливаются автоматически и их не рекомендуется изменять, зачем тогда открыт доступ к ним? Зачем разработчики все-таки оставляют администраторам искушение настраивать сервер? Если параметры доступны, очень хочется этим воспользоваться. Некоторые специалисты называют параметры Memory, Locks, User connections первыми очевидными претендентами на настройку. Рассматривая возможность конфигурирования сервера, стоит начать с параметров, для изменения которых нет ограничений и запретов. Есть ли такие параметры и как с ними работать? Постараемся ответить на этот вопрос.

Итак, если для настройки приложения уже все готово, а уровень производительности не устраивает, можно попробовать заняться сервером. Но при этом необходима самая тщательная проверка и тестирование.

Из параметров конфигурации SQL Server 7.0 нужно выбрать те, которые связаны с производительностью и не отмечены как настраиваемые автоматически. Среди них существуют еще и такие, которые имеет смысл изменять только в многопроцессорных конфигурациях: affinity mask и lightweight pooling. Сюда же можно отнести параметр priority boost. В базе знаний MSDN отмечается, что установка значения этого параметра в 1 (что означает изменение приоритета с 7 на 15 в однопроцессорном варианте сервера) не дает положительного эффекта. Настройку многопроцессорной конфигурации стоить рассмотреть в отдельной статье.

Параметры памяти SQL Server 7.0 по умолчанию регулируются автоматически. Max server memory и Min server memory на выделенном сервере настройки не требуют. Ручная настройка параметра Max server memory на практике применяется для ограничения объема памяти, которую может использовать SQL Server, и обеспечения гарантии запуска и работы других приложений. А это не связано с оптимизацией СУБД.

В результате отсева остается два параметра: Network packet size и Min memory per query, которые не запрещено настраивать и которые не настраиваются автоматически. Рассмотрим их подробнее.

Network packet size

Сетевая библиотека SQL Server передает и получает данные из сети фиксированными порциями, размер которых соответствует размеру сетевого пакета (Network packet size). Маленький размер пакета (512 байт) будет эффективен, если определяющим фактором является время реакции сервера. Увеличение размера сетевого пакета СУБД при условии, что сетевые протоколы тоже поддерживают большие пакеты, приведет к увеличению пропускной способности, так как передача больших пакетов обходится дешевле. Это имеет смысл только в том случае, когда работа приложений действительно требует в ответ на один запрос или в рамках одной транзакции пересылать большой объем данных. Настраивать значение параметра network packet size следует только на выделенном под СУБД сервере.

Если в таблицах базы данных имеются поля типа Text и Image, можно записать идентификаторы этих объектов и с помощью SQL Server Profiler получить трассировку событий Object: Opened и Object:Closed c соответствующей фильтрацией по Object ID. Теперь нужно посмотреть, насколько активно идет работа с полями этих типов. Если выяснилось, что с типами Text и Image постоянно идет интенсивная работа, можно продолжить анализ.

Как определить, что через сеть отправляются и принимаются большие объемы данных? Какой объем считать большим и насколько увеличивать размер пакета? Рассмотрим отдельно отправляемые и получаемые данные. Размер сетевого пакета стоит увеличивать, если средний объем данных, возвращаемых запросами, устойчиво превышает размер сетевого пакета по умолчанию. Определить объем данных, отправляемый сервером в сеть, позволяет административное приложение Network Monitor. В этом приложении нужно установить фильтрацию отправляемых сервером пакетов TCP и IP, узнать среднюю скорость передачи за конкретный период времени, а именно параметр Bytes Per Second. Объем принимаемых данных выводится аналогично. Но как по скорости передачи определить средний объем одного запроса? Для этого нужно знать среднее количество запросов в секунду. Такого счетчика в мониторе производительности SQL Server нет. Можно воспользоваться средним значением счетчика Batch Requests/sec объекта SQL Server: SQL Statistics. Он показывает, сколько пакетных запросов на выполнение SQL-операторов, получаемых в секунду. Эта статистика определяется операциями ввода/вывода, количеством пользователей, размером буферного кэша, сложностью запросов и т. д. Высокий показатель счетчика свидетельствует о большой пропускной способности сервера. Если значение параметра Bytes Per Second, полученное в Network Monitor, разделить на среднее значение счетчика Batch Requests/sec, определяемое в Performance Monitor, то получим очень грубую среднюю оценку количества байтов, соответствующих одному пакетному запросу. Очевидно, что показания в Network Monitor и Performance Monitor нужно снимать одновременно. Если полученное значение намного превышает размер сетевого пакета, то последний можно увеличить. Максимальный размер сетевого пакета в SQL Server 7.0 + SP2 составляет 64 Кбайт.

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

Рекомендованное в документации увеличение размера сетевого пакета при выполнении команды Bulk Insert имеет смысл только в том случае, когда исходные файлы находятся не на сервере. Такие ситуации можно выявить с помощью SQL Server Profiler, настроив фильтрацию по критерию Text: Include: Bulk Insert.

Сегодня основным транспортным протоколом в сетях стал TCP/IP. В SQL Server 7.0 сетевая библиотека TCP/IP устанавливается по умолчанию как одна из основных. Как соотносится параметр Network packet size и параметры протокола TCP/IP? Нужно ли настраивать размер сетевого пакета SQL Server в соответствии с размером TCP-окна?

Размер окна TCP определяет объем информации, который можно передать без подтверждения. В Windows NT максимальный размер окна равен 64 Кбайт, что соответствует максимальному размеру сетевого пакета SQL Server. При установке соединения между хостами размер окна задается равным четырем максимальным размерам TCP-пакета. Для сети Ethernet по умолчанию начальный размер окна равен 16 Кбайт. С помощью Network Monitor можно увидеть, что в таком окне как раз помещается четыре сетевых пакета SQL Server. В Windows 2000 предусмотрен автоматический переход к масштабированию размеров окна, если максимальный размер TCP-пакета превышает 64 Кбайт. В предельном случае размер окна может составлять 1 Гбайт. Таким образом, о соотношении размера окна TCP и размера сетевого пакета SQL Server 7.0 позаботились разработчики сервера, и администратору беспокоиться об этом не нужно. Размер сетевого пакета никогда не превысит размера окна. Другие транспортные протоколы и соотношение с ними размеров сетевого пакета мы в этой статье не рассматривать не будем.

Что касается физического уровня, то даже для 10-мегабитного Ethernet 32разрядная сетевая карта имеет скорость передачи порядка 1,2 Мбит/с. Следовательно, здесь ограничений тоже нет.

Min memory per query

Этот параметр определяет минимум памяти, гарантированно выделяемый каждому запросу. Выделяемая память имеет область сортировки. Если запрос не может получить минимум памяти, он ожидает своей очереди в соответствии со значением параметра query wait. Иногда система может позволить запросу задействовать памяти больше, чем указывает параметр min memory per query. Запросы, требующие много памяти, включают сортировку или хеширование. Прежде чем пытаться поднять производительность, увеличивая значение параметра min memory per query, нужно выяснить, есть ли запросы, требующие такого увеличения.

Хеширование используется при реализации операторов Join. Такие запросы можно отфильтровать по критерию Text: Include: Join в SQL Server Profiler. Запросы с сортировкой фильтруются по критерию Text: Include: Order by. Просто отфильтровать такие запросы недостаточно. Нужно не учитывать случаи применения специально созданных для ускорения сортировки индексов. Если соответствующие индексы используются, то большой объем памяти для сортировки не нужен. В этом случае запросы с сортировкой выполняются сравнительно быстро.

Значение параметра min memory per query увеличивается для того, чтобы запрос получал сразу много памяти и не обращался за ней дополнительно. Определить общий объем памяти, выделенной под хеширование, сортировку, создание индексов и выполнение bcp, можно с помощью счетчика Granted Workspace Memory объекта SQL Server: Memory Manager в Performance Monitor. Его значение увеличивается только тогда, когда для сортировки нет подходящих индексов. По счетчику Maximum Workspace Memory определяют, сколько всего имеется памяти для выполнения таких операций, и его показатель, как и всякий общий резерв, должен намного превышать значение Granted Workspace Memory. Счетчик Memory Grants Pending показывает количество процессов в секунду, ожидающих получения памяти. Если выполняется много параллельных запросов c хешированием и сортировкой, а минимальный размер памяти увеличен, то не все запросы смогут ее получить. В этом случае тестирование после увеличения параметра min memory per query показывает возросшее среднее значение Memory Grants Pending, следовательно, min memory per query нужно восстановить. Очень важно, чтобы оперативной памяти на компьютере было не меньше 1 Гбайт. В противном случае эффекта ожидать не стоит.

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

КРАМАРСКАЯ ТАТЬЯНА АЛЕКСЕЕВНА

к.т.н., MCSE, MCDBA, MCT. Специализируется на преподавании и консультировании по вопросам использования SQL Server и продуктов BackOffice. Старший консультант компании АЛЕСТА (MCSP,CTEC). Адрес: kram@alesta.ru


Таблица 1
Название параметра Минимальное значение Максимальное значение Значение по умолчанию
Network packet size (Байт) 512 65 535 4096
Min memory per query (Кбайт) 512 2 147 483 647 1024



Рубрика: MS SQL Server




Подгрузка через AJAX HTML-кода, содержащег....

AJAX

При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Обзор нового релиза самой мощной Ajax библ....

AJAX

Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Firebug 1.3 и 1.4 alpha — что нового и инт....

Вебмастеру

Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.


Подробнее... | Рубрика: Вебмастеру | Добавлено: 19.11.2008

Остальные статьи:

Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...
День программиста — набор стерeотипов
Индусские програмисты
Вышел Django 1.0
Портативная версия Google Chrome Portable
Исходные коды .Net Frameword 3.5 SP1 для о...
Пишем правильный online WYSIWYG-редактор


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия