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

Ошибки в коде SQL Server

Существует ряд особенностей функционирования SQL Server, которые одни пользователи считают нормальными, а другие относят к категории необычных. Читая отдельные отчеты об ошибках в SQL Server, можно обнаружить, что та или иная реакция системы часто бывает «заложена изначально», а не привнесена волей случая. Одних такие реакции доводят «до белого каления» как совершенно нелогичные, другим же они кажутся простыми и понятными. Например, когда мы в SQL Server 2000 направляем запрос на представление, где используются предложения TOP (100) PERCENT и ORDER BY, результаты возвращаются в порядке, указанном в предложении ORDER BY. Но когда запросы направляются с тем же представлением в системе SQL Server 2008 или SQL Server 2005, результаты возвращаются в произвольном порядке. Люди высказывают вполне логичные соображения относительно того, должны ли результаты отображаться в произвольном или заданном порядке. Некоторые считают, что подход разработчиков SQL Server 2000 создавал проблемы, другие — что менять подход в более поздних редакциях не было смысла. Споры утихли лишь после того, как Microsoft выпустила модуль оперативной коррекции, приводящий поведение систем SQL Server 2008 и SQL Server 2005 в соответствие с системой SQL Server 2000 (см. support.microsoft.com/kb/926292).

Но как бы то ни было, ошибки существуют и вызывают раздражение. Когда вы сталкиваетесь с функционированием базы данных, не соответствующим вашим ожиданиям и потому, возможно, указывающим на ошибку, можете передать эти сведения специалистам Microsoft через Web-узел Microsoft SQL Server Connect по адресу connect.microsoft.com/SQLServer. Там можно выяснить, сообщали ли о подобной ошибке другие пользователи, и если да, то существует ли решение или «заплатка» для устранения проблемы. Если же сообщений пока не было, вы можете подготовить такое сообщение сами. Ошибки, мешающие работе многих пользователей, получают более высокий рейтинг посетителей сайта, а значит, команда разработчиков SQL Server займется ими раньше, чем исправлением других ошибок.

Слишком много редакций SQL Server 2008

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

  • Enterprise;
  • Standard;
  • Developer;
  • Workgroup;
  • Web;
  • Express;
  • Express with Advanced Services;
  • Compact.

Каждый из этих вариантов предназначен для отдельного сегмента рынка, однако «с ходу» непросто разобраться с тем, какой из них в наибольшей степени отвечает потребностям той или иной организации. Когда приходится выбирать из небольшого числа версий, решение обычно принять довольно просто. Когда же приходится взвешивать все «за» и «против» восьми различных редакций продукта, на выработку решения уходит больше времени.

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

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

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

Сложная схема лицензирования SQL Server

Задача грамотного лицензирования SQL Server может быть весьма трудной, особенно сегодня, когда размещение экземпляров SQL Server в виртуальных средах стало гораздо более распространенным явлением. Результаты поиска в Microsoft SQL Server Books Online (msdn.microsoft.com/en-us/sqlserver/cc514207.aspx) по ключевому слову licensing не проливают света на проблему. Чтобы найти хоть какие-то подробности относительно того, как лицензируется SQL Server 2008, приходится основательно перелопачивать содержимое Web-сайта Microsoft, однако и эта процедура не дает гарантии того, что вы отыщете решение, позволяющее приобрести лицензию на продукт с наименьшими затратами.

Существует три базовых способа лицензирования SQL Server 2008: сервер плюс клиентская лицензия на устройства, сервер плюс клиентская лицензия пользователя и лицензия на процессор. В первом приближении картина такова. Вариант «сервер плюс клиентская лицензия на устройства» следует выбирать тогда, когда имеется множество сотрудников, которые пользуются некоторым набором устройств для обращения к вашему экземпляру SQL Server. Вариант «сервер плюс клиентская лицензия пользователя» применяется, когда пользователи задействуют более одного устройства для обращения к вашему экземпляру SQL Server, а вариант лицензии на процессор применяется в тех случаях, когда необходимо получить лицензию для неограниченного числа пользователей и устройств, находящихся как «по эту», так и «по ту» сторону брандмауэра. Стоимость каждого типа лицензии указана на Web-узле Microsoft по адресу www.microsoft.com/sqlserver/2008/en/us/pricing.aspx, но нужно иметь в виду, что приведенные там цифры не более чем оценки, ибо цены зависят от числа приобретаемых лицензий. Организация может заключить с Microsoft льготные соглашения в случае приобретения большого количества лицензий.

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

И тут мы подходим к самой запутанной из ситуаций, касающихся лицензирования: как быть с виртуализованными экземплярами SQL Server 2008? Для редакций Workgroup и Standard действует такое правило: каждая виртуальная операционная среда требует по меньшей мере одной лицензии. При работе в виртуализованной среде лицензия для редакции SQL Server 2008 Enterprise действует не так, как лицензии для других редакций. Если вы приобрели лицензию на редакцию Enterprise продукта SQL Server 2008 совместно с одним из вариантов «сервер плюс клиентская лицензия», то имеете право запускать любое число экземпляров SQL Server под управлением отдельных виртуальных операционных систем, лишь бы все они размещались на одном физическом сервере. Если у вас имеется выпуск Enterprise с лицензией на процессор, вы можете запускать неограниченное число экземпляров — но лишь в том случае, когда имеются лицензии на все физические процессоры. Если при попытке разложить все по полочкам у вас начинает болеть голова, не стоит даже и пытаться разобраться с тем, какие правила действуют в случае, когда вы начинаете использовать такие продукты, как System Center Virtual Machine Manager 2007, для перемещения виртуальных машин с одного хоста на другой.

Чем глубже вы исследуете проблему, тем сложнее становится система лицензирования. Наверное, именно поэтому многие администраторы баз данных приходят к заключению, что расходы на контроль соблюдения законодательных требований можно значительно сократить, выбрав лицензирование по схеме «на процессор». Чтобы свести к минимуму путаницу в вопросах лицензирования, корпорации Microsoft следовало бы в дополнение к программе Upgrade Advisor и другим средствам планирования, которые можно запускать до установки SQL Server 2008, выпустить приложение «советник по лицензированию». Пригодилось бы и приложение, контролирующее соблюдение законодательных норм по лицензированию, хотя, надо полагать, было бы трудно контролировать лицензии для клиентов, неявно обращающихся к SQL Server. К тому же было бы очень кстати, если бы Microsoft выпустила более полезную — и более приспособленную для поиска данных — документацию по лицензированию.

Сложное приложение

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

Орин Томас (orin@windowsitpro.com) — редактор Windows IT Pro, обладатель сертификата Windows Security MVP