Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Артемов Д.В. -> "Microsoft SQL Server 2000" -> 62

Microsoft SQL Server 2000 - Артемов Д.В.

Артемов Д.В. Microsoft SQL Server 2000 — М.: Издательско-торговый дом «Русская Редакция», 2001. — 576 c.
ISBN 5-7502-0154-6
Скачать (прямая ссылка): artemov.pdf
Предыдущая << 1 .. 56 57 58 59 60 61 < 62 > 63 64 65 66 67 68 .. 187 >> Следующая


Подведя указатель к имени поля таблицы в верхней панели, Вы получите пояснение относительно типа и размерности данных этого поля.

Поля, включаемые в результат, можно выбрать по-разному: отметить в верхней панели основного окна, перетащить в панель Grid pane или перечислить в панели, где формируется SQL-предложение.

Как Вы помните, указать критерии отбора при открытии таблицы нельзя. Чтобы не ждать понапрасну, вообще не открывайте таблицу — используйте представления.

Представления: простые и распределенные

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

Обычные (почти обычные) представления

Вы увидите новые свойства представлений, появившиеся у SQL Server 2000, щелкнув кнопку Properties инструментальной панели конструктора представлений. Представление может быть привязано к схеме БД

- флажок Bind to Schema (рис. 3-9). Привязанное к схеме представление накладывает дополнительные требования к таблицам или другим представлениями, входящим в определение SELECT. Их нельзя удалить или модифицироваить, если модификация затрагивает определение SELECT, например:

CREATE TABLE Testl (Fld1 int, Fld2 char(lO), Fld3 datetime)

CREATE VIEW TestView With Schemabinding

AS

SELECT Fldl, Fld2 FROM dbo.Testl ALTER TABLE Testl DROP COLUMN Fld1

- Выдает ошибку "The object 'TestView' is dependent on column 'FldV" ALTER TABLE Testl DROP COLUMN Fld3

- Эта команда исполняется без проблем

www.books-shop.com

ГЛАВА 3; Управление базами данных ¦y Qj

www.books-shop.com

И еще. Если представление создается с привязкой к схеме, объекты, на которые ссылается определение SELECT, должны именоваться с указанием владельца: объектах

Для расширения возможностей сервера при решении задач обработки больших массивов данных, включающих вычисления, SQL Server поддерживает создание индексов на представления. Это создает так называемые материализованные представления (Materialized view). Обычное представление — всего лишь определение SELECT, хранящееся в системном каталоге, привязанное к имени, и дерево исполнения запроса. Физические данные каждый раз при запросе извлекаются заново. Если же мы создаем индекс на представление, сервер создает физическое представление данных на диске и использует его, как любой другой индекс. Но помните: индексировать представление можно, только если Вы выполните целый ряд требований. Но об этом подробнее в разделе, посвященном индексам.

Распределенные представления

Как мы уже говорили, при установке SQL Server 2000 Вы можете поставить более одного экземпляра сервиса. Все эти серверы способны работать одновременно, и такой набор позволяет выполнять эксперименты или настраивать систему администрирования на единственном компьютере. Сейчас я собираюсь с помощью двух имеющихся на моем компьютере серверов продемонстрировать одну из интереснейших особенностей новой версии — распределенные представления. Допустим, у нас образовалась одна или более таблиц очень большого размера. В SQL Server «очень большой» означает действительно ОЧЕНЬ — сотни миллионов записей. Сервер, на котором обрабатывается эта таблица, начинает сдавать. Как быть? Начиная с версии 2000 у администратора есть выход из ситуации, если соблюден ряд условий: у Вас есть еще один сервер (лучше два-три), первичный ключ таблицы поддается логическому разбиению на группы, и Вы готовы пойти на увеличение административной нагрузки.

Что я имею в виду? Разбить таблицу на несколько и объединить их представлением, которое будет отвечать на запросы пользователей. Делается это так. После тщательного анализа распределения значений первичного ключа администратор решает, на какие части будет разбита таблица. Идеальный вариант — таблица типа отчета о продажах, в которой данные легко группируются по датам. В такой таблице части определяются наиболее естественно: по если у Вас

серверов, по кварталам, если машин 4, или по полугодиям, если все, что Вы можете себе позволить, — это отобрать компьютер у секретарши начальника и поставить на него экземпляр SQL Server 2000. Как

1 gg

Microsoft SQL Server 2000. Новейшие технологии

бы то ни было, Вы поставили необходимое оборудование и начинаете дробить таблицу. Колоссальных размеров таблица Customers из БД к примеру, неплохо бьется пополам с учетом того, что у меня вообще один компьютер, зато два экземпляра сервера. Итак, из одной таблицы Customers я создаю две: и Custo-

mers_MZ. В данном случае не так важно, что таблица может быть разбита на неравные части, но когда речь идет о сотнях миллионов записей, стоит хорошенько подумать и прикинуть не только текущий состав данных, но и потенциальный рост: после того как Вы создадите распределенное представление, ошибки могут привести к перегрузке одного сервера в ущерб остальным. Итак, создадим новую БД на втором сервере, ее параметр Collation должен в точности совпадать с параметром на другом сервере. Различия могут привести к тому, что сервер, с которого передавался запрос, получит полный комплект данных для локального выполнения фильтрации по условию. В новую базу мы переносим записи таблицы Customers, критерию SELECT Customerid FROM customers WHERE customerid > «M», т. е. начинающиеся на «М». Назовем две БД Distributedl и Distributed2. Чтобы один сервер «видел» другой, используем технологию связанных (linked) серверов. Создадим на сервере 2 связанный сервер Remotesrv, указывающий на сервер 1. Поскольку пользователям безразлично, на сколько частей разбита таблица, к которой они направляют запросы, мы создадим представление и назовем его, как и исходную таблицу — Customers. Представление формулируется так:
Предыдущая << 1 .. 56 57 58 59 60 61 < 62 > 63 64 65 66 67 68 .. 187 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100