Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_Otveti_po_liksiam.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
346 Кб
Скачать
☆

Вторичный индекс property

Производительность запросов, извлекающих одно или несколько значений из отдельных экземпляров XML, может повыситься при использовании индекса PROPERTY. Это происходит при извлечении свойств объекта методом value() типа данных xml, когда для объекта известно значение первичного ключа.

Индекс PROPERTY строится по столбцам (PK, Path и значении узла) первичного XML-индекса, где PK — это первичный ключ базовой таблицы.

Например, для модели продукта 19 следующий запрос извлекает значения атрибутов ProductModelID и ProductModelName при помощи метода value(). Если вместо первичного или вторичных XML-индексов использовать индекс PROPERTY, это может повысить скорость выполнения запросов.

WITH XMLNAMESPACES ('http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription' AS "PD")

SELECT CatalogDescription.value('(/PD:ProductDescription/@ProductModelID)[1]', 'int') as ModelID,

CatalogDescription.value('(/PD:ProductDescription/@ProductModelName)[1]', 'varchar(30)') as ModelName

FROM Production.ProductModel

WHERE ProductModelID = 19

За исключением отличий, описанных ниже в этом подразделе, создание XML-индекса для столбца типа xml аналогично созданию индекса для столбца типа данных, отличного от xml. Для создания XML-индексов и управления ими могут использоваться следующие DDL-инструкции Transact-SQL:

  • CREATE INDEX (Transact-SQL)

  • ALTER INDEX (Transact-SQL)

  • DROP INDEX (Transact-SQL)

  1. Управление транзакциями в sql Server Инструкции транзакций (Transact-sql)

SQL Server 2012

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

SQL Server работает в следующих режимах транзакций.

Автоматическое принятие транзакций

Каждая отдельная инструкция является транзакцией.

Явные транзакции

Каждая транзакция явно начинается с инструкции BEGIN TRANSACTION и явно заканчивается инструкцией COMMIT или ROLLBACK.

Неявные транзакции

Новая транзакция неявно начинается, когда предыдущая транзакция завершена, но каждая транзакция явно завершается инструкцией COMMIT или ROLLBACK.

Транзакции контекста пакета

Будучи применимой только к множественным активным результирующим наборам (MARS), явная или неявная транзакция Transact-SQL, которая запускается в сеансе MARS, становится транзакцией контекста пакета. SQL Server автоматически выполняет откат транзакции контекста пакета, если эта транзакция не зафиксирована или выполнен ее откат при завершении пакета.

В этом разделе

SQL Server предоставляет следующие инструкции транзакций.

BEGIN DISTRIBUTED TRANSACTION

ROLLBACK TRANSACTION

BEGIN TRANSACTION

ROLLBACK WORK

COMMIT TRANSACTION

SAVE TRANSACTION

COMMIT WORK

BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)

SQL Server 2012

Запускает распределенную транзакцию на языке Transact-SQL, управляемую координатором распределенных транзакций (Майкрософт) (MS DTC).

 Синтаксические обозначения в Transact-SQL

Синтаксис

BEGIN DISTRIBUTED { TRAN | TRANSACTION }

     [ transaction_name | @tran_name_variable ]

[ ; ]

Аргументы

transaction_name

Имя определяемой пользователем транзакции, используемое для отслеживания распределенной транзакции в программах MS DTC. Аргументtransaction_name должен соответствовать правилам для идентификаторов и быть <= 32 символам по длине.

@tran_name_variable

Имя пользовательской переменной, содержащей имя транзакции, которая используется для отслеживания распределенной транзакции в служебных программах координатора MS DTC. Переменная должна иметь тип данных char, varchar, nchar или nvarchar.

ROLLBACK TRANSACTION (Transact-SQL)

SQL Server 2012

Откатывает явные или неявные транзакции до начала или до точки сохранения транзакции. ROLLBACK TRANSACTION можно использовать для отмены всех изменений данных, произведенных с начала транзакции или до точки сохранения. Она также освобождает ресурсы, используемые транзакцией.

 Синтаксические обозначения в Transact-SQL

Синтаксис

ROLLBACK { TRAN | TRANSACTION }

     [ transaction_name | @tran_name_variable

     | savepoint_name | @savepoint_variable ]

[ ; ]

Аргументы

transaction_name

Имя, присвоенное транзакции в BEGIN TRANSACTION. Имя transaction_name должно соответствовать правилам для идентификаторов, однако используются только первые 32 символа имени транзакции. При вложении транзакций аргумент transaction_name должен быть именем транзакции из самой внешней инструкции BEGIN TRANSACTION.

@ tran_name_variable

Имя пользовательской переменной, содержащей допустимое имя транзакции. Эта переменная должна иметь тип данных char, varchar, nchar или nvarchar.

savepoint_name

savepoint_name из инструкции SAVE TRANSACTION. Имя savepoint_name должно соответствовать правилам для идентификаторов. Используйте аргументsavepoint_name, если откат по условию должен влиять только на часть транзакции.

@ savepoint_variable

Имя пользовательской переменной, содержащей допустимое имя точки сохранения. Эта переменная должна иметь тип данных char, varchar, nchar илиnvarchar.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]