Вложенные транзакции в SQL-сервере

Считается, что export * from может нанести ущерб возможностям сотрясения дерева веб-пакета, обманывая его, полагая, что экспорт используется, когда он фактически просто реэкспортируется.

Нет, объявления импорта / экспорта ничего не делают, но устанавливают псевдоним экспортируемой переменной, они не считаются «использованием». Учитывая их семантику, они специально отслеживаются любым компоновщиком и не будут отрицательно влиять на тряску деревьев.

Даже правильно сделанный переименованный псевдоним не нарушит:

export { X as Y } from '…';

import { X as Y } from '…';
export { Y }

import { X } from '…';
export { X as Y }

, но использование в выражении будет считаться использованием и прервать (несложную) оптимизацию:

import { X } from '…';
export const Y = X; // avoid!

Итак, мой вопрос, есть ли факты, подтверждающие или опровергающие это?

Вы можете просто попробовать и посмотреть, как это работает.

5
задан GEOCHET 15 May 2009 в 17:01
поделиться

2 ответа

Из документации MSDN на SQL Server. Вложенные транзакции :

Выполнение внутренних транзакций игнорируется базой данных SQL Server Двигатель. Сделка либо зафиксировано или откатано на основе действия, предпринятые в конце внешняя транзакция. Если внешний транзакция совершена, внутренний вложенные транзакции также совершено. Если внешняя транзакция откатился, потом все внутреннее транзакции также откатываются, независимо от того, есть ли внутренний транзакции проводились индивидуально совершено.

13
ответ дан 18 December 2019 в 09:52
поделиться

Чтобы уточнить это и прямо ответить на вопрос, да, SQL Server допускает вложение транзакций.

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

4
ответ дан 18 December 2019 в 09:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: