Создание и управление индексами. Создание и управление встроенными процедурами. Оптимизация производительности запросов. Управление транзакциями и блокировками, страница 12

AS Subtotal

FROM Customers c INNER JOIN Orders o

ON c.CustomersID=o.CustomersID

INNER JOIN [Order Details] od

ON o.OrderID=od.OrderID

GROUP BY CompanyName

GO

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

Вы можете создавать индексы на просмотрщика. В этом случае возврат результата будет более быстрым, и вы можете использовать индексированные просмотрщики для повышения производительности запросов.

Создавайте индексированный просмотрщик с помощью UNIQUE CLASTERED индекса на просмотрщике. Результат просмотрщика будет храниться на листовом уровне страниц кластерного индекса. После создания кластерного индекса вы можете создавать другие индексы на этот просмотрщик.

Оптимизатор запросов автоматически определяет, будет ли польза от использования индексированного просмотрщика. Он может определить, даже если запрос не ссылается на индексированный просмотрщик. В обычной практике позвольте оптимизатору запросов определять, когда использовать индексированный просмотрщик.

С помощью мастера Index Tuning Wizard вы можете очень сильно повысить ваши возможности определения лучшего сочетания индекса и индексированных просмотрщиков для оптимизации производительности запроса.

Создавайте индексированный просмотрщик когда:

*  Вышестоящие данные обновляются редко;

*  Запрос выполняет значительное количество объединений и агрегаций, которые обрабатывают множество строк или часто выполняется пользователями.

Примите к сведению следующие факты, когда используете индексированные просмотрщики:

*  Первый индекс, который вы создаёте, должен быть кластерным;

*  Вы должны создавать просмотрщик с опцией SCHEMABINDING.

*  Просмотрщик может ссылаться на базовые таблицы, но не может ссылаться на другие просмотрщики.

*  Последующие соединения должны иметь те же настройки опций для использования индексированного просмотрщика.

Вы должны использовать свойство IsIndexable функции OBJECTPROPERTY, чтобы убедиться в том, что просмотрщик можно индексировать.

Использование просмотрщиков для разделённых данных

Вы можете использовать просмотрщик для разделённых данных между несколькими базами данных или экземплярами SQL Server для повышения производительности.

Вы можете использовать оператор UNION внутри просмотрщика для комбинирования результата одного или нескольких запросов из различных таблиц в общий результирующий набор.

Разделённые просмотрщики могут основываться на данных от нескольких разнородных источников, таких как удалённый сервер, не только таблицы из той же базы данных. Это позволяет вам разделить процессы базы данных между группой серверов.

Если таблицы в разделённом просмотрщике на разных серверах или на компьютере с несколькими процессорами, каждая таблица входящая в запрос будет сканироваться параллельно, что повысит производительность. В дополнении, поддержка задач, таких как перестроение индекса или резервирование таблицы может выполнятся быстрее.

8.4 Лабораторные

Создание и тестирование просмотрщика

Для создания просмотрщика из запроса, выполните скрипт из файла CreaView.SQL.

Для создания зашифрованного просмотрщика выполните скрипт EncryptView.SQL.

Для просмотра информации о просмотрщике используйте следующий скрипт:

USE ClassNorthwind

GO

/* Display a list of all view definitions. */

SELECT *

FROM information_schema.views

/* Display a list of columns referenced in Invoices view. */

SELECT *

FROM information_schema.view_column_usage

WHERE view_name = 'Invoices'

/* Display a list of tables referenced in Sales by Category. */

SELECT *

FROM information_schema.view_table_usage

WHERE view_name = 'Sales by Category'

Создание и управление встроенными процедурами

9.1 Введение в встроенные процедуры

Здесь будут описаны различные типа встроенных процедур MS SQL Server 2000, будет описано, как хранятся встроенные процедуры, инициализация и последующее выполнение, и рассмотрены некоторые преимущества встроенных процедур.

Объявление встроенных процедур