ورود

نسخه کامل مشاهده نسخه کامل : تراکنش به چه نحوی به داده ها دسترسی پیدا می کند؟



iranch
27-05-2015, 01:52
درود و سلام

2 تا تراکنش داریم. تراکنش 1 مقدار A را میخواند که 10 است. آن را در 5 ضرب کرده و میشود 50 اما دستور insert را انجام نداده تراکنش اول.
فرض می کنیم Lock نکردیم مقدار A رو.
الان این مقدار 50 در کجا ذخیره شده است؟ چون تا تراکنش commit نشود در دیتابیس ذخیره نمیشود و همان مقدار 10 را خواهیم داشت.
در بافر ی در رم؟
الان که هنوز تراکنش 1 insert نکرده ، تراکنش 2 بخواهد مقدار A را بخواند. مقدار 10 نصیب ش میشود یا 50 ؟
تراکنش 2 مقدار را بعید میدانم از دیتابیس بخواند و گرنه بازدهی اجرای همروند به شدت کم میشه ... پس باید از بافر م بخواند. ...

Payman_62
29-05-2015, 13:24
سلام.
سوالتو خیلی بد مطرح کردی.
مقدار A یعنی چی؟ یه فیلدی در یه تیبل در دیتابیسه؟

در کل وقتی از transaction استفاده میکنیم که قصد داریم بر روی بیش از یک رکورد تغییرات ایجاد کنیم و در این حالت تیبل رو لاک میکنیم تا اگر مشکلی پیش اومد همه رو با هم rollback کنیم یا همه رو با هم commit کنیم.