(Возврат на основную страницу)
Пол Крил (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, содержащую функции публикации для обоих форматов.
Создание 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 он будет лучше работать в виде функции.
Кэйлин Дилани (Kalen Delaney)
Хорошие индексы помогают SQL Server при обработке запросов с соединениями.
Индексы ускоряют извлечение одной или нескольких строк из таблицы. Один из лучших способов повышения быстродействия запросов — это создание хороших индексов. При наличии хорошего индекса и в отсутствие оного быстродействие запроса, извлекающего всего лишь несколько строк из очень большой таблицы, различается как небо и земля. Индексы также помогают SQL Server при оптимизации запросов к нескольким таблицам (например запросов с соединениями), повышая эффективность поиска совпадающих строк в соединяемых таблицах.
После включения параметра TEXT IN ROW количество тайм-аутов страниц раздела FAQ резко сократилось.
Проблема
Мне пришлось заниматься созданием раздела FAQ на узле SQLServerCentral.com. Сразу после создания он работал замечательно, но когда в результате ввода больших списков FAQ библиотека вопросов разрослась до нескольких сотен элементов, я заметил, что страница стала загружаться намного медленнее, и часто происходит тайм-аут. Я перепробовал все средства, от агрессивного кэширования до указаний запросов, но безуспешно, и разочарованные читатели продолжали жаловаться на медленную работу разделов FAQ и Script.
Решение
Поскольку мы пользуемся услугами хостинга, у нас ограниченные возможности в плане аппаратного решения проблемы. Например, мы не можем перенести столбцы с текстом и изображениями в другую группу файлов и поместить ее на отдельном массиве дисков. Поэтому я решил попробовать новый (теперь уже испытанный) параметр TEXT IN ROW, доступный во всех редакциях SQL Server 2000. Чтобы разобраться в работе этого параметра, нужно понять, как работают поля типа text, ntext и image.