|
|
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
2 hvlad Они позволяют откатывать часть тр-ции. Как и нормальные сейвпойнты. Каким образом оно откатит "часть", позвольте полюбопытствовать? Русским по белому же сказано: It is not legal for the transaction_name parameter of a ROLLBACK TRANSACTION statement to refer to the inner transactions of a set of named nested transactions. transaction_name can refer only to the transaction name of the outermost transaction. ------------- 2 Gluk (Kazan) Я тоже в курсе Ваших заблуждений, так что продолжайте упорствовать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 14:45 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Пьяный ЛохРусским по белому же сказано: [quot ]It is not legal for the transaction_name parameter of a ROLLBACK TRANSACTION statement to refer to the inner transactions of a set of named nested transactions. transaction_name can refer only to the transaction name of the outermost transaction. Более того: Naming multiple transactions in a series of nested transactions with a transaction name has little effect on the transaction. Only the first (outermost) transaction name is registered with the system . A rollback to any other name (other than a valid savepoint name) generates an error. None of the statements executed before the rollback is, in fact, rolled back at the time this error occurs. The statements are rolled back only when the outer transaction is rolled back. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 15:06 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)2 teras Что есть домен блокировок ? В MS SQL 2000 вложенный Begin Transaction не более чем синтаксический сахарПожалуй, я неудачно выразился. Имеется в виду владелец блокировок. Каждая транзакция удерживает набор блокировок. В случае с savepoint - все блокировки получаются от имени одной транзакции. В случае с nested transaction - вложенная транзакция наследует все блокировки родителя, но новые блокировки получаются уже вложенной транзакцией. Причем две транзакции, даже вложенные в одну и ту же объемлющую, конкурируют между собой. Насчет MS SQL не знаю - не пользую. Судя по MSDN, это просто счетчик, позволяющий не заботится о необходимости расстановки begin trans/commit trans в процедурах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 15:52 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
teras Gluk (Kazan)2 teras Что есть домен блокировок ? В MS SQL 2000 вложенный Begin Transaction не более чем синтаксический сахарПожалуй, я неудачно выразился. Имеется в виду владелец блокировок. Каждая транзакция удерживает набор блокировок. В случае с savepoint - все блокировки получаются от имени одной транзакции. В случае с nested transaction - вложенная транзакция наследует все блокировки родителя, но новые блокировки получаются уже вложенной транзакцией. Причем две транзакции, даже вложенные в одну и ту же объемлющую, конкурируют между собой. Насчет MS SQL не знаю - не пользую. Судя по MSDN, это просто счетчик, позволяющий не заботится о необходимости расстановки begin trans/commit trans в процедурах. Это абстрактные рассуждения или вы где то (не в MS SQL) ИСПОЛЬЗУЕТЕ вложенные транзакции ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 15:59 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
2 teras В случае с nested transaction - вложенная транзакция наследует все блокировки родителя, но новые блокировки получаются уже вложенной транзакцией. Это зачем? Для всего остального мира эти две транзакции неотличимы (собственно, они обязаны выглядеть как одна, внешняя), а внутри - родительской транзакции нет смысла конкурировать с дочерней, равно как и наоборот, ибо ни к чему хорошему такая конкуренция не приведет, за исключением возможности дэдлока транзакции со своими собственными внутренностями. Причем две транзакции, даже вложенные в одну и ту же объемлющую, конкурируют между собой. А это вообще как? Если две транзакции вложены в третью, но не вложены друг в друга - то они исполняются последовательно. К тому моменту, как начинается вторая - первая уже завершена, и какие-либо специфические блокировки (отличные от "родительских") все сняты, даже если они были. Как транзакции могут между собой конкурировать, если они по времени не пересекаются? Насчет MS SQL не знаю - не пользую. А что пользуете? Т.е. присоединяюсь к вопросу - это абстрактные рассуждения или нет? Судя по MSDN, это просто счетчик, позволяющий не заботится о необходимости расстановки begin trans/commit trans в процедурах. Совсем гениально. Вложенные begin trans/commit trans - позволяют не заботиться о расстановке begin trans/commit trans? Хлопаю одной ладонью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 16:49 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev пишет: > сохранения (savepoint) это: > 1) одно и то же, но названное по разному; > 2) или существуют принципиальные факты различий в их поведении. Почти одно и тоже. Разница только в том, что во вложенных транзакциях нельзя откатить транзакцию частично, а при наличии savepoint - можно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 16:50 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
hvlad пишет: > Транзакция или вся выполняется, или вся не выполняется. Всё остальное - > не транзакция Это классическая ACID-транзакция. Мы вроде бы говорим о двух ее расширениях. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 16:53 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
teras пишет: > заключается в том, что вложенные транзакции позволяют образуют > независимый собственный домен блокировок, в то время, как точки В определении моделей транзакций про блокировки ничего нет, потому как это уже реализация, а не модель. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 16:56 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
MasterZivРазница только в том, что во вложенных транзакциях нельзя откатить транзакцию частично Давайте называть кошку кошкой. Транзакцию вообще нельзя откатить частично. Если какие-то изменения были - то они были все. Вложенные транзакции (в нормальном, а не майкрософтовском понимании этого слова) затем и нужны, чтобы оформленной во вложенную транзакцию единицы работы - не было (при откате). То, что эту функциональность урезали и обозвали словом "сейвпоинт", а вложенной транзакцией обозвали какую-то белиберду, которую даже откатить нельзя - это п....ц какая заслуга майкрософта. Но не стоит за ними эту фигню повторять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:03 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
MasterZivво вложенных транзакциях нельзя откатить транзакцию частично, а при наличии savepoint - можно Игра слов. И в том и в другом случае - можно откатить конкретный кусок изменений. Если использовать несуществующие-в-природе вложенные транзакции, то они позволяют откатить кусок изменений корневой транзакции, равный объему изменений вложенной транзакции. Т.е. с точки зрения корневой транзакции - точка сохранения и вложенная транзакция одна хрень, когда идет разговор об откате изменений. Играя в эти слова сложно найти отличия, разве что вложенная транзакция, теоретически, может усилить уровень изолированности ... Но их нет в природе ... А потому апельсин может быть соленым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:11 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Если использовать несуществующие-в-природе вложенные транзакции Я категорически протестую против использования слов "несуществующие в природе" :) Существующие, еще как существующие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:16 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievИграя в эти слова сложно найти отличия, разве что вложенная транзакция, теоретически, может усилить уровень изолированности ... Я уже назвал еще одно отличие. Вложенная транзакция - она в первую очередь транзакция, а уж потом вложенная. Т.к. она транзакция - она может быть использована как самостоятельная единица. Сама, **я, без ансамбля. Завернули транзакцию в процедуру, вызвали её - получили нормальную, вполне обычную транзакцию. Вызвали эту же процедуру внутри другой транзакции - нормальная транзакция превратилась во вложенную. А вот сейвпоинт - сам по себе использован быть не может. Он "чисто внутренний". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:20 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Пьяный Лох Dmitry ArefievИграя в эти слова сложно найти отличия, разве что вложенная транзакция, теоретически, может усилить уровень изолированности ... Я уже назвал еще одно отличие. Вложенная транзакция - она в первую очередь транзакция, а уж потом вложенная. Т.к. она транзакция - она может быть использована как самостоятельная единица. Сама, **я, без ансамбля. Завернули транзакцию в процедуру, вызвали её - получили нормальную, вполне обычную транзакцию. Вызвали эту же процедуру внутри другой транзакции - нормальная транзакция превратилась во вложенную. А вот сейвпоинт - сам по себе использован быть не может. Он "чисто внутренний". То чего хотите есть у нас. Только называется по другому - автономная транзакция. Удобный способ получения deadlock-а в рамках одной сессии P.S. До завтра ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:25 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)То чего хотите есть у нас. Только называется по другому - автономная транзакция. Это разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:28 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievВозник спор - вложенные транзакции (nested transaction) и точки сохранения (savepoint) это: 1) одно и то же, но названное по разному; 2) или существуют принципиальные факты различий в их поведении. Я бы сказал, это похожие вещи с важным синтаксическим отличием, обуславливающим и отличие в поведении. Для начала стоит определиться с тем, что есть вложенная транзакция. Для этого, с моей точки зрения, есть простой и удачный пример. Допустим, у нас есть классическая бизнес-функция перекладывания некоторой суммы со счета А на счет Б. Как мы понимаем, это транзакция, состоящая, условно, из start transaction [может быть неявного], пары update-ов и commit-а. Теперь: предположим, мы хотим реализовать бизнес-функцию "оплаты с комиссией", суть которой в том, что со счета А идет некая сумма на счет Б и 1% от этой суммы на счет В. Опять же мы понимаем, что это транзакция, и в то же время понимаем, что по сути это два вызова уже реализованной подпрограммы - вот мы и дошли до транзакции, состоящей из двух вложенных транзакций. Итого: при соответствующем синтаксисе вложенных транзакций мы можем взять любую операцию, являющуюся "обычной транзакцией" и использовать ее как вложенную, то есть как часть другой транзакции. С сейвпоинтами мы такого не можем, поскольку синтаксис у них заведомо другой. Это, с моей точки зрения, есть основное отличие. Конечно, в конкретной реализации "вложенным транзакциям" могут дать другой, несовместимый синтаксис, но это будет довольно странно, имхо. Можно, наверное, накопать и еще мелочей. Скажем, скрипт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. поведет себя не совсем так, как я ожидал бы от вложенных транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:39 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Пьяный ЛохЭто разные вещи. Совершенно разные. А то, что вы мне предлагаете попробовать сделать при помощи "самостоятельной единицы" транзакции, так это уже не вложенная транзакция ... Дискусии - большое спасибо, все прояснил для себя ! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:40 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievА то, что вы мне предлагаете попробовать сделать при помощи "самостоятельной единицы" транзакции, так это уже не вложенная транзакция ... Вы про что? Что именно я предлагаю попробовать сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 18:21 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
softwarerпоскольку синтаксис у них заведомо другой. Это, с моей точки зрения, есть основное отличие. Ну я думаю, семантическим и дополнительным практическим отличием вложенных транзакций от точек сохранения может быть то, что вложенные транзакции могут усилить уровень изоляции. В остальном, хоть убейте, но логической разницы не вижу. Лишь - разные термины, разный синтаксис ... Вам как дельфийцу, может быть интересна отправная точка обсуждения :) Два варианта: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. и другой ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Второй вариант предполагает наличие самостоятельных, вложенных транзакций. И тут возникает элементарная ситуация. Вот код в точке B берет и делает oTX.Commit/Rollback - т.е. завершает корневую транзакцию. Тогда все oTXi становятся инвалидными. И обращение к ним ведет к exception, а без них логика в полный рост не работает ... Собственно я за схему (1). Коли имеется природа стека, то пусть такой и объектная модель и поведение будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 19:46 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefievможет быть то, что вложенные транзакции могут усилить уровень изоляции. Вот это как раз очень спорный момент. Насколько я знаю, в некоторых серверах существует возможность менять уровень изоляции внутри транзации, но с моей точки зрения это - нонсенс. Вызвано это, насколько я понимаю, сугубо прикладными причинами (желанием прочитать в dirty read нечто, оставив остальной транзакции возможность работать в нормальном режиме) и желательно придумать более культурные пути решения тех же проблем. Ну а вложенная транзакция - как ни крути, "внутри", так что тоже получается некий нонсенс. Вообще, вопрос изоляции в серверах, с моей точки зрения, недостаточно проработан. В частности, с моей точки зрения, для ХП необходим некий constraint типа "на каком уровне изоляции она может использоваться" - поскольку очевидно, что вызов на неподходящем уровне может привести к большим неприятностям. Dmitry ArefievВ остальном, хоть убейте, но логической разницы не вижу. Лишь - разные термины, разный синтаксис ... "На определенном уровне абстракции" разницы действительно нет. Но этот уровень, имхо, выше оптимального для разработчика. Это технически разные механизмы со своими особенностями. Скажем, простой пример: если я из формы А вызываю форму Б, форма Б может обеспечивать возможность "частичного отката" как тем, так и другим механизмом. Однако, механизм вложенных транзакций подразумевает, что при нажатии OK форма Б закрывается, а с сейвпоинтами я могу сделать нечто вроде Apply (сохранить и продолжить редактирование). Пример конечно условный, но показывает "практическую разницу". Dmitry ArefievВам как дельфийцу, может быть интересна отправная точка обсуждения ..... Собственно я за схему (1). Коли имеется природа стека, то пусть такой и объектная модель и поведение будут. Мне как дельфийцу ни один из этих вариантов особо не нравится. В первую очередь, серверные концепции и доступ к ним из API - несколько разные вещи. Далее, мне как дельфийцу нужно следующее: 1. Возможность писать код в парадигме используемого сервера, не думая о специфике API. Если я коннекчусь к Oracle - я хочу иметь возможность написать start transaction / savepoint / savepoint / rollback to savepoint / savepoint / commit так, чтобы это выполнилось в точности так же, как непосредственная отправка таких команд на сервер. 2. Аккуратные, подчеркнуто отделенные обобщающие парадигмы API, которые я могу использовать по своему желанию и которые имеют инкапсулирванно разную реализацию для разных серверов. При этом они должны быть очень тщательно продуманы на отсутствие конфликтов с предыдущим пунктом. Ну а имеющаяся природа стека далеко не так проста и однозначна. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. Как видите, тут как бы это выразиться, не совсем стек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 20:27 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
2 softwarer Вызвано это, насколько я понимаю, сугубо прикладными причинами (желанием прочитать в dirty read нечто, оставив остальной транзакции возможность работать в нормальном режиме) А почему Вы не рассмотрели обратную ситуацию - когда хочется "вложенную" часть выполнить на более высоком уровне изоляции? Тогда и "нонсенс внутри" не совсем нонсенс, и озвученная проблема "на каком уровне изоляции ХП может исполняться" не совсем проблема - ХП просто себе выставит нужный ей уровень, отработает, и преспокойно закоммитится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 20:41 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Это абстрактные рассуждения или вы где то (не в MS SQL) ИСПОЛЬЗУЕТЕ вложенные транзакции ?И то и другое. Собственно, вопрос ведь вначале прозвучал абстрактно, так и отвечал. Сама модель - следствие чтения описаний алгоритмов, таких, как ARIES/NT и т.п. Что касается практики, то такой подход точно реализован в BDB, и, кроме, того встречался в документации на другие продукты. MasterZivВ определении моделей транзакций про блокировки ничего нет, потому как это уже реализация, а не модель. Интересно, на чьи определения вы ссылаетесь? И не могли бы привести соответствующее определение вложенной транзакции? Хотя, если вам не нравится упоминание блокировок, можно написать более общо: вложенная транзакция полностью соблюдает свойство изоляции, без исключений - ни одно изменение, выполненное вложенной транзакцией не видно до ее завершения ни в какой другой, включая и родительскую. Пьяный ЛохДля всего остального мира эти две транзакции неотличимы (собственно, они обязаны выглядеть как одна, внешняя), а внутри - родительской транзакции нет смысла конкурировать с дочерней, равно как и наоборот, ибо ни к чему хорошему такая конкуренция не приведет, за исключением возможности дэдлока транзакции со своими собственными внутренностями. Вот, что пишет по этому поводу wikipedia : Changes made by the nested transaction are not seen by the 'host' transaction until the nested transaction is committed. Или здесь : A parent transaction's actions are considered to conflict with its child's actions but not vice versa. Thus, it cannot access a resource if a child's lock prohibits the access. Thus, the child's lock wins. Вот например, одно большое отличие в блокировщике - отпускание разделяемых блокировок до завершения родительской транзакции. Пьяный ЛохЕсли две транзакции вложены в третью, но не вложены друг в друга - то они исполняются последовательно. К тому моменту, как начинается вторая - первая уже завершена, и какие-либо специфические блокировки (отличные от "родительских") все сняты, даже если они были. Как транзакции могут между собой конкурировать, если они по времени не пересекаются? Очень просто - не все СУБД используют неявное задание транзакции - это когда транзакция связана с потоком, соединением и приложение не может выбирать с какой транзакцией работать в данный момент. Некоторые дают возможность явно выбрать транзакцию при исполнении. Простейший пример - та же BDB. Пьяный Лох Совсем гениально. Вложенные begin trans/commit trans - позволяют не заботиться о расстановке begin trans/commit trans? Знаете, я как-то администрировал достаточно крупное приложение на oracle 7.3. Один из основных лозунгов у них был: "пишем всё на PL/SQL". Так вот - в нем каждая процедура была представлена в двух ипостасях - some_proc и some_proc_nc. Где some_proc, очевидно, вызывала some_proc_nc и commit. А некотрые процедуры еще и принимали специальный флаг, в зависимости от которого вызывали some_proc или some_proc_nc (и commit по необходимости). Не хочу обсуждать, насколько такой подход был оправданным (по меньшей мере он был систематичным), но при наличии такого счетчика, можно было бы сделать тоже самое, но проще - по крайней мере исчезла бы необходимость иметь коммитящую версию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 20:53 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Пьяный ЛохА почему Вы не рассмотрели обратную ситуацию - когда хочется "вложенную" часть выполнить на более высоком уровне изоляции? Еще раз. Для меня нонсенс - вообще желание менять уровни внутри одной транзакции, независимо от того, в какую сторону. Это приводит к идеологическому бардаку в и так не самой прозрачной картине многопользовательской работы. В частности, написанный Вами вариант означает среди прочего следующее: в одной и той же транзакции мы сначала читаем новые данные, потом повышаем уровень, делаем тот же селект - и читаем более старую версию тех же данных. Парадокс, однако. Пьяный Лохи озвученная проблема "на каком уровне изоляции ХП может исполняться" не совсем проблема - ХП просто себе выставит нужный ей уровень, отработает, и преспокойно закоммитится. Насколько я понимаю, вложенные транзакции в MSSQL в значительной степени аргументируются именно этой возможностью. Однако, это всего лишь заметание мусора под кровать. Вместо "бардака внутри ХП" будет "бардак в вызывающем коде", разницы не особо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 21:07 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
softwarer Я тут погуляв с собакой, увидел проблемы и в своих и в ваших рассуждениях. Короче, буду думать - что-то все не слишком однозначно с API. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 21:33 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievКороче, буду думать - что-то все не слишком однозначно с API. Я бы предложил еще и обсудить в форуме дельфы или возможно в личной переписке с избранными :) Это действительно непростой вопрос, подойти к которому стоит очень аккуратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 21:56 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
teras вложенная транзакция полностью соблюдает свойство изоляции, без исключений - ни одно изменение, выполненное вложенной транзакцией не видно до ее завершения ни в какой другой, включая и родительскую. Это как это? Как может родительская транзакция смотреть на вложенную в неё? Т.е. мы имеем такую последовательность - Родительская транзакция - Некие действия 1 - - Вложенная транзакция - - Некие действия 2 - - Конец вложенной транзакции - Некие действия 3 - Конец родительской транзакции В каком месте тут родительская транзакция может смотреть на вложенную? Может Вы путаете с автономными транзакциями? terasОчень просто - не все СУБД используют неявное задание транзакции - это когда транзакция связана с потоком, соединением и приложение не может выбирать с какой транзакцией работать в данный момент. Некоторые дают возможность явно выбрать транзакцию при исполнении. Т.е. в одном транзакции может паралельно работать несколько потоков? Тогда это не будет транзакцией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 23:51 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=34832059&tid=1553230]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 368ms |

| 0 / 0 |
