Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
07.02.2016
Размер:
54.78 Кб
Скачать

ЛАБОРАТОРНА РОБОТА №5

ТЕМА РОБОТИ: Використання індексів і ключів.

МЕТА РОБОТИ: Навчити студентів оптимізувати процес обробки запитів шляхом створення індексів і ключів.

ТЕОРЕТИЧНІ ВІДОМОСТІ

Визначення індексів

Індекси – це внутрішній метод SQL Server організації даних з таблиць, завдяки якому їхня вибірка виконується оптимальним образом. Індекси – це набори унікальних значень деякої таблиці й відповідні їм показчики на сторінки таблиці, де фізично перебувають ці значення. Образно говорячи, індекси – це стенографічний спосіб запису інформації, що зберігається в таблицях. У той же час, індекси – це ще один вид об’єкта бази даних, для створення якого потрібна додаткова пам’ять, точно так само, як і для таблиць. Створюючи індекс в SQL Server, ви тим самим даєте йому команду сканувати таблицю, вибрати унікальні значення в конкретному стовпці, а потім записати на індексну сторінку покажчики на сторінки даних й ідентифікатори рядків для індексуючих значень. Тоді в пошуку необхідних даних сервер буде сканувати не всю таблицю, а тільки індексні сторінки.

Принципи створення індексів

Робота з індексами означає безперервне тестування бази даних. Це як завдання з багатьма невідомими, котре вирішується методом підбора параметрів. Наприклад, якщо передбачається, що створювані індекси будуть використати механізм забірки даних додатки типу клієнт/сервер, то при такому підході до збору інформації з таблиць головним фактором є те, які стовпи будуть проіндексовані.

Створення індексу за допомогою SQL Server Enterprise Manager

Щоб створити індекс за допомогою програми SQL Server Enterprise Manager, виконайте наступні дії:

  1. Запустіть додаток SQL Server Enterprise Manager із групи програм Microsoft Server Enterprise.

  2. Виберіть сервер, базу даних і таблицю, з якими ви збираєтесь працювати.

  3. Виберіть команду меню Action – All Tasks – Manage Indexes. На екрані з’явиться діалогове вікно Manage Indexes.

  4. Клацніть на кнопці New (Створити), щоб викликати діалогове вікно Create New Index (Створення нового індексу), у якому можна ввести ім’я нового індексу й вибрати для нього стовпці.

  5. Уведіть у поле Index Name (Ім’я індексу) ім’я fk_au_id, виберете стовпець au_id й установите прапорці Unique Values (Унікальні значення) і Ignore Duplicate Values (Ігнорувати повторювані значення).

Створення індексу за допомогою команди Create Index

При створенні індексу за допомогою програми SQL Server Enterprise Manager використовюється команда Transact-SQL Create Index. Синтаксис цієї команди такий:

CREATE [UNIQUE] [CLUSTERED / NONCLUSTERED ]

INDEX index name ON table_name (column_name [, … n])

[WITH

[PAD_INDEX ]

[ [,] FILLFACTOR = fillfactor ]

[ [,] IGNORE_DUP_KEY ]

[ [,] SORTED_DATAREORG ]

[ [,] {IGNORE_DUP_ROW / ALLOW_DUP_ROW}]

[ [,] DROP_EXISTING ]

[ [,] STATISTISTICS_NORECOMPUTE ]

[ ON filegroup ]

Відображення інформації про індекс

В SQL Server існує два способи відображення інформації про індекси: графічний (за допомогою диспетчера індексів Index Manager додатка SQL Server Enterprise Manager) і текстовий ( за допомогою системної збереженої процедури sp_helpindex і збереженої процедури ODBC sp_statistics).

Видалення індексу за допомогою команди DROP INDEX

Щоб видалити індекс за допомогою команди Transact-SQL, можна скористатися оператором Drop Index. Його синтаксис:

DROP INDEX [owner.] table_name. Index_name

[, [owner.] table_name. Index_name…]

Параметри команди Transact-SQL DROP INDEX

Table_name – це ім’я таблиці в якій перебуває індекс. Якщо користувач, що запускає команду DROP INDEX – власник бази даних або системний адміністратор, що не є власником даної таблиці, то перед параметром table_name потрібно вказати власника таблиці, тобто визначити параметр owner.

Index_name – це ім’я індексу, що видаляють. За допомогою одного оператора можна видалити кілька індексів, перелічивши їх через кому.

Приведемо приклад видалення індексу Barny з таблиці Authors:

DROP INDEX author.barny

Визначення ключів

У термінології баз даних ключі й індекси це найчастіше синоніми, але в SQL Server між ними є деяка різниця.

Первиний ключ – це унікальний стовпець (або набор стовпців), що визначає рядки таблиці бази даних. У цьому змісті первиний ключ виконує ту ж функцію, щой унікальний індекс.

Зовнішні ключі – це стовпці таблиці, які відповідають первиним ключам інших таблиць. Співвідношення між первинним і зовнішнім ключами визначає область припустимих значень зовнішнього ключа.

Додавання первиних і зовнішніх ключів за допомогою оператора CREATE TABLE… PRIMARY KEY

У синтаксисі команди CREATE TABLE передбачена можливість додавання в розділі CONSTRAIN елемента PRIMARY KEY або FOREIGN KEY. Спрощений синтаксис команди CREATE TABLE виглядає в такий спосіб:

CREATE TABLE table_name

(column_name data_type CONSTRAINT … , …)

Додавання первиних і зовнішніх ключів за допомогою оператора ALTER TABLEADD CONSTRAINT

Для операторів ALTER TABLEADD CONSTRAINT і CREATE TABLE використовується аналогічний синтаксис.

ALTER TABLE table_d ADD CONSTRAINT pk_column_b PRIMARY KEY (column_b)

ПОРЯДОК ПРОВЕДЕННЯ ЛАБОРАТОРНОЇ РОБОТИ

  1. Вивчити теоретичні відомості

  2. Створити індекс за допомогою SQL Server Enterprise Manager.

  3. Створити індекс за допомогою команди Create Index. Пояснити призначення всіх параметрів, коефіцієнтів й опцій.

  4. Використати зазначений індекс за допомогою команди Select

  5. Відобразити інформацію про індекс різними процедурами.

  6. Видалити індекс за допомогою команди Drop Index й у менеджері.

  7. Додати первинні й зовнішні ключі за допомогою оператора Create TablePrimary Key і за допомогою менеджера.

  8. Додати первинні й зовнішні ключі за допомогою оператора Alter TableAdd Constraint.

  9. Відобразити інформацію про ключі.

  10. Предоставити письмовий звіт по роботі.

ПИТАННЯ ДЛЯ САМОПЕРЕВІРКИ

  1. Дайте визначення терміну “індекси”.

  2. Що означає - “створити індекс”?

  3. Яких принципів слід дотримувати при створенні індексів?

  4. Які дії необхідно виконати щоб створити індекс?

  5. Яка команда використовується для створення індексу? Наведіть приклад використання цієї команди.

  6. Які способи існують відображення інформації про індекси?

  7. Наведіть приклад виделення індексу.

  8. Порівняйте терміни “ключі” та “індекси”. Яка між ними різниця?

  9. Дайте визначення термінів “первиний ключ” та “зовнішні ключі”.

  10. Які оператори використовуються для додавання ключів. Наведить приклади.

5

Соседние файлы в папке Учебное пособие