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

Содержание номера за Июнь 2002 

Editorial

Дискуссия о будущем БД

Пол Крил (Paul Krill)

На форуме Software Development  Conference & Expo в Сан-Хосе, Калифорния, прошла конференция, в ходе которой решалось будущее баз данных — будут ли они основаны на обычной реляционной модели,  использующей язык SQL и включающей XML-технологии, или на новой XML-модели.

В выступлениях официальных представителей таких компаний, как Oracle, Sun Microsystems и IBM, будущее БД связывалось с XML и SQL.

«Думаю, благодаря гибкости и возможности описывать самого себя, XML станет основным форматом обмена данными», — сказал Дон Чемберлен (Don Chamberlain), специалист по технологиям работы с БД из корпорации IBM. По его словам, реляционные БД будут оснащены интерфейсами для поддержки XML и обработки запросов стандарта XQuery.

«XML станет «lingua franca» обмена данными. Кроме того, в некоторых больших реляционных системах XML станет «родным» форматом».

По словам Чемберлена, развитие XML-технологий только начинается, и нам, разработчикам, предстоит еще потрудиться над методами индексированием XML-данных. «SQL не исчезнет, однако появляются новые форматы данных, для работы с которыми этот язык просто не предназначен», — говорит он.

Рик Каттел (Rick Cattel), известный инженер из компании Sun, видит будущее XML не в таких радужных тонах и считает, что мало кто будет хранить запросы XQuery в формате XML. «Думаю, идея реляционных БД непреодолима», — говорит Каттел и добавляет, что его мнение основано на опыте работы с объектно-ориентированными БД, уровень производительности которых в корпоративных ИТ-магазинах гораздо ниже уровня производительности реляционных БД. По словам Каттела, разработчикам потребуются средства преобразования реляционных данных в XML и обратно.

Еще один специалист, Дэниэла Флореску (Daniela Florescu), начальник отдела технологий компании XQrl, достаточно оптимистично оценивает производительность БД на основе XML-модели. По ее словам, родным форматом хранения документов будет XML. XQrl поставляет версию XML-языка запросов XQuery.

«Сейчас низкая Web-производительность обусловлена преобразованием данных из формата Java в формат XML, — говорит Флореску. — Приемлемой производительности можно будет достичь, только исключив маршалинг данных из XML в Java и обратно».

Прогнозы Флореску относительно постепенной замены языков Java и SQL расширением XQuery вызвали резкую реакцию Каттела, компания которого разрабатывала Java.

«Не думаю, что XQuery когда-либо заменит SQL или Java, но возможно, на смену SQL придет новый язык запросов, — заявил Каттел. — Следующий этап эволюции БД — появление более мощных, чем используемые сегодня на поисковых системах типа Google, способов выполнения запросов».

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

«Технология пространства кортежей достаточно интересна, но не думаю, что она охватит весь мир — требуется провести еще много исследований, да и редко кто создает производственные приложения с ее использованием», — сказал Каттел. Кроме того, по его же словам, «технология БД, находящихся в памяти — то, что надо», однако объем ОЗУ современных систем пока недостаточен для ее реализации.

Известный инженер из Microsoft Джим Грей (Jim Gray) подчеркнул важность самоуправляемых технологий БД для снижения административных издержек: «Реальная проблема, с которой мы сталкиваемся — сделать компьютеры самоуправляемыми, чтобы произвольные издержки были меньше капитальных».

Грей также говорил о ценности развертывания запросов к БД в одноранговом формате, где отдельные компьютеры обладают достаточным объемом недорогой вычислительной мощности: «Идея одноранговых вычислений для БД такова: если вам требуется переслать много данных, за 1 доллар вы сможете приобрести много вычислительной мощности».

Кроме того, была затронута и тема использования стандартов в процессе разработки БД. По словам Джима Мелтона (Jim Melton), советника технической службы Oracle, в некоторых случаях вполне приемлемы стандарты «де юре», разработанные на основе спецификаций, например SQL; в других случаях могут использоваться стандарты, разработанные совместно, например ODBC.

Мелтон сказал, что состоит в группе поставщиков под названием SQLX, которая вот уже в течение года пытается разработать способы более тесной интеграции SQL и XML. В планах группы в середине 2003 г. опубликовать спецификацию SQL/XML, содержащую функции публикации для обоих форматов.

Programming

Создание MTS-подобных транзакций с помощью Visual Basic и SQL Server 7.0

Тэд Пэтисон (Ted Pattison)

Для выполнения транзакций, подобных транзакциям Microsoft Transaction Server (MTS), необходимо знать, как SQL Server взаимодействует со средой выполнения MTS и координатором распределенных транзакций  (distributed transaction coordinator, DTC) Windows NT. Разобравшись в этом, вы сможете еще лучше оптимизировать свое приложение.

В статье предполагается, что вы знакомы с SQL Server, MTS и Visual Basic.

Скажем, вы собираетесь создать приложение для оперативной обработки транзакций (online transaction processing, OLTP) с использованием Microsoft SQL Server 7.0, Microsoft Transaction Server (MTS) и Visual Basic. Возможно, вы создадите офисное приложение на основе форм, подключающееся к объектам MTS через ЛВС. Возможно, приложение на основе браузера, создающее объекты MTS с помощью ASP-сценариев. В любом случае для выполнения MTS-подобных транзакций следует знать, как SQL Server взаимодействует со средой выполнения MTS и координатором распределенных транзакций Windows NT.

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

Для начала я вкратце рассмотрю теорию обработки транзакций и объясню мотивацию диспетчера блокировок SQL Server. Затем мы перейдем к различным уровням изоляции, поддерживаемым SQL Server, и обсудим их применение. Наконец, мы нырнем в темные воды MTS и DTC и обсудим управление распределенными транзакциями из MTS-приложения. Мы также обсудим и другие темы, например указания по блокировке SQL Server и как избежать взаимоблокировок.

Как записать денежную сумму прописью

Если предоставить этому сценарию денежную сумму, например $12525.83, он вернет ее значение прописью: двенадцать тысяч пятьсот двадцать пять долларов восемьдесят три цента.

Сценарий состоит из таблицы для преобразования чисел в слова и процедуры для разбора числа на разряды.

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

Performance

Индексы и соединения

Кэйлин Дилани (Kalen Delaney)

Хорошие индексы помогают SQL Server при обработке запросов с соединениями.

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

Включите параметр TEXT IN ROW!

После включения параметра TEXT IN ROW количество тайм-аутов страниц раздела FAQ резко сократилось.

Проблема

Мне пришлось заниматься созданием раздела FAQ на узле SQLServerCentral.com. Сразу после создания он работал замечательно, но когда в результате ввода больших списков FAQ библиотека вопросов разрослась до нескольких сотен элементов, я заметил, что страница стала загружаться намного медленнее, и часто происходит тайм-аут. Я перепробовал все средства, от агрессивного кэширования до указаний запросов, но безуспешно, и разочарованные читатели продолжали жаловаться на медленную работу разделов FAQ и Script.

Решение

Поскольку мы пользуемся услугами хостинга, у нас ограниченные возможности в плане аппаратного решения проблемы. Например, мы не можем перенести столбцы с текстом и изображениями в другую группу файлов и поместить ее на отдельном массиве дисков. Поэтому я решил попробовать новый (теперь уже испытанный) параметр TEXT IN ROW, доступный во всех редакциях SQL Server 2000. Чтобы разобраться в работе этого параметра, нужно понять, как работают поля типа text, ntext и image.

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

Hosted by uCoz