CREATE UNIQUE CLUSTERED INDEX



index1 ON Contacts (Sirname);

 

Создадим неуникальный некластерный индекс index2.

 

CREATE INDEX

index2 ON Contacts (Sirname);

 

При построении индексов можно опираться на следующие правила.

 

· Не создавайте редко используемые индексы для таблиц с частой модификацией данных. Особенно не следует создавать кластерные индексы для таких таблиц, т.к. при любом изменении будет происходить физическое перестроение записей в таблице.

· При извлечении из таблицы очень большого числа строк использование индекса – только потеря времени.

· Индексы лучше создавать для столбцов, значения в которых редко повторяются.

· Индекс должен быть максимально узким (меньшего объема). Тогда дерево индекса станет более плоским, и поиск будет происходить быстрее. По возможности нужно использовать типы данных наименьшего размера - числа сравниваются несколько быстрее, чем строки

· Индексы полезны при сортировке. Если сортировка происходит по индексируемому столбцу (или нескольким столбцам одного индекса), нет необходимости переупорядочивать данные.

· Кластерные индексы обеспечивают очень высокое быстродействие при выборке по диапазону

 


Многопользовательский доступ к данным

Технология «клиент-сервер»

 

Сервер – компьютер, предназначенный для выполнения определенных служебных задач (напр., файл-сервер).

Также сервер – программное обеспечение, которое отвечает на запросы клиентов и предоставляет им доступ к ресурсам или услугам.

 

Виды серверов:

 

· FTP-сервер (ftp – протокол для передачи файлов);

· WEB-сервер (принимает от клиентов http-запросы, возвращает http-ответы);

· сервер БД;

· SMTP-сервер;

· прокси-сервер (позволяет клиентам выполнять косвенные запросы к другим сетевым службам) и др.

 

Клиент – это аппаратный или программный компонент, который отправляет серверу запросы, в ответ получает информацию и предоставляет её пользователю.

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

 

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

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

 

При работе с базами данных часто используется следующая схема:

 

 

 

Тонкий клиент (веб-браузер) обращается к веб-серверу по протоколу http, веб-сервер отправляет запрос к серверу БД, получает данные, обрабатывает их, формирует html-страницу и возвращает её клиенту.


Транзакции

 

Транзакция представляет собой команду или группу команд SQL, которые завершаются или отменяются как единое целое.

Классический пример транзакции – пересылка денег через банкомат. Предположим, через банкомат происходит перевод $5000 с накопительного счёта на текущий. Программа вычитает $5000 с накопительного счёта, после чего увеличивает текущий счёт на $5000. Во время работы программы после вычитания денег с накопительного счёта, но до увеличения текущего счёта на банкомате происходит сбой питания. Вопрос: что происходит с $5000? Деньги возвращаются на накопительный счёт, помещаются на текущий счёт или пропадают навеки?

Если эти две команды объединены в транзакцию, проблем нет. Это гарантирует, что обе команды либо успешно завершатся, либо не завершится ни одна из них. Без транзакций существует опасность того, что будет выполнена лишь одна команда.

Каждый из операторов INSERT, UPDATE, DELETE создаёт транзакцию, которая завершается при завершении оператора. Транзакция может состоять также из нескольких операторов. Для управления транзакциями существуют специальные команды.

 

Синтаксис   Применение  
BEGIN { TRAN | TRANSACTION } [имя_транзакции | переменная] Определение начала транзакции. Имя транзакции может храниться в переменной.
COMMIT { TRAN | TRANSACTION } [имя_транзакции | переменная] Отметка об успешном завершении транзакции, изменение данных становится постоянным.
COMMIT WORK Завершение транзакции. Работает аналогично COMMIT TRAN, но без имени транзакции.  
ROLLBACK { TRAN | TRANSACTION } [имя_транзакции | имя_точки_сохранения | переменная] Откат изменений до начала транзакции или до точки сохранения. Команда освобождает ресурсы, занятые транзакцией.
ROLLBACK [ WORK ] Работает аналогично ROLLBACK TRAN, но без имени транзакции.
SAVE { TRAN | TRANSACTION } { имя_точки_сохранения | переменная } Установка точки сохранения внутри транзакции, к которой может выполняться откат. Точка сохранения определяет место, к которому может возвратиться транзакция, если часть транзакции условно отменена.

 

Если во время транзакции происходят ошибки, выполняется команда ROLLBACK TRAN.

При многопользовательском доступе всегда есть возможность параллельного доступа, т.е. одновременного обращения нескольких пользователей к одним и тем же данным. Из-за этого могут возникать проблемы.


Дата добавления: 2018-06-27; просмотров: 276; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!