powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / понятие транзакции. просьба разъяснить.
25 сообщений из 74, страница 2 из 3
понятие транзакции. просьба разъяснить.
    #39679623
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

дайте название книги где это всё нормально расписано. а то не знаю в какой почитать.
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679651
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81у меня книга одна , она вообще дебильная . по их определению и "select * from table" это тоже является транзакциейВидимо для вас MSSQL будет "дебильным" сервером, ибо в нем любая инструкция, затрагивающая данные, выполняется в транзакции.
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679654
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmandron81у меня книга одна , она вообще дебильная . по их определению и "select * from table" это тоже является транзакциейВидимо для вас MSSQL будет "дебильным" сервером, ибо в нем любая инструкция, затрагивающая данные, выполняется в транзакции.

то есть по вашему "select" затрагивает данные ?
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679658
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81invmпропущено...
Видимо для вас MSSQL будет "дебильным" сервером, ибо в нем любая инструкция, затрагивающая данные, выполняется в транзакции.

то есть по вашему "select" затрагивает данные ?
да
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679662
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

я всегда считал, что select делает выборку, читает данные.
Тогда для пущей каши расскажите что будет результатом отката "select" ???
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679667
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123alexeyvgНаверное, не надо обобщённо утверждать, что если нет стейтмента BEGIN TRANSACTION, то три инсёрта будут тремя разными транзакциями
а я где-то такое утверждаю?Да, вот тут:
Yasha123я утверждаю, что написанный вами код, это 3 транзакции.
Ибо если включён SET IMPLICIT_TRANSACTIONS ON, то после первого инсёрта начнётся общая транзакция, в которой будет выполняться в том числе и третий инсёрт.
И вот тут не прокатывает "а если это лишь кусок кода, то уж простите, ваши проблемы", потому что это не кусок кода, а весь код, а статус IMPLICIT_TRANSACTIONS ON - это не код, а установка коннекта; возможно, все коннекты в системе имеют такую установку.

И более того, корректно будет считать это "полным кодом" при запуске такого батча из клиента, при том, что из клиента до этого выполнялись другие батчи,и, в частности, была начата транзакция.
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679671
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

я может быть туплю, но я считал, что транзакция это инструкция которая вносит правки в б.д.
select - выборки которые не делают ничего в б.д.
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679673
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81я всегда считал, что select делает выборку, читает данные.А читать это не затрагивать?
andron81Тогда для пущей каши расскажите что будет результатом отката "select" ???Чтобы избавиться от каши, начните с правильного определения транзакции. Например тут .
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679676
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Но в этом случае дойдя до конца, мы всё равно должны сделать откат. иначе нарушается условие атомарности.Я же вам говорю, условие атомарности не нарушится, потому что транзакция не декларативна.

Она не охватывает те операции, которые написаны программистом между begin и commit.

Те операции, которые были включены в транзакцию, можно подтвердить или откатить. А те, которые не были включены в транзакцию, не поменяли данные, и в транзакцию не включились, на неё не повлияли.

andron81Как известно транзакция задает последовательность инструкций языка Transact-SQL, применяемую для объединения в один пакет операций чтения и записи для того, чтобы система базы данных могла обеспечить согласованность данных. (откопипастил первое попавшееся определение)Из этого можно понять, что транзакция есть нечто декларативное, как указание, что эти стейтменты должны выполнится как единое целое.

Но это неправильное определение.

Вы лучше представьте, что это некое последовательность бакапов диска.
Вы сделали бакап, потом на диск пишете, читаете, какие то записи завершаются с ошибкой... Потом опять пишите...
А потом принимаете решение - сделать очередной бакап, или восстановить последний. Вот это есть подтвердить или откатить транзакцию.
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679679
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgYasha123пропущено...

а я где-то такое утверждаю?Да, вот тут:
Yasha123я утверждаю, что написанный вами код, это 3 транзакции.


и буду на этом настаивать.
ваш код НЕ содержит SET IMPLICIT_TRANSACTIONS ON.
а ведь вы его выполнили.
так что это все равно, что написать BEGIN TRY и не показать.

еще раз:
показанный вами код -- это 3(три) транзакции.
а все остальное лишь демагогия
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679683
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*** BEGIN TRY постом выше читать как BEGIN TRAN
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679687
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123и буду на этом настаивать.
ваш код НЕ содержит SET IMPLICIT_TRANSACTIONS ON.Да он вообще никаких SET не содержит, а они есть, потому что есть коннект, и при нём всегда есть SET-ы
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679688
KRS544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679689
KRS544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,
link
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679703
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgYasha123и буду на этом настаивать.
ваш код НЕ содержит SET IMPLICIT_TRANSACTIONS ON.Да он вообще никаких SET не содержит, а они есть, потому что есть коннект, и при нём всегда есть SET-ы
и эти сеты дефолтные.
а чтобы это изменить, уж простите, сет вы выполнили в явном виде
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679797
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmandron81я всегда считал, что select делает выборку, читает данные.А читать это не затрагивать?
andron81Тогда для пущей каши расскажите что будет результатом отката "select" ???Чтобы избавиться от каши, начните с правильного определения транзакции. Например тут .

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

Вот он пишет :
Те операции, которые были включены в транзакцию, можно подтвердить или откатить. А те, которые не были включены в транзакцию, не поменяли данные, и в транзакцию не включились, на неё не повлияли. Не хотите ему ссылку эту дать?

Вот и ответьте теперь на мой ранний вопрос , что будет результатом отката select ?
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679804
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81С чего вы взяли , что ваше определение по ссылке верное? А в вас встроен определятор верности определения транзакции? С чего вы вообще взяли, что обязательно есть какое-то одно правильное определение транзакции, а все остальные неверные?

И вообще, зачем вам это определение? Чтобы убедиться, что какая-та ваша книжка по какой-то там СУБД (если вообще по СУБД) -- г..но?

andron81Вот и ответьте теперь на мой ранний вопрос , что будет результатом отката select ?А что будет результатом отката delete ... where 1 = 0? Или delete это не всегда транзакция? А почему команда set transaction isolation level кардинальным образом влияет на поведение select?
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679807
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и чтобы закончить спор, давайте узнаем, как считают разработчики MSSQL:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if @@trancount > 0
    rollback

set implicit_transactions on

select top 0 * from sys.sysobjects

select @@trancount

-----------
1
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679820
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Не надо так уж умничать тут. С чего вы взяли , что ваше определение по ссылке верное?Ну умничает тут, имхо, кто-то другой, пытаясь без наличия необходимых знаний оценивать верность определний.
andron81Вот и ответьте теперь на мой ранний вопрос , что будет результатом отката select ?Попытайтесь чего-нибудь вылить из пустой кастрюли. Результат и будет ответом на ваш вопрос.
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679822
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

ну если я не прав, так не прав. почитайте как называется моя тема - я разбираюсь.
тем не менее это не логично ! интересно что ж в этом случае пишется в журнал транзакций ?
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679824
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Гавриленко Сергей Алексеевич,
интересно что ж в этом случае пишется в журнал транзакций ?Зачем что-то писать в журнал, когда туда писать не нужно?
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679827
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевичandron81Гавриленко Сергей Алексеевич,
интересно что ж в этом случае пишется в журнал транзакций ?Зачем что-то писать в журнал, когда туда писать не нужно?

ну вот и где тут логика ? поэтому любой селект этонедотранзакция, если его нельзя откатить и нечего писать в журнал .
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679833
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81ну если я не прав, так не прав. почитайте как называется моя тема - я разбираюсь.Вроде тема называется я разбираюсь, но вы яростно спорите с объяснениями, причём не находите какие то нестыковки в объясн5е6ниях, или не переспрашиваете непонятное, а отстаиваете своё понимание транзакций :-)

andron81тем не менее это не логично ! интересно что ж в этом случае пишется в журнал транзакций ?Да ничего не пишется.
Ещё раз - транзакция - это определённое состояние сервера/коннекта.
Вот, при SELECT сервер перешёл в это состояние, это где то отметилось в памяти, создался идентификатор транзакции, к нему привязались записи о блокировках (возможно - очень много записей, это тоже зависит от разного) и т.д.
andron81ну вот и где тут логика ? поэтому любой селект этонедотранзакция, если его нельзя откатить и нечего писать в журнал .Ну, можно назвать "недотранзакцией".
Но т.к. в документации сиквела разработчики не используют этот термин, а используют слово "транзакция", то мы это так и называем.
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679837
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81ну вот и где тут логика ? поэтому любой селект этонедотранзакция, если его нельзя откатить и нечего писать в журнал .Вы не поверите, но delete, который ничего не удалил, в журнал тоже ничего не запишет. Как вам такая логика?
...
Рейтинг: 0 / 0
понятие транзакции. просьба разъяснить.
    #39679839
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Не противоречит ли оно тому, что пишет парень про бэкапы и что включается в транзакцию.

Вот он пишет :
Те операции, которые были включены в транзакцию, можно подтвердить или откатить. А те, которые не были включены в транзакцию, не поменяли данные, и в транзакцию не включились, на неё не повлияли. Не хотите ему ссылку эту дать?Ну, я рассказывал про механизм транзакций в MSSQL.
Не буду спорить с теоретиками, по монографиям которых о теоретических транзакциях в ваакуме написали статью в энциклопедии, у менгя не хватит квалификации, да и желания нет.
Механизмы в других СУБД работают подобно механизмам MSSQL, так что для практического применения прислушайтесь к моим советам.
Но если вы должны сдать курсовик, или написать научную статью, то лучше изучать научные работы, а не механизмы MSSQL.
В общем, смотря какая цель.
...
Рейтинг: 0 / 0
25 сообщений из 74, страница 2 из 3
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / понятие транзакции. просьба разъяснить.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]