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

Содержание номера за Март 2005 год

Editorial

SQL Server нацелен на нишу рабочих групп, и цена его растет

Пол Турротт (Paul Thurrott)

Не так давно компания Microsoft объявила, что несколько раз отложенный SQL Server 2005 (собственно говоря, его можно называть группой продуктов) выйдет в середине года. С выходом новой версии мы увидим новое позиционирование сервера и более высокую цену. Начнем с того, что Microsoft добавляет редакцию SQL Server по имени Workgroup Edition. Но этот продукт не будет ожидать выхода SQL Server 2005. Нет, Microsoft планирует выпустить SQL Server 2000 Workgroup Edition этой весной, до выхода SQL Server 2005.

Как сказал старший вице­президент Microsoft Пол Флесснер, «индустрия изменилась с тех пор, как мы выпустили SQL Server 2000. <…> С выходом линейки SQL Server 2005 мы расширяем широту охвата нашими продуктами, призванными решать задачи обработки данных, и предоставляем больше возможностей нашим заказчикам. Сейчас мы лучше подготовлены, чтобы предложить решения, которые соответствуют технологическим и бюджетным возможностям наших заказчиков. Наша задача — сделать высококлассные средства управления и анализа данных доступными широкому кругу заказчиков при упрощении работы с системами обработки данных и снижении совокупной стоимости владения».

Линейка продуктов SQL Server 2005 будет включать четыре редакции: Express Edition, Workgroup Edition, Standard Edition и Enterprise Edition. Последняя будет распространяться бесплатно и будет направлена на использование разработчиками. Новая редакция Workgroup Edition представляет собой только процессор обработки данных и не содержит средства подготовки отчетов (reporting services), аналитические средства (business intelligence) и другие возможности, доступные в более старших редакциях, она ориентирована на малый и средний бизнес. Стандартная редакция описывается как «полноценная платформа обработки данных и аналитической обработки» и ориентирована на компании среднего размера. Enterprise Edition предлагает основу для создания критических бизнес­приложений любого размера.

Говоря о цене на линейку SQL Server 2005, можно сказать, что тут наблюдаются противоречия. Цена стандартной редакции и Enterprise Edition вырастает. Так, Enterprise Edition будет стоить $24 999 на процессор по сравнению с $19 999 для SQL Server 2000 . Между тем стандартная редакция (хоть и ограничена 4 процессорами) может быть установлена на 64­разрядное железо. Эта редакция будет дороже на 20%, а цена на процессор вырастает до $5999.

Новая редакция для рабочих групп будет стоить $3899 на процессор, хотя она поддерживает только два процессора и 3 Гб памяти (для стандартной редакции ограничений на память нет). Microsoft также отмечает, что SQL Server 2005 предлагает фантастический набор новой функциональности по сравнению с текущей версией, что должно служить дополнительным обоснованием для повышения цен. Следует также отметить, что SQL Server обычно стоит дешевле своих конкурентов от Oracle или IBM.

Для поддержки линейки продуктов SQL Server 2005 гигант в области поставок персональных компьютеров компания Dell говорит, что они будут продавать SQL Server 2000 и 2005 в редакции для рабочих групп вместе с серверами линейки PowerEdge, ориентированными на малый и средний бизнес. Dell также объявил о новых результатах по сценарию TPC­C с использованием SQL Server 2000 Workgroup Edition на своих серверах. Новый рекорд $1,40/tpmC на 10 центов дешевле по сравнению с предыдущим, где использовался SQL Server 2000 Standard Edition.

И наконец, в качестве дополнительной новости представители Microsoft объявили, что компания рассматривает возможность предоставления кодов SQL Server 2005 заказчикам. Естественно, это не будет проект открытого кода, все­таки мы говорим о Microsoft, но, скорее, он будет выпущен на условиях достаточно жесткой программы Shared Source. Однако интересно наблюдать, как Microsoft пытается сделать свои продукты более открытыми под угрозой со стороны таких продуктов как MySQL и PostgreSQL.

DB Design & Warehousing

Взгляд изнутри на средства управления оперативной памятью SQL Server 2000

Кен Хендерсон (Ken Henderson)

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

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

Поскольку почти во всех случаях распределения оперативной памяти внутри SQL Server используется виртуальная память, а не кучи, основная часть кода распределения памяти сводится к вызову функций API Win32 VirtualAlloc или VirtualFree. Сервер вызывает VirtualAlloc для резервирования и фиксации виртуальной памяти, а VirtualFree для ее освобождения.

Виртуальная и физическая память

Для всех процессоров семейства x86 Windows предоставляет каждому процессу «песочницу» виртуальной памяти объемом 4 Гб. Эта память не является памятью в традиционном смысле. Это просто диапазон адресов, которые не связаны непосредственно с физическими местами хранения. Когда процесс выполняет распределение оперативной памяти, задействуются эти адреса, причем им ставится в соответствие физическое хранилище. Однако это хранилище, как правило, не является физической оперативной памятью. Обычно это пространство дисковода. Точнее, это пространство в системном страничном файле (файлах). Именно так множество приложений могут одновременно работать в системе с объемом оперативной памяти в 128 Мб, причем каждое приложение обладает виртуальным адресным пространством в 4 Гб; это не настоящая память, однако приложение воспринимает ее как реальную. Windows прозрачно для приложения управляет копированием данных в страничные файлы и считыванием из них, так что приложение в состоянии распределять больше памяти, чем физически существует в машине. При этом приложения имеют равный доступ к физической оперативной памяти компьютера (RAM).

Все 4­гигабайтное адресное пространство разделено на две секции: для пользовательского режима и для режима ядра. По умолчанию каждая секция имеет размер 2 Гб, их размеры можно изменить с помощью ключевых переключателей BOOT.INI в семействе операционных систем Windows NT. (Windows NT, Windows 2000, Windows XP и Windows Server 2003 являются членами семей­ства Windows NT, а Windows 9x и Windows ME не являются.)

Хотя каждый процесс получает свое собственное виртуальное пространство адресов, код операционной системы и код драйвера устройств совместно используют единое частное адресное простран­ство. Каждая страница виртуальной памяти ассоциирована с конкретным режимом процессора. Чтобы получить доступ к определенной странице, процессор должен находиться в требуемом режиме. Это означает, что пользовательские приложения не могут получить доступ к виртуальной памяти ядра напрямую. Система должна переключиться в режим ядра, чтобы можно было получить доступ к страницам памяти ядра.

Краткое руководство по типам данных Text, Ntext и Image

Джозеф Гама (Joseph Gama)

Типы данных Text, Ntext и Image используются уже давно, но их нюансы легко могут ускользнуть из поля зрения. Эта статья представляет собой краткий обзор способов применения и внедрения этих специальных типов данных. Автор с благодарностью посвящает ее докторам Аарону Гордону, Эрлу Хацу, Джерри Шульцу и Шахару Боне из колледжа Метрополитен Стейт Колледж в Денвере, а также Адаму и Карен Шварц.

Базы данных увеличиваются в размере и усложняются отчасти из­за того, что программные и аппаратные средства позволяют хранить умопомрачительное количество сведений, включая документы и мультимедийную информацию. Данные в форматах JPG, PNG, MP3, DOC/RTF, HTML, Unicode и XML можно хранить в базах SQL Server в виде типов данных image, text и ntext.

Вообще говоря, тип данных text можно использовать для хранения длиннейших строк символов ASCII, тип ntext — для символьных строк Unicode, а image — для бинарных данных. Вас беспокоят размеры? Text позволяет хранить до 2^31 ­ 1 (2,147,483,647) символов, не являющихся Unicode, в виде строк переменной длины. Тип данных ntext рассчитан на хранение до 2^30 ­ 1 (1,073,741,823) символов, а image — до 2^31 ­ 1 (2,147,483,647) байтов. Действительный размер хранения в байтах для ntext в два раза больше вводимого количества символов. В SQL­92 ntext является синонимом национального текста.

Так как же они работают? Для ссылки на данные используются указатели. Специальные функции позволяют выполнять с ними сложение, вычитание или удаление данных. В табл. 1 перечислены их сильные и слабые стороны.

Табл. 1. Достоинства и ограничения типов данных text, ntext и image

Можно

Нельзя

Передавать как входные и получать как выходные параметры хранимых процедур

Использовать в конструкциях DECLARE, SET и FETCH, что не позволяет применять их в качестве переменных таким же образом, как другие типы данных

Передавать как параметры в пользовательские функции (UDF)

Получать из пользовательских функций (это же относится и к типу данных timestamp)

Преобразовывать в другие типы данных (до 8000 байтов)

Извлечь из курсора оператором FETCH, если только не выполняется их преобразование

Использовать в обороте UNION ALL

Работать с sql_variant

 

Участвовать в операциях сравнения и сортировки и использовать в обороте GROUP BY. Единственным исключением является применение операций IS NULL или LIKE. (Простым способом обойти это ограничение является применение преобразований CONVERT или использование пользовательских функций, которые возвращают другие типы данных.)

 

Использовать в обороте UNION, потому что этот тип UNION эквивалентен обороту DISTINCT и вызовет ошибку, ведь типы данных text, ntext, и image нельзя сортировать

 

Programming

Журналирование изменений структуры БД и данных. Часть 2

Наталья Кривонос

Журналирование изменений вместе с изменяемыми значениями

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

Структура журнала

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

Other

Средства редактирования Transact­SQL­кода в инструментарии SQL Server 2005 Beta 2.
Часть 1*

Александр Гладченко

Статья представляет собой краткий обзор инструментов разработки на T­SQL, доступных в Microsoft SQL Server 2005 Management Studio.

Management Studio в Microsoft SQL Server 2005 Beta 2 является основным инструментом создания и редактирования Transact­SQL­запросов. Ниже описаны средства редактирования кода на Transact­SQL в Management Studio с акцентом на наиболее интересные и новые возможности разработки на Transact­SQL. Вы узнаете, чем Management Studio отличается от SQL Server 2000 Query Analyzer и что в нем стало лучше. Подразумевается, что вы уже знакомы с тем, как запускать и использовать SQL Server 2005 Management Studio, как подключиться к экземпляру SQL Server 2005 и как управлять разными окнами Management Studio.

SQL Server 2005 Management Studio Beta 2 сейчас находится в стадии активной разработки. В нем должны еще появиться новые возможности, а некоторые свойства изменятся ко времени выхода окончательного релиза SQL Server 2005. В статье описывается Management Studio той версии, которая поставлялась с SQL Server 2005 Beta 2, а все ссылки на Query Analyzer относятся к версии, поставлявшейся с SQL Server 2000.

Основные возможности редактирования запросов в Management Studio

В Management Studio интегрированы возможности редактирования запросов ко всем разновидностям баз данных SQL Server. Когда вы создадите новый запрос, щелкнув на панели кнопку New Query или с помощью пункта меню File/New Query, вы увидите, что можно создавать и редактировать запросы для SQL Server, Analysis Services и SQL Mobile. Когда вы работаете с SQL Server, создавая запрос, Management Studio вызовет редактор Transact­SQL­кода. Когда вы выполняете запрос к Analysis Server, Management Studio вызовет редактор MDX, DMX или XMLA, а когда вы работаете с запросами для SQL Mobile, будет вызван специализированный редактор кода, который использует соответствующее подмножество языка Transact­SQL. Основное внимание в этой статье будет уделено применению Management Studio для редактирования запросов на Transact­SQL.

Перед тем, как сосредоточиться на создании Transact­SQL запросов, полезно обратить внимание на некоторые общие возможности Management Studio, которые отличаются от имевшихся в Query Analyzer. Одной из таких возможностей Management Studio является то, что вы теперь сможете редактировать скрипты без установленного подключения к базе данных или с установленным подключением, т. е. редактирование запроса не требует обязательного подключения к серверу. Когда вы начинаете работать с запросом, у вас будет запрошена необходимость организации подключения, но если вы от него откажетесь, вы все равно сможете редактировать запрос. Вы можете даже отключиться от сервера или изменить параметры подключения во время сеанса редактирования без необходимости сохранения и повторного открытия файла с запросом. Это позволяет разрабатывать код автономно или последовательно выполнять его на нескольких серверах.

Когда вы работаете с запросами в подключенном режиме, Management Studio использует для подключения к SQL Server, Analysis Server или SQL Mobile соответствующие компоненты SQL Native Client. Несмотря на то, что инструментальная оболочка Management Studio во многом напоминает Microsoft Visual Studio, она является самостоятельным инструментом, который был разработан при помощи управляемого кода Visual Studio. Management Studio поддерживает создание и редактирование запросов к SQL Server, Analysis Services и SQL Mobile; Visual Studio может применяться для разработки кода SQL CLR.

В Management Studio вы также можете редактировать простые текстовые файлы. Например, если вы вызовете для открытия текстового файла диалоговое окно Open из меню File, Management Studio не будет запрашивать необходимость подключения и откроет текстовый редактор. Также вы можете вызвать XML­редактор косвенным образом, который будет описан ниже, в разделе «Анализ исполнения запросов».

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

Hosted by uCoz