SQL Server позволяет нескольким клиентам использовать одну и ту же
базу данных одновременно. Таким образом, он должен контролировать
одновременный доступ к совместно используемым данным, чтобы обеспечить
целостность данных - когда несколько клиентов обновляют одни и те же
данные или клиенты пытаются прочитать данные, которые находятся в
процессе изменения другим клиентом. SQL Server обеспечивает два режима
управления параллелизмом: пессимистический параллелизм и оптимистичный
параллелизм. Когда используется пессимистический контроль параллелизма,
SQL Server контролирует параллельный доступ с помощью блокировок.
Блокировки могут быть как общими, так и эксклюзивными. Эксклюзивная
блокировка предоставляет пользователю эксклюзивный доступ к данным -
никакой другой пользователь не может получить доступ к данным, пока
блокировка удерживается. Общие блокировки используются, когда некоторые
данные читаются - несколько пользователей могут читать данные,
заблокированные общей блокировкой, но не могут получить эксклюзивную
блокировку. Последним придется ждать освобождения всех общих
блокировок.
Основной режим извлечения данных из базы данных SQL Server — это
запрос. Запрос выражается с использованием варианта SQL, называемого T-
SQL, диалект Microsoft SQL Server делит с Sybase SQL Server. Запрос
декларативно указывает, что должно быть получено. Он обрабатывается
обработчиком запросов, который определяет последовательность шагов,
которые будут необходимы для получения запрошенных данных.
Последовательность действий, необходимых для выполнения запроса,
называется планом запроса. Может быть несколько способов обработать один
и тот же запрос. Например, для запроса, который содержит оператор
соединения и оператор выбора, совершается выполнение объединения для
обеих таблиц, выполнение выбора для результатов даст тот же результат, что
и выбор из каждой таблицы. В таком случае SQL Server выбирает план,
который, как ожидается, даст результаты в кратчайшие сроки. Это