Программирование >>  Реализация баз данных 

1 ... 152 153 154 [ 155 ] 156 157 158 ... 162


заполнения с 0 на другое значение, на существующие индексы это не повлияет, но все новые индексы, создаваемые без будут новые параметры

заполнения.

5. Как поддерживать фнимен г заполнения дл ствуюшпч индексов? Коэффициент заполнения устанавливается при создании индекса, и в этот момент индекс заполняется. Например, если вы создаете индекс с коэффициентом заполнения 70%, оставшиеся индекса свободны для внесения новых записей. При добавлении новых за-

страницы разрастаются, и свободного места в них остается меньше В результате индексные страницы делятся, чтобы вместить дополнительные записи. Чтобы избежать или снизить частоту деления страниц, нужно заново laTb индекс с начальным коэффициентом заполнения посредством CREATE INDEX с указанием DKOfEXI-ST1NG и HEEFACTOR. Можно также использовать DBCC DBREINDEX для перестройки индекса,

6. Какого индекс повысит эффективность исполнения следующего запроса: SELECT productname FROM огойисг, WHERE productnarae EIKE %tool

Query Optimizer должен выбрать индекс, содержащий клю tNamc, но использование этого индекса незначительно увеличит скорость выполнения такого запроса. Здесь может помочь полнотекстовый индекс на столбце ProductName. Таблица Products, с!у ;..() жащая ключ ProductName должна иметь как минимум один уникальный индекс. Простейший способ гарантировать наличие яьно: индекса chhii. к столбцу (или столбцам) этой таблицы ограничение pRiMARY KEY.

7. Создав следующий составной индекс:

CREATE lOUE CLUSTERED INDEX indexOI

ON einpioyeesfsocialseGuritynurnber, lastname)

ли IndexOI идеальным индексом для следующего запроса:

SELECT rltypuffiber, lastname

IFROM employees

WHERE lastname - kavianr

свой ответ.

Нет, не является. Ключ индекса начинается с номера социального страхования и затем содержим Ш1лиH). а в запросе осуществляется поиск по столбцу фамилии. Этот запрос покрывается индексом, но оптимальным покрывающим индексом для этого запроса будет индекс, содержащий столбец в качестве первой части индексного ключа.

8. Почему создавать широкие ключи кластерных

Кластерные дискового пространства, поскольку состо-

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

широкие кластерные индексы приводят к созданию больших некластерных

индексов.

9. Разработке какого типа индексов следует уделять наибольшее внимание: кластерных

или некластерных? Поясните свой ответ.

Разработке кластерного индекса нужно уделять больше внимания, поскольку таблица сортируется по ключу кластерного индекса, и для таблицы или представления можно создать лишь один кластерный индекс. Кластерный индекс обычно проектируют с расчетом оптимизамнм. наиболее распространенных запросов и эффективности выборки диапазонов строк. Порядок сортировки кластерного индекса должен соответствовать наи-более часто применяемомупорядкусортировки,указываемомупользователем.Когдакон-



ORDER BY SELECT соответствует порядку сортировки кластерного

оптимизатор обходится без выполнения операции

10. В таблице создав нек.1астерный индекс. Что является его зак-тадкой? Если в таблице нет кластерного индекса, закладкой иекластерного индекса является R1D. Он представляет собой указатель на строку таблицы в куче и состоит из страни-

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

Ключ индекса отсортирован по если явно не задан порядок сортировки по

убыванию посредством ключевого слова DESC.

12. Нужно создать некластерный индекс на представлении в SQL Server 2000 Enterprise Edition, но при попытке сделать это возврашается сообшенис об ошибке с \твержде-нием, что невозможно некластерный индекс на представлении. Какова наибо-

лее вероятная причина этого сообщения?

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

Глава 12

Закрепление материала

1. Какие три поддерживают журналы транзакций? Они поддерживает следующие вида операций:

восстановление отдельнгх транзакций;

восстановление всех незавершенных транзакций при запуске SQL Server;

восстановление БД путеора всерованных до момента мрии действий.

2. Какие события регистрируются журнале транзакций?

В журнале транзакций регистрируются события:

начало и конец каждой транзакции;

каждая модификация (добавление, обновление, удаление) данных;

выделение и освобождение каждого экстента;

создание и удаление таблицы или индекса.

3. Когда в журнале транзакций создаются контрольные точки? Контрольные точки генерируются

исполнении оператора CHECKPOINT;

изменении параметров БД ором ALTER DATABASE;

остановке экземпляра SQL Server в результате исполнение Ttjpa SHUTDOWN или остановке экземпляра механизма БД, работающего как сервис, с SQL Server Service Control Manager;

исполнении автоматических точек, периодически генерируемых экземп-

ляром SQL Server в каждой БД для уменьшение тени ее восстановлеинн.

4. Когда происходит усечение журнала?

Усечение журнала выполняется завершении каждого оператора BACKUP LOG, а также во время обработки каждой контрольной точки, есл зуетен простая модель восстановления БД.



5. Что такое транзакция?

Транзакция - эт мость операций, выполняемая как целостная логическая единица работы. Четыре свойства логической единицы работы позволяют отнести ее к транзакциям. Эти свойства (атомарность, согласованность, изо.-1>т1!ия и устойчивость) называются АСШ-свойсгвами (от англ. atomicity, consistency, isolation, durabiUty).

6. Какие три типа транзакций поддерживает SQL Server, в чем их различия?

SQL Server поддерживает три типа транзакций: явные, с автоматической фиксацией и

неявные. Явная транзакция - это транзакция, начало и коне торои определены явно. Режим автоматической фиксации транзакций является режимом управления транзакциями SQL Server умолчанию. В этом режиме каждый завершенный оператор Transact-SQL либо фиксируется, любо откатывается. Если соединение работает в режиме неявных Т1Лнзакиий, то после фиксации или отката текущей транзакции SQL Server автоматически гнает новую транзакцию. В этом режиме не нужно заботиться об определении границ транзакций - только о фиксации или откате. В режиме неявных транзакций транзакции генерируются непрерывно друг за другом, образуя цепочку транзакций.

7. Какой оператор применяется для указания точки запуска явной транзак-

UIIII -

BEGIN TRANSACTION

8. Какие фазы включает управление процессом подтверждения распределенной транзак-

111 I:

Подготовительная и фаза фиксации.

9. Чем отличаются потерянные обновления и зависимость от незафиксированных данных?

Потерянные появляются при выборе одной строки двумя или более транзакци-

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

10. В чем разница между оптимистическим и пессимистическим управлением параллельным выполнением?

оптимистическом управлении параллельным выполнением что

ликты из-за ресурсов между несколькими пользователями маловероятны (но возможны). Допускается выполнение явных транзакций без i.токнровання каких-либо ресурсов. Проверка ресурсов на предмет конфликтов выполняется только при попытке изменения данных. возникает приложение должно заново прочесть данные и повторить попытку модификации. Пессимистическое управление параллельным выполнением блокирует ресурсы, затребованные транзакцией, чтобы обеспечить ее устойчивость. Таким образом нруется успешное завершение ицим, если кнег взаимоблокировки.

Какие изоляции поддерживает SQL Server?

Поддерживаются следующие уровни изоляции:

неподтверждаемое чтение - самый низкий уровень, на котором изоляция транзакций гарантирует лиш адиту от чтение ически поврежденных данных;

подтверждаемое чтение - этот уровень задан в SQL Server по умолчанию;

повторяемое чтение;

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



1 ... 152 153 154 [ 155 ] 156 157 158 ... 162

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика