Вопрос по transactions, database – Как принять решение об использовании транзакций базы данных

8

Как вы, ребята, решили, что вы должны обернуть SQL в транзакции?

Пожалуйста, пролите немного света на это.

Ура !!

@ Ланс Робертс, откуда появился tsql? это может относиться к любой базе данных. ОП никогда не говорил, SQL Server. KM.

Ваш Ответ

6   ответов
1

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

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

Ebay не использует их вообще. Я уверен, что есть много других.

http://www.infoq.com/interviews/dan-pritchett-ebay-architecture

Мне всегда было интересно увидеть подходы о том, как заменить транзакции другими методами.
5

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

Таким образом, если первый успешный, но любой из следующих имеет ошибку, вы можете откатить (отменить) все, как будто ничего не было сделано.

11

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

Например, если у вас есть вставка, за которой следует обновление, что произойдет, если вставка прошла успешно, а обновление не удалось? Если это приведет к неполным данным (в данном случае к потерянной записи), вам нужно обернуть два оператора в транзакции, чтобы они завершились как & quot; set & quot ;.

& quot; использоваться, когда вам нужно обработать набор изменений & quot; Я думаю, что второй «нуждается» не нужно
8

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

0

Всякий раз, когда любая операция подпадает под ACID (Atomicity,Consistency,Isolation,Durability) критерии вы должны использовать транзакции

Прочитай этостатья

5

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

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