Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Янин В.Л. "Новгородские акты XII-XV Хронологический комментарий" (История)

Майринк Г. "Белый доминиканец " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 2" (Художественная литература)

Петров Г.И. "Отлучение Льва Толстого " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 1 " (Художественная литература)
Реклама

Microsoft SQL server. Реализация и обслуживание Учебный курс - Microsoft press

Microsoft press Microsoft SQL server. Реализация и обслуживание Учебный курс — Microsoft Press, 2007. — 766 c.
Предыдущая << 1 .. 129 130 131 132 133 134 < 135 > 136 137 138 139 140 141 .. 343 >> Следующая

280 Управление XML-данными
Глава 8
шивая значение атрибута, которое появляется в XML-структуре. Засеките время выполнения при обработке достаточно большого объема XML-данных.
? Создайте XML-индекс PROPERTY, выполните запрос повторно и снова засеките время.
Выполните практический тест
Практические тесты на прилагаемом к этой книге компакт-диске предлагают много способов работы с ними. Например, можно проверить себя только по содержанию этой главы или по всему содержанию сертификационного экзамена 70-431. Тест может быть настроен так, чтобы он был тесно приближен к процедуре сдачи сертификационного экзамена, или же его можно настроить в режиме обучения — тогда правильные ответы и объяснения можно получить после ответа на каждый вопрос.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ Практические тесты
Подробнее о всех возможностях работы с практическими тестами написано в разделе «Как использовать практические тесты» во введении.
ГЛАВА 9
Создание функций, хранимых процедур и триггеров
SQL Server поддерживает три типа программируемых объектов: функции, хранимые процедуры и триггеры. Вместо исполнения отдельных инструкций и команд эти объекты позволяют создавать богатую программную логику, содержащую циклы, управление исполнением программы, принятие решений и ветвление. Помимо встроенного набора функций SQL Server, вы можете создавать пользовательские функции (user-defined functions), содержащие многократно используемый код. Хранимые процедуры, представляющие собой именованный код, используют в качестве интерфейса для доступа приложений к базам данных. Они позволяют управлять доступом к данным, просты в обслуживании и не требуют жесткого задания кода SQL в приложениях. Триггеры служат для автоматического исполнения кода в ответ на определенные события базы данных. Новым в SQL Server 2005 является то, что код для этих объектов можно создавать как с помощью Transact-SQL, так и с помощью языков, поддерживаемых платформой Microsoft .NET, таких как C# или Visual Basic.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ Языки программирования
Для краткости мы рассматриваем основные программные структуры SQL Server, используя код Transact-SQL, а не код среды CLR. Подробнее о реализации триггеров, функций и хранимых процедур с помощью CLR можно прочитать в статьях «CLR Stored Procedures», «CLR Triggers» и «CLR User-Defined Functions» в Электронной документации no SQL Server 2005. Электронная документация по SQL Server 2005 устанавливается как компонент SQL Server 2005, а ее обновления можно загрузить с веб-страницы учш Microsoft. com/technet/prodtechnol/sql/2005/downloads/books. mspx.
Занятие 1. Реализация функций Занятие 2. Реализация хранимых процедур Занятие 3. Реализация триггеров
291
283
296
282
Создание функций^ хранимых процедур и триггеров
Глава 9
Темы экзамена
? Реализация функций.
? Создание функций.
? Определение различий детерминированных и недетерминированных функций.
? Реализация хранимых процедур.
? Создание хранимых процедур.
? Перекомпиляция хранимых процедур.
? Установка разрешений для хранимых процедур.
? Реализация триггеров.
? Создание триггеров.
? Создание триггеров DDL, срабатывающих при изменении структуры базы данных.
? Определение рекурсивных триггеров.
? Определение вложенных триггеров.
Прежде всего
Для изучения материалов этой главы вам понадобится:
? Установленный на компьютере SQL Server 2005.
? Установленная на компьютере база данных Adventure Works, используемая в примерах главы.
История из жизни
Майкл Хотек (Michael Hotek)
Один из моих клиентов жаловался на производительность приложений, с которыми ему приходилось работать. Обсудив возникающие проблемы, мы приступили к исследованию базы данных. Она содержала много таблиц, очень мало индексов и ни одной хранимой процедуры. Хотя наличие хранимых процедур не гарантирует улучшенную производительность, их отсутствие приведет к тому, что любое самое малое колебание производительности очень сильно скажется на приложении.
С помощью приложения SQL Server Profiler (подробнее о нем см. в главе 15) мы создали моментальный снимок всех проблемных запросов к базе данных, исполнявшихся в 30-минутном промежутке. Результаты оказались ошеломляющими. Приложение, с которым работали всего 15 пользователей, выполнило более 300 ООО запросов лишь за 30 минут. Что-то было явно не так. Поэтому мы установили соединение с системой для дальнейшего исследования и нашли некоторые интересные моменты. Когда пользователь щелкал кнопку, приложение возвращало четыре строки данных и исполняло более 1 500 запросов.
Оказалось, что разработчики использовали среду разработки, которая «сделает все за вас сама», и ни разу не обратили внимание на то, что происходило в базе данных. Но, конечно, в ухудшении производительности был виноват SQL Server. И хотя всем хотелось свалить вину на SQL Server, исполнение 1 500 запросов для извлечения четырех строк данных означало, что с приложением было что-то не так.
Занятие 1
Реализация функций 283
Выяснив, что же действительно нужно пользователям, мы написали хранимую процедуру, которая возвращала нужные результаты. Мы вернулись к системе и щелкнули ту же кнопку — результаты почти сразу же появились в окне приложения. Заказчик не прислушался к нам и, не дожидаясь, пока мы устраним проблему производительности полностью, добавил новый код в работающее приложение, что сразу же привело к его сбою. Почему? Для добавления в приложение ссылки на хранимую процедуру нужно было переписать часть кода приложения и перекомпилировать его. Новый код никогда не тестировался, и никто не заметил, что разработчик случайно отключил критически важную функциональность.
Предыдущая << 1 .. 129 130 131 132 133 134 < 135 > 136 137 138 139 140 141 .. 343 >> Следующая