(Возврат на основную страницу)

Содержание номера за Ноябрь 2002 

Editorial

Изменения в тройке лидеров СУБД

Майкл Оути (Michael Otey)

С точки зрения прибылей от продажи новых лицензий, SQL Server нельзя назвать лидером, впрочем, как и Oracle.

По сведениям Gartner Dataquest, потрясения на рынке СУБД выявили нового чемпиона — IBM. Приобретение Informix позволило IBM выйти на первое место в 2001 году, увеличив свою долю на рынке на 4,3% по сравнению с 2000 годом. Oracle, заваленная сообщениями об ошибках в Oracle 9i, оказавшемся не таким уж неуязвимым, опустилась на второе место с 32%, потеряв 4,9%. SQL Server остается на третьем месте с долей в 16,3%. На 2,6% от него отстает Sybase. Обзор рынка СУБД Gartner можно найти по адресу http://www4.gartner.com/DisplayDocument?doc_ cd= 106576.

Доля SQL Server на рынке СУБД, составляющая 16,3%, может показаться небольшой по сравнению с такими гигантами как IBM и Oracle, но SQL Server демонстрирует наиболее впечатляющий прогресс — он показал максимальный рост доходов от приобретения новых лицензий, достигший 17,8%. Это втрое больше аналогичного показателя IBM, причем Microsoft не расширяла свое присутствие на рынке путем покупки другой крупной компании — производителя СУБД.

Те, кто следит за отраслью СУБД, ожидают, что SQL Server останется в списке лидеров. Ведь источником высоких прибылей IBM и Oracle являются уже устоявшиеся рынки: на арене мэйнфреймов, являющейся вотчиной IBM, и UNIX-систем, где доминирует Oracle. Однако период роста этих секторов рынка позади, и их ждет только сокращение. Поэтому возможностей роста у IBM и Oracle только две: повышать сборы с имеющихся клиентов или пытаться прорваться на растущие рынки Windows и Linux.

Пока рынок Linux дает небольшую прибыль, поскольку основным конкуретном является бесплатная СУБД mySQL. В то же время и IBM, и Oracle имеют коммерческие продукты на этом рынке. Совсем иная ситуация на рынке СУБД для Windows, где наблюдается взрывной рост в 11%, что намного больше суммарного роста рынка СУБД, составляющего 1,4%. Итак, расстановка сил на рынке СУБД для Windows изменилась. Тройку сильнейших возглавляет SQL Server с долей в 39,9% (25,3% роста за прошлый год). Oracle  —  на втором месте с 34% (на 1% ниже), и IBM — на третьем месте (20,7% и здоровый показатель роста в 15%).

Начиная с SQL Server 7.0, в котором представлены службы OLAP, Microsoft является ведущим новатором в области СУБД. Предоставив службы Analysis Services в SQL Server 2000, Microsoft еще больше расширила границы возможностей СУБД, добавив функции разработки данных (data mining). В дополнение следует отметить, что решение на основе SQL Server является самым рентабельным. Несмотря на увеличение цены на SQL Server 2000, его начальная стоимость покупки намного меньше, чем у конкурентов, а простота эксплуатации и возможности самонастройки снижают затраты на долговременную эксплуатацию. Функциональность и цена — ключевые преимущества SQL Server, позволяющие ему удерживать лидерство по скорости продвижения в этом секторе рынка, для которого характерен самый быстрый рост.

DB Design & Warehousing

Оптимизация схемы кубов

Дон Черч (Don Church)

Если вам приходилось когда-нибудь создавать куб Analysis Services c множеством измерений из таблицы фактов с миллионом строк, то вы представляете, сколько займет его обработка.

Если вы столкнулись с подобной проблемой, попробуйте оптимизировать схему куба. Это совсем не сложно: я продемонстрирую процедуру оптимизации на примере БД FoodMart 2000, которая поставляется с SQL Server 2000.

Programming

Введение в работу с ADO.NET: использование объекта SqlCommand

Джон Винер (Jon Winer)

Вы умеете работать с объектом Command в ADO? Если да, то переход на ADO.NET
доставит меньше головной боли, чем может показаться поначалу.

В этой статье рассматриваются некоторые методики, доступные при использовании объектов ADO.NET SqlDataReader и SqlCommand, работа с которыми во многом напоминает приемы кодирования, принятые в ADO.

В сущности, основы работы с объектами Command в ADO и SqlCommand в ADO.NET похожи. Вот приблизительный алгоритм их создания и использования.

1.                  создайте и откройте соединение.

2.                  создайте объект command (или SqlCommand).

3.                  укажите тип команды.

4.                  задайте текст команды.

5.                  при необходимости добавьте к объекту command (или SqlCommand) параметры.

6.                  исполните команду.

Клонирование и случай с таблицей Dolly

Дино Эспозито (Dino Esposito)

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

Возможность клонирования объектов не является специфичной для .NET и других каркасов программирования, вроде MFC (Microsoft Foundation Class), ATL (Active Template Library) или ADO (ActiveX Data Object). Возможность создания из существующего экземпляра нового аналогичного объекта — самая обычная задача, имеющаяся во всех языках и контекстах программирования.

Как и в реальной жизни, в мире программ нет общепринятых правил, регламентирующих клонирование. Клонирование объектов — это всегда эксперимент, последствия которого могут быть неизвестными и непредсказуемыми. Поэтому, независимо от используемого каркаса программирования, не каждый объект может быть клонирован, а созданные клоны могут работать по-разному. Хотите пример?

Функция strdup() из runtime библиотеки С и кон-структор соответствующего класса из MFC позволяют быстро и легко копировать строки. Получив копию, можно использовать ее и исходную строку как абсолютно независимые элементы, напрочь забыв об их происхождении, но копирование объектов Recordset из ADO радикально отличается.

В .NET клонирование поддерживается посредством интерфейса ICloneable. В одних объектах этот интерфейс имеется, а в других поддержка клонирования ограничена лишь созданием неполных копий (shallow copy). Полную копию (deep copy) таких объектов можно создать только вручную.

Еще об использовании SQL-DMO

Энди Уоррен (Andy Warren)

В одной из своих статей (посвященной введению в DMO) я рассказал, как с помощью DMO можно подключаться к SQL Server и выполнять некоторые базовые задачи, такие как резервное копирование. Эта статья знакомит с некоторыми дополнительными методами, весьма полезными
для автоматизации административных задач.

Хотя код приведенных здесь примеров тестировался в SQL Server 2000, он должен работать и в 7.0.

Other

Резервное копирование и восстановление в разделенном зеркалированном массиве

Рон Тэлмэйдж (Ron Talmage)

Аппаратное решение, обеспечивающее доступность SQL Server 2000.

Технология резервного копирования в разделенном зеркалированном массиве (split-mirror backup) повышает доступность БД, поскольку позволяет очень быстро (за несколько секунд) создавать резервные копии БД. Такая скорость позволяет чаще копировать БД и при необходимости быстро восстановить ее из резервной копии, что существенно сокращает время, в течение которого БД недоступна. Резервное копирование на разделенный зеркалированный массив практически не требует ресурсов сервера БД и позволяет инициализировать вспомогательный сервер намного быстрее, чем при использовании стандартной технологии копирования/восстановления в SQL Server.

Имейте в виду, что для резервного копирования на разделенный зеркалированный массив необходимо специализированное ПО и оборудование. Данные БД должны храниться на дисковой подсистеме с зеркалированием — обычно это массив RAID 10 в SAN. Кроме того, потребуется специализированная утилита управления томами для взаимодействия с SQL Server 2000. Следует тщательно взвесить преимущества этой технологии и затраты на приобретение необходимого ПО и дисковой системы.

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

Седрик Бритт (Cedric Britt) и Сэмьюэл Пенн (Samuel Penn)

Когда нет времени на обычную синхронизацию…

Допустим, вы — администратор БД, поддерживающий с помощью SQL Server 7.0 почти круглосуточно работающую БД размером 50 Гб для оперативной обработки транзакций (OLTP). Поэтому «окно» для обслуживания этой БД минимально. Допустим также, что пользователям нужно исполнять запросы к БД для составления отчетов или создания хранилища данных. Кроме того, по условию необходимо поддерживать копию рабочих данных на отдельном сервере, чтобы избежать проблем с производительностью БД. Такие проблемы возникают, например, когда пользователь запускает длинный запрос, тем самым блокируя таблицы, к которым обращаются программы для вставки или обновления данных.

Репликация транзакций — это процесс повторения на вспомогательных удаленных серверах команд, составляющих транзакции, исходно зафиксированные SQL Server, работающим на основном рабочем сервере. Репликация транзакций — популярный метод поддержания актуальной копии рабочей БД. Удаленные вспомогательные серверы называются подписчиками (subscribers), а основной рабочий сервер — издателем (publisher). Репликация транзакций позволяет обновлять данные серверов-подписчиков с минимальной задержкой и требует минимального внимания со стороны администратора БД. Задержка определяет период времени между моментами фиксации транзакции в рабочей БД и ее применения к копии данных подписчика.

С помощью SQL Server 7.0 можно конфигурировать различные сценарии репликации транзакций, позволяющие одному или нескольким подписчикам получать зафиксированные издателем транзакции. Агент создания моментальных снимков (Microsoft Snapshot Agent) облегчает процесс инициализации, синхронизирующий схему и данные БД издателя со всеми подписчиками. Хотя использование агента создания моментальных снимков — обычный прием, в зависимости от размера БД, агент может требовать больше времени для синхронизации, чем допускает график обслуживания БД. Однако можно настроить репликацию транзакций для БД так, чтобы инициализировать схему и данные без агента создания моментальных снимков. По условию примера из этой статьи, в нерабочее время необходимо выполнить восстановление полной копии БД издателя на сервере-подписчике, чтобы вручную синхронизовать схему и данные.

(Возврат на основную страницу)

Hosted by uCoz