|
Программирование >> Реализация баз данных
SET ©MyCounter = taKyCounter +1 GO . SET NOCOUNT OFF GO Этот оператор завершает сценарий. Обратите внимание на применение двух элементов языка управления ходом WHILE и Значения строк в этом операторе определены с помощью выражения (@MyCounter + 1 и ©MyCounter + ASCII (а)) и функций CHARh ASCd. В конце сценария помещен оператор SET NOCOlfNT дабы снова включить генерацию сообщений с результатами подсчета строк. ► Как выполнить сценарии t-SQL, а затем удалите нцу из базы данных 1. Исполните полный вариант сценария. После исполнения сценария выводится вкладка Messages с сообщением об завершении команды. Если при исполнении сценария не использовался оператор SET NOCOUNT ON, на вкладке Messages также будет выводиться сообщение с результатами подсчета строк для каждой строки, добавленной к таблице (которых всего 26). 2. следующий оператор SELECT: SELECT FROM [New Table] Результат юдится на вкладке Grids. Обратите ание, что на этой вкладке выводится 26 строк, а значения в двух столбцах постепенно увеличиваются. 3. Исполните следующий оператор SELECT: DROP TABLE New Table На вкладке Messages выводится сообщение о том, что команда была успешно. 4. Закройте SQL Query Analyzer. Если хотите, можно сохранить сценарий на языке Transact-SQL для использования в дальнейшем. В противном случае закройте SQL Query Analyzer без сохранения сценария. Резюме В язык Transact-SQL входит много синтаксических элементов, которые большинством операторов или влияют на них. К ним относятся идентификаторы, переменные, функции, типы данных, выражения, язык управления ходом выполнения и комментарии. Идентификатор - это имя объекта базы данных. В SQL Server он может быть у каждого объекта. Переменная - это объект, который в пакетах и сценариях Transact-SQL содержит некие данные еет значение) кпия инкапсулирует часто исполняемые алгоритмы в виде подпрограммы, состоящей из одного или нескольких операторов Transact-SQL. В Transact-SQL также имеются типы данных - атрибуты, определяющие тип данных, которые может содержать объект. Выражение представляет собой комбинацию идентификаторов, значений и операторов. Эту комбинацию обрабатывает SQL Server, чтобы получить результат. Язык управления ходом выполнения состоит из специальных слов, контролирующих ход выполнения операторов Transact-SQL, их блоков, а также хранимых процедур. Комментарии (примечания) - это неисполняемые строки исходного текста программы. №П0ЛЬЭ0Е111)1И8 язык ct-SQL при работе с SQ г Глава 2 Занятие 4. Исполнение операторов Transact-SQL В SQL Server 200 но несколько методов исполнение торов Transact-SQL. Можно исполнить одиночный оператор или несколько операторов в виде пакета (который является группой из одного или нескольких операторов t-SQL). Операторы Transact-SQL также можно исполнять в хранимых процедурах и триггерах. На этом занятии вы познакомитесь с различными методиками исполнения операторов, а также узнаете о способах исполнения в зависимости от применяемой методики и об исполнении операторов Transact-SQL с помощью сценариев. Изучив материал этого занятия, вы сможете: определить методики исполнения Transact-SQL; рассказать, как операторы Transact-SQL, хранимые процедуры и триггеры; рассказать о сценариях Transact-SQL и описать способы их использования. Продолжительность занятия - около 25 минут. Одиночные операторы Transact-SQL Обработка одиночных операторов является основным способом исполнения SQL в SQL Server 2000. Проще всего обработку оператора проиллюстрировать на примере оператора SELECT. SELECT относится к непроцедурным операторам - он не определяет конкретных шагов, которые должен выполнить сервер баз данных для выборки запрошенных данных. Другими словами, чтобы определить наиболее эффективный способ извлечения запрошенных данных, сервер баз данных должен проанализировать оператор. Этот процесс называется оптимизацией оператора SELECT, а выполняет его оптимизатор запросов. Процесс выбора одного плана из нескольких возможных называется опти- мизацией. Оптимизатор запросов является одним из наиболее важных компонентов СУБД. Несмотря на то, что анализ запроса и выбор оптимизатором плана исполнения связан с некоторыми издержками, они многократно окупаются при выборе оптимизатором запро- эффективного плана исполнения. Представьте себе, что двум строительным компаниям надо возвести дома по идентичным чертежам. Одна компания затратила несколько дней на планирование, а другая сразу же приступила к строительству. Скорее всего, первой завершит работу та компания, которая не поленилась заняться планированием. Оптимизатор запросов так важен, поскольку он дает серверу баз данных возможность динамически настраиваться в соответствии с меняющимися условиями, не требуя от программиста или администратора ввода дополнительной информации. Этот процесс позволяет программистам сосредоточиться на описании конечного результата запроса. Они могут быть уверены в том, что при каждом запуске оператора оптимизатор запросов сформирует эффективный план исполнения в зависимости от состояния базы данных. Обработка оператора SELECT Базовый процесс исполнения основной массы операторов Transact-SQL можно проиллюстрировать на примере этапов обработки одиночного оператора SELECT, который ссылается только на локальные таблицы (и не использует представления или удаленные базы данных). 1. Синтаксический анализатор сканирует оператор SELECT и разбивает его на логические такие, как ключевые операторы и идентификаторы. 2. Путем описания логических шагов, необходимых для трансформации исходных данных в формат результирующего набора, строится дерево запроса (иногда оно называется деревом последовательности), 3. Оптимизатор запросов анализирует все варианты обращения к исходным таблицам и выбирает тот, который позволит быстрее всего получить результат с наименьшей за-тратой ресурсов. Дерево запроса обновляется точным описанием набора шагов. Конечная, оптимизированная версия дерева запросов получает название план исполнения . 4. Реляционный механизм приступает к реализации плана исполнения. При выполнении шагов, требующих данные из таблиц базы, реляционный механизм с помощью OLE DB запрашивает у механизма хранения передачу данных из наборов строк, запрошенных у реляционного механизма. 5. Реляционный механизм обрабатывает данные, которые вернул механизм хранения, преобразует их в формат, определенный для результирующего набора, и возвращает результаты клиенту. Обработка других операторов Основные этапы обработки оператора SELECT верны и для операторов SQL - INSERT, UPDATE и DELETE. Операторы UPDATE и DELETE определяют целевые н i6o-ры строк, предназначенные для модификации или удаления. Процесс идентификации >тих строк аналогичен процессу идентификации исходных строк для формирования результирующего набора оператора SELECT. И UPDATE, и INSERT могут содержать встроенные операторы SELECT, которые предоставляют данные для модификации или добавления. Даже операторы DDL, например CREATE PROCEDURE или ALTER TABLE, в конечном счете представлены наборами реляционных операций над таблицами (lCтefмoгo каталога и иногда (в случае операторов ALTER TABLE и ADD COLUMN) над таблицами данных. Пакеты Пакет - это из одного или нескольких операторов которые прило- жение одновременно посылает на SQL Server для исполнения. SQL Server компилирует операторы пакета в единую исполнимую единицу (план исполнения). После этого по очереди выполняются операторы этого плана. Ошибка при компиляции, например синтаксическая, останавливает процесс компиляции плана исполнения. В этом случае ни один из операторов пакета исполнен не будет. У ошибки периода выполнения, например арифметического переполнения или нарушения ограничения, возможно одно из следующих последствий: большинство ошибок периода выполнения останавливают исполнение текущего и по-операторов пакета; ошибки периода выполнения, например ограничений, останав- ливают исполнение лишь текущего оператора. При этом остальные операторы пакета будут исполнены. Операторы, исполненные до вызвавшего ошибку периода выполнения, не испытывают на себе влияния этой ошибки. Единственное исключение: если пакет Я1зля-ется то при возникновении ошибки транзакция откатывается. В этом случае происходит отмена всех незафиксированных модификаций, сделанных до возникновения ошибки периода выполнения.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |