Главная              Рефераты - Информатика

MS SQL Server 6.5 - реферат

ПРИЛОЖЕНИЕ 1


MicroSOFT ВЫПУСКАЕТ SQL SERVER 6.5


Рекордные показатели по соотношению "цена—производительность" на платформе Windows NT Server; новые возможности по поддержке Internet и интрасетей (intranet)

В апреле на выставке DB Expo в Сан-Франциско компания Microsoft Corp. объявила о выходе Microsoft SQL Server 6.5. Эта СУБД, ориентированная на платформу Windows NT Server, представляет собой значительный шаг вперед по сравнению с Microsoft SQL Server 6.0.

Microsoft SQL Server 6.5, клиент-серверная система управления базами данных, предоставляет богатый спектр новых возможностей, которые облегчают процесс создания, внедрения и управления распределенными клиент-серверными прикладными программами. Основные новые возможности: встроенная поддержка приложений Internet, усовершенствованные механизмы распределенных транзакций, тиражирование в разнородных средах, расширенные распределенные средства управления и новая архитектура динамической блокировки (Dynamic Locking).

"Microsoft SQL Server 6.5 представляет собой значительный прорыв в области клиент-серверных баз данных",- сказал Джим Оллчин (Jim Allchin), вице-президент Microsoft по настольным системам и системам для бизнеса. "Начиная с версии 6.0, а теперь и в виде версии 6.5, система Microsoft SQL Server всегда являлась одним из базовых компонентов семейства серверных прикладных программ Microsoft BackOffice. Microsoft SQL Server обеспечивает производительность, безопасность и взаимодействие с другими системами, которые так необходимы для организации работы предприятия. В то же время эта система весьма экономична и проста в управлении, что делает ее идеальным решением для компаний любого размера".

Microsoft SQL Server 6.5 является лучшей СУБД для Windows NT Server и тесно интегрируется с Microsoft BackOffice. В Microsoft SQL Server 6.5 полностью используются такие возможности Windows NT, как механизмы обеспечения защиты, регистрация событий, контроль за производительностью, использование потоков и асинхронный ввод-вывод.

Система Microsoft SQL Server 6.5 продемонстрировала беспрецедентную производительность на платформе Windows NT Server. По результатам стандартного тестирования TPC-С Benchmark, которые были объявлены в начале апреля, Microsoft SQL Server 6.5 обошел Oracle 7 и Sybase System 11 по пропускной способности, продемонстрировав скорость 3,641 транзакций в минуту (tpmC). Таким образом, система заняла первое место среди всех баз данных, при работе на основе Windows NT Server и на аналогичной аппаратной платформе. СУБД Microsoft SQL Server 6.5 также установила рекорд по показателю "цена- производительность", который достиг $147.62 за транзакцию. Таким образом, впервые база данных преодолела барьер в $150 за транзакцию.


ПОВЫШЕННАЯ ПРОИЗВОДИТЕЛЬНОСТЬ БЛАГОДАРЯ ДИНАМИЧЕСКОЙ БЛОКИРОВКЕ

Высокую скорость работы Microsoft SQL Server 6.5 обеспечивают: усовершенствованный процессор баз данных, расширенные возможности параллельной работы на основе потоков Windows NT, а также новая возможность динамической блокировки (Dynamic Locking). Dynamic Locking - это новая технология Microsoft, благодаря которой Microsoft SQL Server может выбирать наиболее оптимальный уровень блокировки на уровне строки, таблицы или базы данных, что позволяет максимизировать скорость работы. Только Microsoft SQL Server обладает возможностью динамического выбора того варианта блокировки, который больше всего подходит для каждого конкретного случая.


ПРИКЛАДНЫЕ ПРОГРАММЫ ДЛЯ INTERNET НА ОСНОВЕ БАЗ ДАННЫХ

Microsoft SQL Server 6.5 облегчает создание и управление прикладными программами для внутренних корпоративных сетей (так называемые "интрасети") и Internet. Новая утилита Microsoft SQL Server Web Assistant использует интерфейс, типичный для программ-мастеров, и шаг за шагом помогает администратору базы данных или Web-мастеру помещать данные из Microsoft SQL Server в сети World Wide Web. Таким образом можно легко создавать интерактивные Web-узлы, основу которых составляют базы данных. При помощи утилиты Web Assistant, Microsoft SQL Server автоматически создает страницы на основе гипертекстового языка описания документов (HTML) или заполняет HTML- шаблоны данными из Microsoft SQL Server, причем это может осуществляться либо каждый раз при изменении данных, либо в установленные моменты времени.

В сочетании Microsoft SQL Server 6.5 и Microsoft Internet Information Server позволяют при помощи программ просмотра Web, включая Microsoft Internet Explorer и Netscape Navigator, создавать запросы по данным, хранящимся на сервере Microsoft SQL Server. Используя встроенные возможности ODBC, Microsoft SQL Server и Microsoft Internet Information Server обеспечивают безупречную работу интерактивных Web-узлов, основанных на базах данных. Кроме того, новые возможности тиражирования данных типа "image" или "text" позволяют использовать Microsoft SQL Server в качестве мощной платформы для управления информационным наполнением Web-узлов.


УПРОЩЕНИЕ РАБОТЫ С РАСПРЕДЕЛЕННЫМИ ПРИЛОЖЕНИЯМИ БЛАГОДАРЯ УТИЛИТЕ DTC

Microsoft SQL Server 6.5 включает утилиту Distributed Transaction Coordinator (DTC), которая позволяет более легко создавать на нескольких системах Microsoft SQL Server распределенные приложения и обеспечивает их автоматическое обновление. Таким образом гарантируется согласованность и целостность программ, распределенных между несколькими серверами. DTC также поддерживает XA- совместимые мониторы обработки транзакций, такие как Encina компании Transarc, Top End компании NCR и TUXEDO компании Novell, что делает возможным включение Microsoft SQL Server 6.5 в распределенные, разнородные транзакции.


ТИРАЖИРОВАНИЕ В РАЗНОРОДНЫХ СРЕДАХ

В Microsoft SQL Server 6.5 за основу взяты возможности тиражирования, представленные в версии 6.0. Информацию из Microsoft SQL Server можно теперь тиражировать в базы данных Oracle, IBM DB2, Sybase и Microsoft Access, а также в другие ODBC-совместимые базы данных. Таким образом, Microsoft SQL Server может легко функционировать в смешанных средах.


ДРУГИЕ НОВЫЕ ВОЗМОЖНОСТИ

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

Microsoft SQL Server 6.5 включает усовершенствованный интерфейс администратора SQL Enterprise Manager, который используется для управления распределенными системами Microsoft SQL Server. Новая возможность DBA Assistant автоматизирует рутинные задачи по обслуживанию системы, расширенная панель задач и меню позволяют легко интегрировать средства управления других компаний, а интегрированные механизмы передачи данных упрощают перемещение информации.

Новые возможности по обеспечению помехоустойчивости и восстановления включают резервное копирование и восстановление отдельных таблиц, а также восстановление БД после сбоя с указанием момента времени, по которое выполняется восстановление. Помимо этого, Microsoft SQL Server 6.5 является первой базой данных, в которой реализована поддержка системы Compaq Online Recovery Server, которая обеспечивает автоматическое переключение на резервный компьютер в случае сбоя.

К новым возможностям организации хранилищ данных относятся операторы запросов OLAP, утилиты CUBE и ROLLUP, которые облегчают поиск и выборку многомерных показателей. Новая функциональность под названием "канал данных" ("data pipe") позволяет Microsoft SQL Server 6.5 программно собирать данные из разнородных источников, включая Microsoft SQL Server и другие базы данных, и объединять их в единое хранилище на основе Microsoft SQL Server.

Microsoft SQL Server 6.5 можно бесплатно загрузить с FTP- узла Microsoft в России. После загрузки программу можно будет использовать в течение 120 дней. Необходимо набрать http://www.microsoft.com/backoffice/sql/sqlinfo1.htm или http://microsoft.com, а затем выбрать соответствующий продукт - SQL. После чего пользователя попросят зарегистрироваться и выбрать ближайший сервер в Восточной Европе для загрузки программы. (В России это сервер по адресу ftp://ftp.quarta.msk.ru. Он обслуживается фирмой Quarta, которая имеет статус Microsoft Solution Provider).


Источник: пресс-релиз компании Microsoft


ПРИЛОЖЕНИЕ 2


ТЕХНОЛОГИЯ ХРАНЕНИЯ ДОКУМЕНТОВ В MS SQL SERVER

SQL Server позволяет решить большинство проблем при создании распределенных систем обработки документов в архитектуре клиент/сервер. Однако реализуемые структуры баз данных несколько отличаются от классических.


КОНЦЕПЦИЯ ДОКУМЕНТА В РЕЛЯЦИОННЫХ БД

Любой документ в системе представляет из себя набор записей в одной или нескольких таблицах. Документы не пересекаются и однозначно идентифицируются по коду (номеру) документа. Это означает, что во всех таблицах БД одним из полей первичного ключа является код документа.

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

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

Документ отличается от простого набора записей в таблицах тем, что может быть обновлен только в ходе одной протяженной транзакции. Это объясняется тем, что документ имеет свои собственные правила целостности. Например важна не только корректность ссылок таблиц "Покупатели", "Заказ" и "Спецификация заказа", но и то, чтобы количество товаров в спецификации заказа было именно то, которое было указано покупателем.

Поддержание целостности документа позволяет произвести денормализацию структуры БД с целью повышения ее производительности.


КЛАССИФИКАЦИЯ И АТРИБУТИКА ДОКУМЕНТОВ

Документы разделяются на типы. Тип определяет, в каких таблицах хранится тело документа. Набор типов определяется на стадии проектирования БД.

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

Как показывает практика, наиболее эффективный способ поиска в больших массивах информации, структура которой известна пользователю - способ поиска с уточнением критериев, т.е. поиск по иерархическому справочнику.

Для этого применяется механизм, подобный механизму фолдеров (папок) в файловой системе. Для расширения возможностей системы папок разрешено использование в ней ссылок на документы (шорткатов, ярлыков, линков)



ПРИЛОЖЕНИЕ 3


СОПРОВОЖДЕНИЕ, ОПТИМИЗАЦИЯ И НАСТРОЙКА MicroSOFT SQL SERVER


На основе этой информации вы сможете сами справляться с большинством задач и решать большинство возможных проблем.

1. Заранее планируйте инсталляцию SQL Server;

2. Уделяйте большое внимание проектированию баз данных, запросов и индексов;

3. Старайтесь получить как можно больше информации о загрузке ресурсов сервера;

  1. Планируйте и автоматизируйте регламентные работы;

  2. Управляйте риском - готовьтесь к возможным сбойным ситуациям.


ИНСТАЛЛЯЦИЯ MicroSOFT SQL SERVER

Инсталляция Microsoft SQL Server в общем случае очень проста. Но к ней надо подойти ответственно, так как во время инсталляции устанавливаются несколько параметров, изменить которые в дальнейшем, при уже работающем сервере и внесенной в базы данных информации, бывает непросто. Так что если вы хотите выполнить инсталляцию только один раз, не спешите.

SQL Server инсталлируется при помощи программы setup, которая также используется для замены предыдущей версии SQL Server (например, 4.21) на новую, а также для последующей до-установки некоторых компонент сервера и изменения некоторых параметров.


Требования к аппаратуре

Вам необходим для работы с Microsoft SQL Server компьютер архитектуры Intel с процессором 486 или Pentium (SQL Server также поставляется в версиях для RISC-процессоров Alpha и MIPS). Минимально необходимый объем памяти - 16 Мб, рекомендуется начинать с 32 Мб. Если вы соберетесь использовать ваш SQL Server в качестве сервера-распространителя при тиражировании данных, вам понадобится минимум 16 Мб для собственно SQL Server, а ведь еще нужна память собственно для Windows NT Server.

Также, естественно, необходим жесткий диск с 75 Мб свободного места. Это в случае, если вы установите электронную документацию по SQL Server на жесткий диск. Вы можете не устанавливать ее на жесткий диск и читать ее с CD-ROM, что сэкономит вам 15 Мб дисковой памяти. Я рекомендую использовать электронную документацию, т.к. очень удобно осуществлять в ней быстрый поиск интересующей вас информации.

Ну и, конечно, необходима операционная система Windows NT Server версии 3.5 или выше (рекомендуется 3.51).

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


Кодовая страница

Выбранная кодовая страница определяет, какие символы будут рассматриваться сервером как пригодные для печати и наименования, например, дней недели и месяцев. Также кодовая страница, совместно с выбранным порядком сортировки, определяет, как будут сортироваться и сравниваться между собой символьные строки. Очень рекомендуется устанавливать на всех клиентах и сервере одну и ту же кодовую страницу. SQL Server 6.0 позволяет установить страницу № 1251, используемую для работы с русским языком в Windows, так что тут никаких проблем нет. Если вы не предполагаете работать с русским языком, то можно установить страницу № 850 (многоязычная) или № 437 (U.S. English).


Порядок сортировки

Порядок сортировки определяет:

  1. Как будут сортироваться записи при использовании в запросе ORDER BY

2. Как будут сравниваться между собой символьные строки 3.Скорость выполнения операций сортировки.

Существует два основных типа порядков сортировки: двоичный и по словарю.

При двоичном символы сравниваются и сортируются в соответствии с их двоичными кодами. Это самый быстрый порядок сортировки, но он имеет один недостаток.

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

Их существует несколько, имеет смысл рассмотреть т.н. регистро-независимый порядок (Case-Insesitivity), при котором буквы сортируются независимо от того, большие они или маленькие. Именно он предлагается при инсталляции по умолчанию. При использовании этого порядка операции сортировки работают примерно на 20% медленнее, чем при двоичном.


Сетевые установки

Microsoft SQL Server 6.0 может взаимодействовать с клиентами по многим протоколам сеансового уровня. Это:

• Named Pipes

• NWLink IPX/SPX

• TCP/IP Sockets

• Banyan VINES

• AppleTalk ADSP

• DECnet

Надо отметить, что работа по одному протоколу не исключает работы по другому и сервер может взаимодействовать с клиентами по нескольким протоколам одновременно. Для этого загружаются одна или несколько сетевых библиотек (Net-Libraries).

Кроме того, протокол Named Pipes работает над тремя протоколами транспортного уровня - NetBEUI, IPX/SPX и TCP/IP. Так что он устраивал в большинстве случаев использования SQL Server 4.2 и устанавливается по умолчанию именно он.

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

В версии SQL Server 6.0 появилась новая сетевая библиотека "Multi-Protocol", работающая сразу с тремя протоколами сеансового уровня - Named Pipes,

NWLink IPX/SPX, TCP/IP Sockets. Эта сетевая библиотека позволяет кодировать информацию, передаваемую между клиентом и сервером.


Режим секретности

Существует три режима секретности SQL Server:

  1. Интегрированный с Windows NT;

  2. Стандартный;

3. Смешанный.

Интегрированный режим позволяет пользователю, зарегестрировавшемуся в домене Windows NT, подключаться к серверу, не указывая имени и пароля - для определения его прав на SQL Server будет использовано его регистрационное имя в Windows NT. То есть существует единая регистрация - в домен и на SQL Server. Этот режим возможен при подсоединении пользователя по т.н. "доверительным соединениям", которые осуществляются при использовании сетевых библиотек "Named Pipes" и "Multi-Protocol". По другим соединениям клиенты работать в этом режиме не могут.

Стандартный режим требует от пользователя указывать имя и пароль при подключении к SQL Server, независимо от того, под каким именем он зарегистрировался в Windows NT.

Основное преимущество интегрированного режима состоит в следующем. Секретность Windows NT имеет такие мощные средства, как устаревание пароля и ограничение на минимальную длину пароля. Этих средств нет в SQL Server, но они могут быть использованы для контроля доступа к SQL Server при использовании интегрированного режима секретности.

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


Имена пользователя для SQLExecutive и SQL Server

Сервис, называемый SQLExecutive, выполняет очень большую работу, связанную с выполнением плановых заданий, реакцией на происходящие события и тиражированием данных. Каждый сервис в Windows NT функционирует в т.н. контексте секретности, определяемом именем, под которым он регистрируется в Windows NT. По умолчанию SQLExecutive регистрируется под именем LocalSystem, т.е. как локальный системный сервис. Но для ряда процессов, связанных с соединением вашего SQL Server с другими серверами, в первую очередь для тиражирования, необходимо регистрировать SQLExecutive под именем, обеспечивающим ему доступ к другим серверам. Это имя должно:

• относиться к группе администраторов;

• иметь не устаревающий пароль;

• иметь право регистрироваться как сервис.

Вполне возможно (и даже более удобно) присвоение сервису SQLExecutive одного и того же имени на разных серверах.

Хотя ипрограмма setup и не требует задания имени, под которым буде регистрироваться сам SQL Server, лучше после установки сменить это имя с LocalSystem на "нормальное" имя. Это пригодится при создании резервных копий на жестких дисках других компьютеров, а также при работе с Microsoft Exchange.


Удаленная и автоматическая инсталляция

Есть два способа облегчить себе работу по установке SQL Server.

Первый — это удаленная инсталляция, используя которую вы можете не переходить от компьютера к компьютеру, и при этом установить SQL Server на несколько серверов.

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


ПРОБЛЕМЫ ПРИ УСТАНОВКЕ?

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

Где можно найти информацию о том, что случилось во время инсталляции:

1. Журнал регистрации событий Windows NT.

  1. Журнал ошибок SQL Server (находится в каталоге '\SQL60\LOG\').

3.Выходные файлы инсталляционных скриптов. В директории '\SQL60\INSTALL\' вы найдете около 20 файлов с расширением '.SQL' (скрипты) и соответствующих им файлов с теми же именами и расширением '.OUT' (выходные файлы). В процессе инсталляции SQL Server выполняет скрипты (они же сценарии) и результаты выполнения записываются в выходные файлы. Просматривая выходные файлы, вы можете обнаружить сообщения об ошибках.


ОПТИМИЗАЦИЯ И НАСТРОЙКА MICROSOFT SQL SERVER

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


Ключи к производительности

• Структура базы данных;

• Пути доступа к данным;

• Аппаратура;

• Физическое распределение данных;

• Настройка параметров среды и SQL Server


Проектирование базы данных - фундамент производительности

Грамотное проектирование баз данных, по мнению многих специалистов и моему собственному, является наиболее критическим моментом в оптимизации производительности системы, построенной на SQL Server. Если система медленно работает - скорее всего, дело в плохом проектировании структуры таблиц, запросов и индексов. И именно этому следует уделять главное внимание. Следует принимать проектные решения, постоянно задаваясь вопросом - как это решение скажется на производительности? И в первую очередь, здесь важно оптимальное логическое проектирование баз данных.


Логическое проектирование базы данных

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

  1. Моделирование данных;

  2. Нормализация;

3. Разумная денормализация


Моделирование данных

Для моделирования данных традиционно применяется методология диаграмм "Сущность-Связь", которая позволяет построить законченную логическую модель данных, то есть представление в виде связанных таблиц. Существуют различные модификации этой методологии, как правило реализуемые фирмами-производителями CASE-инструментов в своих продуктах. Базовая методология построения диаграмм "Сущность-Связь" зафиксирована в стандарте IDEF1X. Некоторые CASE-инструменты основаны на методологиях, расширяющих возможности этого стандарта. К таким инструментам относится, в частности, S-Designor фирмы Powersoft.

Есть и другие методологии, в частности Объектно-Ролевое моделирование, которое позволяет описывать предметную область на более абстрактном уровне, чем моделирование "Сущность-Связь", по крайней мере базовый вариант последней. Объектно-Ролевое моделирование реализовано в CASE-инструменте InfoModeler фирмы Asymetrix. Применение S-Designor и InfoModeler рассмотрено в докладе "Проектирования структур баз данных с использованием CASE-инструментов S-Designor и InfoModeler".


Нормализация

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

1. Первая нормальная форма - отсутствие многозначных полей.

  1. Вторая нормальная форма - каждое неключевое поле в таблице должно зависеть от всего первичного ключа, а не от какой-либо его части.

3. Третья нормальная форма - неключевое поле не должно зависеть от другого неключевого поля.

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

CASE-инструменты, как правило, строят логическую модель в третьей нормальной форме.


Денормализация

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

• Если спроектированная база данных требует связывания в одном запросе 4-х и более таблиц, стоит ввести избыточность, добавляя поля в таблицы или целые таблицы.

• Замените длинные ключи на искусственно введенные короткие ключи и текстовые поля на символьные строки ограниченной длины.

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

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


Противоречия логического проектирования

Нормализация и денормализация - две диалектически противоречивые стратегии, которые необходимо применять при проектировании логической структуры. И это не единственное противоречие в этом процессе. Например - использование типов данных с переменной длиной приводит, с одной стороны, к сокращению занимаемого дискового пространства, к меньшему количеству операций чтения и, таким образом, к сокращению времени на чтение таблицы. С другой стороны, обновление таких строк происходит путем удаления старой и вставки новой, в то время, как строки с полями фиксированной длины могут обновляться "на месте", что значительно быстрее. Еще один пример - использование большого числа индексов сокращает время выполнения запросов, соединяющих несколько таблиц и сортирующих полученные строки. Но в то же время, индексы замедляют операцию вставки новых записей.

Приложения по обработке данных можно условно разделить на два класса:

• Системы оперативной обработки транзакций, характеризующиеся большой интенсивностью вставки и обновления записей.

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

Поняв, к какому классу относится ваше приложение, можно делать выбор из противоречивых альтернатив при проектировании логической структуры. Правда, часто приложения должны сочетать качества как одной, так и другой системы, так что приходится находить компромиссы. В этом случае может выручить разделение приложения на две подсистемы, каждая из которых функционирует на своем SQL Server'е, и обеспечение информационной связи подсистем при помощи тиражирования данных.


Проектирование путей доступа

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

• структура таблицы, к которой обращается запрос;

• поля, по которым происходит поиск;

• индексы, которые можно использовать для ускорения поиска;

• состав полей, которые обновляются в процессе выполнения запроса.

Цель проектирования оптимальных путей доступа - минимизация количества операций чтения/записи при выполнении клиентских запросов. Основа для этого должна быть заложена на этапе проектирования структуры базы данных.


Оптимизация путей доступа

Главный вопрос в оптимизации путей доступа - использование индексов. Если некий запрос выбирает строки в таблице по полю "field1", то при отсутствии индекса по этому полю сервер будет сканировать всю таблицу, что может быть очень "дорого" в терминах операций чтения. Если по полю "field1" построен индекс, то количество операций чтения может сократиться в несколько тысяч раз. Индексы существенны также при операциях соединения таблиц (JOIN) и операциях сортировки.

Какие еще моменты необходимо учитывать при проектировании путей доступа? Это

• обращение клиента к серверу через SQL-запрос или через вызов хранимой процедуры. Второй вариант работает немного быстрее, но необходимо учитывать один важный нюанс. План выполнения хранимой процедуры составляется при ее первом (после создания) вызове и затем хранится в кэше. Этот план оптимизируется для набора параметров и индексной статистики, имевших место именно при первом вызове. При дальнейших вызовах этот план может оказаться неоптимальным, то есть может потребоваться перекомпиляция процедуры, например, путем вызова с опцией "WITH RECOMPILE".

• проведение операций обновления "на месте" или путем удаления с последующей вставкой - обновление "на месте" проходит гораздо быстрее.

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

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

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


Аппаратура и производительность

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


Процессор

Процессор, как правило, достаточно интенсивно используется SQL Server'ом.

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

• Будет ли компьютер выделен для SQL Server?

• Сколько клиентов будут работать с сервером?

• Каково ожидаемое число транзакций в единицу времени?

• Велика ли доля агрегативных операций?

Количественно оценить загрузку процессора можно, проводя тестовые испытания и отслеживая параметры производительности при помощи Windows NT Performance Monitor.

Лучше, конечно, не скупиться на процессоре и ограничить свой выбор снизу хотя бы 486/50.


Память

Память используется SQL Server'ом очень интенсивно и многообразно. Память расходуется на кэширование данных и процедур, на поддержку подсоединений клиентов, открытых баз данных, открытых таблиц, блокировок таблиц и т.д. Из всех этих пунктов подробно остановиться имеет смысл на кэшировании. Все остальные расходы памяти при 50 одновременно работающих клиентах и достаточно большом количестве открытых объектов не превышают 3.5 Мб. Вся остальная память, доступная SQL Server, используется под кэш. Настраиваемый параметр "procedure cache" регулирует соотношение между кэшем данных и кэшем процедур. По умолчанию данные занимают 80% кэша. Приведенная ниже таблица содержит рекомендации по распределению памяти между SQL Server и остальной системой на выделенном компьютере. SQL Server использует память в количестве, отведенном ему настраиваемым параметром "memory".


Machine Memory, (MB) SQL Server Memory, (MB)

16

24

32

48

64

128

256

512

4

6

16

28

40

100

216

464


Не следует выделять SQL Server слишком много памяти (относительно общего объема памяти компьютера), т.к. это может привести к интенсивному вытеснению страниц оперативной памяти на диск