|
Программирование >> Sql: полное руководство
проходит нормально, хранимая процедура возвращает код успешного завершения. Ecnv же возникают проблемы (например, на складе нет нужного товара или кредит клиента исчерпан), тогда приложение получает код оишбки и соответствующее сообщение. В результате весь сетевой трафик транзакции сводится к одной паре сообщений. У хранимых процедур есть и ряд других преимуществ, но сокращение сетевогс трафика - главное из них. Именно это явилось основной причиной продвижения нг рынке СУБД SQL Server и помогло укрепить ее позиции как специализированной СУБД для высокопроизводительных OLTP-приложений. Хранимые процедуры настолько популярны, что сейчас их поддерживают все ведущие СУБД масштаба предприятия Корпоративные приложения и кэширование данных [ Сегодня практически все коммерческие приложения, предназначенные для автоматизации деятельности предприятия, используют SQL и реляционные базы данных Эти крупномасштабные приложения обычно работают на мощных серверах UNIX и создают очень высокую рабочую нагрузку на СУБД. Для изоляции работы приложений и СУБД и переноса основной нагрузки по обработке данных на приложения используется трехуровневая архитектура, схематически представленная на рис. 22.17. Персональный компьютер Команды пользователя Вывод данных Прикладная программа Сервер приложений Корпоративное приложение Клиентский уровень Запрос к базе данных Результаты Сервер баз данных СУБД База данных Прикладной уровень Информационный уровень Рис 22 17. Типичная трехуровневая архитектура крупных корпоративных приложений Даже при использовании хранимых процедур сетевая нагрузка и нагрузка на СУБД, создаваемая некоторыми подобными приложениями, может превысить возможности полосы пропускания сети и максимальную интенсивность транзакции, поддерживаемую СУБД. Для примера можно рассмотреть приложение для планирования поставок, помогающее предприятию-производителю планировать заказы материалов, сырья и комплектующих. Для вьшолнения своей задачи такое приложение должно проанализировать каждый имеющийся заказ на продукцию и подготовить перечень компонентов, необходимых для производства каждого продукта. Сложные продукты могут состоять из тысяч компонентов, а эти компоненты в свою очередь также могут собираться из десятков и сотен отдельных элементов. Если составлять план поставок с использованием обычных технологий программирования, приложение должно запросить из базы данных информацию о составе каждого продукта (и каждой его комплектующей), входящего в каждый заказ клиента, и затем сформировать итоговые данные о количестве материалов и комплектующих, необходимых для удовлетворения этих заказов. Если предприятие получает сотни и тысячи заказов, для их обработки могут потребоваться часы. Хуже того, приложение может просто не укладываться в то время, которое выделено ему для выполнения задания (обычно это ночные часы, когда рабочая нагрузка на базу данных минимальна). Чтобы добиться приемлемой производительности, во всех крупномасщтабных приложениях, выполняющих интенсивную обработку данных, используются специальные технологии кэщирования, когда данные с помощью специального промежуточного ПО извлекаются из серверной базы данных и перемещаются ближе к приложению. В больщинстве случаев технологии кэщирования относительно примитивны. Например, перечень материалов может быть извлечен однажды и помещен в таблицу, находящуюся в оперативной памяти компьютера, на котором работает приложение. Избавивщись от однотипных, многократно повторяющихся запросов о составе продукции, программа может резко повысить свою производительность. С недавнего времени разработчики приложений стали использовать более сложные технологии кэширования. Например, приложение может реплицировать наиболее интенсивно используемые данные в таблицы локальной базы данных. Еще более мощной альтернативой является загрузка частей базы данных в оперативную память - она применяется в тех случаях, когда обрабатываются данные относительно небольшого объема (десятки или сотни мегабайтов). С появлением 64-разрядных операционных систем и неуклонным снижением цен на оперативную память практикуется кэширование все больших объемов данных (до нескольких п-ггабайтов). С ростом требований к деловым приложениям сложные технологии кэширования и репликации приобретают все большее значение. Ведущие компании-производители уже ориентируются на планирование в реальном времени , когда поступающие заказы клиентов обрабатываются мгновенно и тут же отражаются в планах поставок магериалов. Реализация этих требований неизбежно означает рост интенсивности и сложности взаимодействия приложений с базами данных. Управление базами данных в среде Internet Internet-приложения также могут вести интенсивный обмен информацией с базами данных, и из-за низкой пропускной способности каналов связи по сравнению с локальными сетями они еще больше нуждаются в применении высокоэффективных технологий кэширования и репликации. Например, финансовые компании борются за привлечение клиентов для интерактивных биржевых сделок, предлагая все более эффективные возможности в плане анализа активности рынка ценных бумаг. Системы управления данными, необходимые для поддержки таких приложений, требуют сбора данных в реальном масштабе времени (нужно гарантировать достоверность информации о ценах, спросе и предложении) и интенсивнейшей нагрузки на базы данных (порядка десятков тысяч транзакций в секунду). Подобные требования предъявляются и к приложениям, осуществляющим мониторинг Web-узлов с интенсивным доступом. Тенденция к персонализации Web-узлов, когда программное обеспечение на лету определяет, какие рекламные баннеры следует вывести на запрошенной пользователем странице, какие предложить товары и т.п., является еще одной причиной повышения нагрузки на базы данных. Уже существует эффективная технология решения подобных проблем - кэширование Web-узлов. Копии наиболее популярных Web-страниц распределяются по сети и реплициртотся. В результате сеть может обслужить большее количество запросов Web-страниц, и объем сетевого трафика, связанного с предоставлением самых популярных страниц, уменьшается. Подобная архитектура завоевывает популярность и для обеспечения интенсивного доступа к базам данных через Internet (рис. 22.18). В этом случае Internet-сервер кэширует часто используемые данные, такие как последние новости или финансовая информация, в резидентной сверхвысокопроизводительной базе данных. Кроме того, сервер хранит в оперативной памяти информацию о пользователях и обращается к ней, чтобы настроить Web-узел в соответствии с требованиями пользователей. Сервер баз данных СУБД Сервер приложений Web-броузер Резидентная база данных Информация о пользователях Internet или inlranet л м Internet- ai -Iff приложения Sn-и Intetriet, Web-броузер;. Кэширо ванные данные Серверная база данных Резидентная база данных Web-сервер Реплицированные серверы Рис. 22 18. Высокопроизводительное управпеще данными е среде ш Как следует из рис. 22.18, для управления данными в высокопроизводительных профаммных комплексах используются те же методы, что и для управления Web-узлами, обслокиваюшими очень большое количество посетителей. Однако наличие такого звена, как база данных, и необходимость поддерживать ее целостность делает всю систему гораздо более сложной. И все же базовые технологии остаются теми же - репликация, резидентные базы данных и отказоустойшвые архитектуры.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |