Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
76-86.docx
Скачиваний:
4
Добавлен:
24.09.2019
Размер:
1.03 Mб
Скачать
  1. Организация доступа к данным. Полный просмотр таблицы, использование индексов.

Вообще говоря, в СУБД SQL Server применяются только два указанных ниже способа выборки запрашиваемых данных.

О Выборка данных путем полного просмотра таблицы.

О Выборка данных с помощью индекса.

Метод выборки данных, применяемый в СУБД SQL Server для выполнения конкретного запроса, зависит от состава доступных индексов, от того, в каких столбцах находятся требуемые данные, какого рода соединения выполняются и какие размеры имеют таблицы.

Использование полного просмотра таблицы

Процесс полного просмотра таблицы является довольно несложным. При осуществлении полного просмотра таблицы СУБД SQL Server начинает свою работу с физического начала таблицы, после чего считывает каждую строку таблицы. После обнаружения строк, соответствующих критериям запроса, СУБД включает эти строки в результирующий набор.

Операции с полным просмотром таблицы могут фактически оказаться в некоторых обстоятельствах самым быстрым методом доступа. Как правило, именно это происходит при выборке данных из относительно небольших таблиц. Точные данные о размерах таблицы, при которых способ выборки данных с полным просмотром становится наиболее быстродействующим, в основном зависят от размеров строк таблицы и от характерных особенностей самого запроса.

Попытайтесъ сами определить, почему применение оператора EXISTS в коnструкции WHERE запроса оказывает такое влияние на nрouзводumeльnостъ при переходе от одного способа выборки к другому. Дело в том, что при использовании оператора EXISTS поиск данных в СУБД SQL Server прекращается сразу после обnаружenuя хотя бы одной строки, соответствующей критериям поиска. Еслu ведется обработка таблuцы, состоящей из миллиона строк, и строка, соответствующая критериям, обnаружuвaemся на третьем месте, то использование опции. EXISTS позволяет исключить необходимость чтения 999997 строк! Опция NOT EXISTS действует в основном по такому же nриnциnу.

Использование индексов

Если планировщик запросов SQL Server принимает решение об использовании индексов, то процесс выборки данных осуществляется фактически во многом аналогично тому, как происходит полный просмотр таблицы, с учетом определенных способов сокращения.

В процессе оптимизации запроса программаоптимизатор просматривает все доступные индексы и выбирает из них наилучший (при этом в основном используется информация, заданная в операциях соединения и в конструкции WHERE, в сочетании со статистической информацией об устройстве индекса, которая ведется в СУБД SQL Server). После выбора применяемого индекса СУБД SQL Server переходит по древовидной структуре к тому узлу индекса, который указывает на данные, соответствующие установленным критериям. При этом снова извлекаются только необходимые строки. Различие между двумя способами выборки данных состоит в том, что машина выполнения запросов определяет момент достижения конца текущего искомого диапазона немного иначе, поскольку данные отсортированы. После этого может быть завершено выполнение запроса или в случае необходимости осуществлен переход к следующему диапазону определения данных.

можно отметить, насколько отчетливо напоминают действия, выполняемые при выборке данных с помощью индекса, сам способ применения опции EXISTS. Если в запросе задано ключевое слово EXISTS, то разрешается прекратить выполнение запроса сразу же, как только обнаруживается строка, соответствующая критериям запроса. Достигаемое благодаря этому повышение производительности при выборке данных с помощью индекса становится аналогичным или даже лучшим, чем при полном просмотре, поскольку процесс поиска данных может осуществляться по такому же принципу. Иными словами, если задано ключевое слово EXISTS, то серверу фактически дается указание, что после обнаружения хотя бы одной строки, соответствующей критериям, остальные строки не представляют больше интереса и поэтому обработка данных может быть сразу же прекращена. Но еще более значительным преимуществом использования индекса является то, что мы можем не ограничиваться ситуациями однозначного принятия решений (в которых требуется лишь определить, существует ли искомый фрагмент данных, "да" или "нет"). Иными словами, тот же подход можно применить для определения начала и конца некоторого диапазона, а возможность осуществлять выборку данных, относящихся к заданным диапазонам, предоставляет такие же преимущества, какие достигаются при использовании индекса для поиска данных. Более того, можно осуществлять очень быстрый поиск данных (такие операции известны под названием SEEK), а не просматривать всю таблицу.

Два средства обработки данных не являются взаимоискяючающими; индексы u оператор EXISTS могут использоваться совместно u часто так u ucnолъзуются. Речь об этuх двух средствах доступа ведется в одном контексте лuшъ потому, что индексы u оператор EXISTS позволяют прииять решение о том, что задание выполнено, u nрекратитъ обработку таблицы до того, как закончится просмотр всех строк таблицы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]