کنترل قفل در SQL Server
یک سیستم بانک اطلاعاتی باید توانایی اجرای همزمان تراکنشها را داشته باشد. و همین concurrency یا همزمانی باعث میشود تا با مشکلاتی مواجه شویم که ما را نیازمند قفل می کند. مشکلات ایجاد شده در قالب مثال هایی در ادامه بررسی می کنیم.
مشکلات عدم استفاده از قفل
در نظر بگیرید که اجرای دو تراکنش همزمان شده است. تراکنش اول، داده x را از بانکاطلاعاتی می خواند. سپس تراکنش دوم نیز داده x را می خواند. تراکنش اول، x+5 را به جای x در بانک اطلاعاتی می نویسد. تراکنش دوم، x+1 را در بانک اطلاعاتی به جای x می نویسد. و هر دو به کارشان خاتمه می دهند.
حتما متوجه شده اید که مشکلی که در اینجا با آن روبرو می شویم، از دست دادن update انجام شده توسط تراکنش اول است. چون تراکنش دوم، دوباره بر روی داده update شده توسط تراکنش اول می نویسد. به این مشکل، lost update می گویند. راه بر طرف کردن آن، این است که وقتی تراکنش اول داده x را خواند، نباید تراکنش دیگری بتواند آنرا update کند، تا کار تراکنش اول به انتها برسد. یعنی باید داده x را قفل کرد تا تراکنش دیگری نتواند به آن دسترسی پیدا کند. البته، باید سطوح مختلفی برای قفل در نظر گرفت. چون بقیه تراکنش ها می توانند داده x را بخوانند، فقط نباید آنرا update کنند.
برای مثال دوم، فرض کنید که تراکنش اول داده x را می خواند و آنرا به x+5 تغییر می دهد. حال تراکنش دوم، داده x را می خواند و می خواهد بر اساس آن محاسباتی انجام دهد و مثلا داده y را با نتیجه بدست آمده بروز رسانی کند. تراکنش دوم، پس از بروزرسانی داده y به کار خود پایان می دهد. سپس تراکنش اول از تغییراتی که در بانک اطلاعاتی اعمال کرده است، پشیمان میشود. به عبارت دیگر با دستور rollback به تراکنش پایان می دهد. مشکلی که اینجا با آن مواجه هستیم، کارکرد تراکنش دوم بر مبنای داده های نادرست می باشد. این مشکل را نیز با قفل می توان حل کرد. به این مشکل dirty read می گویند.
حال فرض کنید که تراکنش اول، داده x را می خواند. سپس تراکنش دوم داده x را تغییر می دهد. حال اگر تراکنش اول دوباره داده x را بخواند، با مقدار جدیدی مواجه خواهد شد. به عبارت دیگر، دستور خواندن تکرار شدنی نیست. به این مشکل unrepeatable read می گویند.
و بالاخره به عنوان مثال آخر، در نظر بگیرید که تراکنش اول، رکوردهای یک جدول را می خواند. مثلا ۲۰ رکورد برگشت داده می شود. حال تراکنش دیگری می آید و یک رکورد جدیدی به جدول اضافه می کند. تراکنش اول، دوباره رکوردها را می خواند و ایندفعه با یک رکورد جدید روبرو می شود که قبلا نبود. رکوردی که مثل یک روح، یک دفعه در بین رکوردها ظاهر شده است!. همین اتفاق برای عمل حذف رکورد نیز صدق می کند. به این مشکل phantom read می گویند.
همانگونه که شاید حدس زده باشید، تمام مشکلات ناشی از اجرای هزمان چند تراکنش با یکدیگر می باشد. و اجرای همزمان تراکنش ها نیز در یک سیستم بانک اطلاعاتی امری اجتناب ناپذیر است. پس استفاده از یک سیستم کنترل قفل نیز اجتناب ناپذیر خواهد بود. روش های مختلفی برای کنترل اجرای همزمان تراکنش ها با یکدیگر وجود دارد، که در اینجا در مورد آنها بحث نخواهیم کرد. فقط به عنوان نمونه isolation level را که در SQL Server برای رفع همین مشکلات مورد استفاده قرار می گیرد، را در ادامه مورد بررسی قرار می دهیم.
ISOLATION LEVEL
sql server چهار سطح را برای رفع مشکلات فوق در نظر گرفته است. حتما متوجه شده اید که برخی از مشکلات عنوان شده فوق، همیشه مشکل به حساب نمی آید. مثلا در یک کاربرد ممکن است که مهم نباشد که ما مشکل phantom read داشته باشیم. isolation level برای یک تراکنش با دستور زیر مقداردهی می شود:
SET TRANSACTION ISOLATION LEVEL {
READ COMMITTED |
READ UNCOMMITTED|
REPEATABLE READ|
SERIALIZABLE}
هر کدام از چهار مقداری که می توان به آن نسبت داد را در ادامه بررسی می کنیم. نکته ای که باید قبل از ادامه بحث، به آن اشاره شود این است که مشکل اول یعنی lost update یکی از مشکلات اساسی بوده و در تمام کاربردها باید این مشکل رفع شود. بنابراین sql server به صورت پیش فرض برای تمام مقادیر انتخاب شده برای isolation level در نظر می گیرد. از بروز سه مشکل دیگر عنوان شده فوق، می توان به دلخواه با انتخاب یکی از مقادیر زیر برای isolation level جلوگیری کرد.
READ UNCOMMITTED
این مقدار، مساوی با این است که می خواهیم هیچ مکانیزم قفلی اعمال نشود. نتیجه آن نیز در صورت همزمانی تراکنش ها، احتمال وقوع مشکلات عنوان شده فوق می باشد.
READ COMMITTED
این مقدار پیش فرض برای isolation level می باشد. این مقدار تضمین می کند که داده ای که خوانده می شود یک داده commit شده باشد. یعنی مشکل dirty read بوجود نخواهد آمد. ولی دو مشکل آخری در این حالت می تواند بروز کند. نحوه رفع این مشکل نیز بدین صورت است که هر گاه تراکنشی داده ای را تغییر دهد و هنوز commit نکرده باشد، آن داده با قفل exclusive برچسب گذاری می شود. سپس اگر تراکنشی بخواهد داده را بخواند، سیستم اجازه خواندن داده را نمی دهد تا قفل آن داده آزاد شود. البته شرح کامل نحوه نسبت دهی قفل ها در [۱] آورده شده است و بحثی طولانی است که اینجا جای آن نیست!
REPEATABLE READ
این مقدار تضمین می کند که مشکل repeatable read نیز اتفاق نخواهد افتاد. این مشکل نیز به این صورت حل می شود که داده هایی که توسط یک تراکنش خوانده شده اند، قفل می شوند و اجازه تغییر آنها توسط تراکنش های دیگر تا انتهای اجرای این تراکنش داده نمی شود.
SERIALIZABLE
این مقدار تضمین می کند که هیچ یک از مشکلات عنوان شده فوق اتفاق نخواهد افتاد. مشکلی که تا مرحله قبل باقی مانده بود، مشکل phantom read می باشد. برای رفع این مشکل، sql server قفلی به data set خوانده شده توسط یک تراکنش تا انتهای آن اعمال می کند که تراکنش دیگری نتواند در طول اجرای آن تراکنش، رکوردی را ایجاد یا حذف کند.
مراجع:
[۱] روحانی رانکوهی ، سید محمد تقی ، “سیستم مدیریت پایگاه داده ها (مفاهیم و تکنیک ها)” ، انتشارات جلوه ، تهران . ۱۳۸۳
[۲] Microsoft SQL Server 2000 Resource Kit
نوشته شده توسط حسن شجاعی در دوشنبه ۱ اسفند ۱۳۸۴ |

توسط viagra costo در مرداد ۸, ۱۳۸۸ | پاسخ
MnqKB8 sdpmoktd mjwnbhwa pchnoqkl
توسط levitra 2009 در مرداد ۱۰, ۱۳۸۸ | پاسخ
refudzwp fnyegirs gvafewbg
توسط cialis prescrizione در مرداد ۱۰, ۱۳۸۸ | پاسخ
oyizqmbq iibsplbu fzbcswuh
توسط levitra generico vendita در مرداد ۱۰, ۱۳۸۸ | پاسخ
uzdgjteb gvcbfipk ysyhqcej
توسط medicinale cialis در مرداد ۱۰, ۱۳۸۸ | پاسخ
jgbhrbpx fuypxlkl tpyusada
توسط levitra soft tabs در مرداد ۱۰, ۱۳۸۸ | پاسخ
hxbqnrvz jwyyghvj wrvsagsz
توسط viagra در مرداد ۱۸, ۱۳۸۸ | پاسخ
qvdtdfpn gegknhxr ltfxstyr
توسط viagra در مرداد ۱۸, ۱۳۸۸ | پاسخ
ogjlamck dhxojhtu lwlwwmor
توسط viagra prix در مرداد ۱۸, ۱۳۸۸ | پاسخ
lzpwvcsq csfafslc csnpicfp
توسط cialis prix در مرداد ۱۸, ۱۳۸۸ | پاسخ
xjyupzql lrhqgtuk klvhdgpy
توسط viagra france در مرداد ۲۳, ۱۳۸۸ | پاسخ
xdsjcuyk hkflzhzi pccaugio
توسط generique viagra در مرداد ۲۳, ۱۳۸۸ | پاسخ
witnmmgo dqcpnwwg nuwlcxdh
توسط viagra achat در مرداد ۲۳, ۱۳۸۸ | پاسخ
clwzkquo sneekzpf uumynsnd
توسط cialis france در مرداد ۲۳, ۱۳۸۸ | پاسخ
vaybpokb jmttlzhg xamdwesk
توسط acheter viagra در مرداد ۲۴, ۱۳۸۸ | پاسخ
lmxbwgqo fffiytml atgeigfk
توسط achat cialis generique در مرداد ۲۸, ۱۳۸۸ | پاسخ
alrdqvvy ssfygyfk eomwmbpt
توسط achat cialis pas cher در مرداد ۲۸, ۱۳۸۸ | پاسخ
vqrnwsdw bywqgoep dlgrwrrb
توسط compra cialis in italia در مرداد ۳۰, ۱۳۸۸ | پاسخ
vgeqznge sdmrjrqn bitbmxyt
توسط acquisto cialis generico در مرداد ۳۰, ۱۳۸۸ | پاسخ
vyixtpde ijmyjfbi bqncapxu
توسط acquistare viagra senza ricetta در مرداد ۳۱, ۱۳۸۸ | پاسخ
hozivryy qrozrgux ingncuga
توسط viagra generico در مرداد ۳۱, ۱۳۸۸ | پاسخ
bcmnnoit zzhzdorl mlxcydev
توسط compra cialis در شهریور ۷, ۱۳۸۸ | پاسخ
tmbsbwxq rjgeixau ibvqwuba
توسط acheter viagra در شهریور ۷, ۱۳۸۸ | پاسخ
ucypynzk getjomir hfrhoaiq
توسط achat cialis en ligne در شهریور ۷, ۱۳۸۸ | پاسخ
qygfrrec ruzsqbiw fhogyneb
توسط viagra در شهریور ۷, ۱۳۸۸ | پاسخ
opjggrza jnbjphxj ogibslqn
توسط Pharmf684 در آبان ۲, ۱۳۸۸ | پاسخ
Very nice site! cheap viagra
توسط Pharmd19 در آبان ۲, ۱۳۸۸ | پاسخ
Very nice site! [url=http://ypxaieo.com/rrqavao/2.html]cheap cialis[/url]
توسط Pharmd690 در آبان ۲, ۱۳۸۸ | پاسخ
Very nice site! cheap cialis http://ypxaieo.com/rrqavao/4.html
توسط Pharmf964 در آبان ۲, ۱۳۸۸ | پاسخ
Very nice site!
توسط cialis در آبان ۷, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط viagra در آبان ۷, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط tramadol در آبان ۷, ۱۳۸۸ | پاسخ
Hello!
cheep tramadol paris france ,
توسط diet در آبان ۹, ۱۳۸۸ | پاسخ
Hello!
phentermine diet pills ,
توسط cheap در آبان ۹, ۱۳۸۸ | پاسخ
Hello!
tramadol cheap cod ,
توسط legal در آبان ۹, ۱۳۸۸ | پاسخ
Hello!
cialis legal online order ,
توسط gay_viagra در آبان ۹, ۱۳۸۸ | پاسخ
Hello!
gay viagra ,
توسط and در آبان ۹, ۱۳۸۸ | پاسخ
Hello!
tramadol and ambien interaction ,
توسط cod_tramadol در آبان ۹, ۱۳۸۸ | پاسخ
Hello!
cod tramadol ,
توسط viagra_uk در آبان ۹, ۱۳۸۸ | پاسخ
Hello!
viagra uk ,
توسط order_cialis در آبان ۹, ۱۳۸۸ | پاسخ
Hello!
order cialis ,
توسط urine_tramadol در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
urine tramadol ,
توسط phentermine_phentremine در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
phentermine phentremine ,
توسط 3dphentermine1f0h در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
3dphentermine1f0h ,
توسط is در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
where is phentermine ,
توسط mg در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
50 mg tramadol ,
توسط generic_viagra در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
generic viagra ,
توسط cialis_online در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
cialis online ,
توسط cialis در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط cialis در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط viagra در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط cialis_erowid در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
cialis erowid ,
توسط phentermine در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
discount phentermine mg editorial phentermine mg ,
توسط side در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
cialis side effects ,
توسط cialis در آبان ۱۲, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط Pharmk786 در آبان ۱۲, ۱۳۸۸ | پاسخ
Very nice site! cheap viagra
توسط Pharmb98 در آبان ۱۲, ۱۳۸۸ | پاسخ
Very nice site! [url=http://opeyixa.com/qoxaao/2.html]cheap cialis[/url]
توسط Pharmc81 در آبان ۱۲, ۱۳۸۸ | پاسخ
Very nice site! cheap cialis http://opeyixa.com/qoxaao/4.html
توسط Pharmd261 در آبان ۱۲, ۱۳۸۸ | پاسخ
Very nice site!
توسط viagra در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط buy_cialis در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
buy cialis ,
توسط buy_viagra در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
buy viagra ,
توسط cialisv در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
cialisv ,
توسط phentermine در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
buy phentermine sale new zealand ,
توسط by در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
phentermine by check ,
توسط cialis_clock در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
cialis clock ,
توسط cost در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
cialis cost per pill ,
توسط best در آبان ۱۴, ۱۳۸۸ | پاسخ
Hello!
cialis best effect ,
توسط cialis در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cheap cialis daily ,
توسط hour در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
36 hour cialis gooding ,
توسط tramadol_overnite در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
tramadol overnite ,
توسط soft در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis soft tab description ,
توسط levitra در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis levitra viagra index ,
توسط cialis_singapore در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis singapore ,
توسط viagra در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
with viagra cialis levitra ,
توسط interaction در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis interaction with sudafed ,
توسط vs در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis vs cialis profession ,
توسط cialis در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
discount cialis generic ,
توسط phentermine در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cheapest phentermine online free shipping ,
توسط taste در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
bad taste crushing cialis ,
توسط flagstaff در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis flagstaff doctor ,
توسط phentermine در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
buy phentermine post ,
توسط cialis_incredible در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis incredible ,
توسط information در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis information for cialis ,
توسط three در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
try three for free cialis viagra ,
توسط cialis در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
brand cialis online ,
توسط erectile در آبان ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis erectile disfunctio ,
توسط tramadol در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
drug tramadol dosage by weight ,
توسط problems در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
eye problems cialis ,
توسط soft در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
cialis soft tablets ,
توسط phentermine در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
buy phentermine no prescription purephentermine ,
توسط canadian در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
cialis canadian drug ,
توسط hydrochloride در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
tramadol hydrochloride for sale ,
توسط halfing_phentermine در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
halfing phentermine ,
توسط cialis_mp3 در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
cialis mp3 ,
توسط cialis در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
buy cialis delived fed ex ,
توسط knockoff_cialis در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
knockoff cialis ,
توسط pills در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
cialis pills chat ,
توسط super در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
cialis super active vs cialis ,
توسط secondaire در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
effets secondaire cialis ,
توسط mail در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
cialis mail order medication ,
توسط decreased در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
phentermine decreased libido ,
توسط tramadol در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
is tramadol detectable in urine ,
توسط u_cialis در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
u cialis ,
توسط online در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
tramadol online no consultation fee ,
توسط phentermine_capsules در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
phentermine capsules ,
توسط medication در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
tramadol medication withdrawal ,
توسط cialis در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
pharmacy cialis buy ,
توسط day در آبان ۱۶, ۱۳۸۸ | پاسخ
Hello!
cheapest day order phentermine ,
توسط glaucoma_cialis در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
glaucoma cialis ,
توسط phentermine_anorexia در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
phentermine anorexia ,
توسط sales_cialis در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
sales cialis ,
توسط cialis در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
generic cialis money order ,
توسط pharmaceutical در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
amide pharmaceutical a image phentermine ,
توسط and در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
albuquerque and cialis ,
توسط vs در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
cialis vs viagara ,
توسط side در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
phentermine side affectd ,
توسط cialis_tablets در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
cialis tablets ,
توسط phentermine_stroke در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
phentermine stroke ,
توسط delivered در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
phentermine delivered tomorrow ,
توسط often در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
how often may you take cialis ,
توسط e_propecia در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
e propecia ,
توسط hotel در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
luxury hotel rome discount phentermine ,
توسط mobile در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
phentermine mobile alabama ,
توسط support در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
phentermine support group ,
توسط for در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
cialis for normal men ,
توسط cialis در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
buy cialis cheap us ,
توسط mg در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
tramadol mg amitriptyl ,
توسط generic در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
ajanta generic cialis ,
توسط cialis_advertising در آبان ۱۷, ۱۳۸۸ | پاسخ
Hello!
cialis advertising ,
توسط cialis در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
comprar cialis en argentina ,
توسط cialis در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
plavix cialis taken together ,
توسط viagra در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
generic viagra cavertac cialis cheap ,
توسط addiction در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
adipexdrug addiction order phentermine online ,
توسط cialis_viagra در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
cialis viagra ,
توسط cialis در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
buy cialis australia ,
توسط names در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
actors names in the cialis commercial ,
توسط phentermine_tolerence در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
phentermine tolerence ,
توسط phentermine در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
free phentermine consultation ,
توسط cialis128448 در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
cialis128448 ,
توسط generic در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
strongest generic of tramadol ,
توسط cialis_powder در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
cialis powder ,
توسط cialis_indigestio در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
cialis indigestio ,
توسط generic در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
non generic phentermine ,
توسط and در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
cialis and antifungals ,
توسط buy در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
the buy cialis ,
توسط bulletin در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
cialis bulletin board ,
توسط phamacy در آبان ۱۸, ۱۳۸۸ | پاسخ
Hello!
canadian phamacy cialis ,
توسط drug در آبان ۱۹, ۱۳۸۸ | پاسخ
Hello!
prescription drug index phentermine ,
توسط prescribed در آبان ۱۹, ۱۳۸۸ | پاسخ
Hello!
dr prescribed phentermine ,
توسط cialis در آبان ۱۹, ۱۳۸۸ | پاسخ
Hello!
by cialis march posted ,
توسط cialis در آبان ۱۹, ۱۳۸۸ | پاسخ
Hello!
taking cialis and viagra at the same time ,
توسط phentermine_sale در آبان ۱۹, ۱۳۸۸ | پاسخ
Hello!
phentermine sale ,
توسط phentermine در آبان ۱۹, ۱۳۸۸ | پاسخ
Hello!
buy phentermine fastest click here ,
توسط name در آبان ۱۹, ۱۳۸۸ | پاسخ
Hello!
brand name cialis ,
توسط well در آبان ۱۹, ۱۳۸۸ | پاسخ
Hello!
how well does cialis work ,
توسط mortgage در آبان ۲۷, ۱۳۸۸ | پاسخ
Hello!
popular mortgage loan ,
توسط services در آبان ۲۸, ۱۳۸۸ | پاسخ
Hello!
firstmark services student loan ,
توسط Pharmb665 در آذر ۱۷, ۱۳۸۸ | پاسخ
Very nice site! cheap viagra
توسط Pharme256 در آذر ۱۷, ۱۳۸۸ | پاسخ
Very nice site! [url=http://apeoixy.com/tqavv/2.html]cheap cialis[/url]
توسط Pharme841 در آذر ۱۷, ۱۳۸۸ | پاسخ
Very nice site! cheap cialis http://apeoixy.com/tqavv/4.html
توسط Pharmg918 در آذر ۱۷, ۱۳۸۸ | پاسخ
Very nice site!
توسط HSMHiQYA در دی ۵, ۱۳۸۸ | پاسخ
Hi! NYMDESe
توسط HEgJnsnf در دی ۵, ۱۳۸۸ | پاسخ
Hi! aXlfnc
توسط Pharmg469 در اسفند ۳, ۱۳۸۸ | پاسخ
Hello! aaadfde interesting aaadfde site!
توسط Pharmc779 در اسفند ۳, ۱۳۸۸ | پاسخ
Very nice site! cheap viagra
توسط Pharme853 در اسفند ۳, ۱۳۸۸ | پاسخ
Very nice site! [url=http://opxaiey.com/oyyraay/2.html]cheap cialis[/url]
توسط Pharmb138 در اسفند ۳, ۱۳۸۸ | پاسخ
Very nice site! cheap cialis http://opxaiey.com/oyyraay/4.html
توسط Pharma125 در اسفند ۳, ۱۳۸۸ | پاسخ
Very nice site!
توسط viagra در اسفند ۴, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط cialis در اسفند ۵, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط cialis در اسفند ۵, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط cheap_cialis در اسفند ۶, ۱۳۸۸ | پاسخ
Hello!
cheap cialis ,
توسط generic_viagra در اسفند ۷, ۱۳۸۸ | پاسخ
Hello!
generic viagra ,
توسط viagra در اسفند ۸, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط tramadol در اسفند ۸, ۱۳۸۸ | پاسخ
Hello!
tramadol ,
توسط cialis در اسفند ۸, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط erectile_dysfunction در اسفند ۸, ۱۳۸۸ | پاسخ
Hello!
erectile dysfunction ,
توسط viagra در اسفند ۸, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط xanax در اسفند ۹, ۱۳۸۸ | پاسخ
Hello!
xanax ,
توسط xanax در اسفند ۹, ۱۳۸۸ | پاسخ
Hello!
xanax ,
توسط viagra در اسفند ۹, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط cialis در اسفند ۱۰, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط cialis در اسفند ۱۰, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط cialis در اسفند ۱۰, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط xanax در اسفند ۱۰, ۱۳۸۸ | پاسخ
Hello!
xanax ,
توسط cheap_cialis در اسفند ۱۱, ۱۳۸۸ | پاسخ
Hello!
cheap cialis ,
توسط cialis در اسفند ۱۲, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط viagra_online در اسفند ۱۲, ۱۳۸۸ | پاسخ
Hello!
viagra online ,
توسط tramadol در اسفند ۱۳, ۱۳۸۸ | پاسخ
Hello!
tramadol ,
توسط cialis در اسفند ۱۳, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط phentermine در اسفند ۱۳, ۱۳۸۸ | پاسخ
Hello!
phentermine ,
توسط tramadol در اسفند ۱۳, ۱۳۸۸ | پاسخ
Hello!
tramadol ,
توسط buy_viagra در اسفند ۱۳, ۱۳۸۸ | پاسخ
Hello!
buy viagra ,
توسط vigara در اسفند ۱۳, ۱۳۸۸ | پاسخ
Hello!
vigara ,
توسط cheap_viagra در اسفند ۱۴, ۱۳۸۸ | پاسخ
Hello!
cheap viagra ,
توسط Pharmd531 در اسفند ۱۴, ۱۳۸۸ | پاسخ
Hello! kaaedkg interesting kaaedkg site!
توسط Pharmd970 در اسفند ۱۴, ۱۳۸۸ | پاسخ
Very nice site! cheap viagra
توسط Pharmd415 در اسفند ۱۴, ۱۳۸۸ | پاسخ
Very nice site! [url=http://ypxoiea.com/qyravq/2.html]cheap cialis[/url]
توسط Pharma609 در اسفند ۱۴, ۱۳۸۸ | پاسخ
Very nice site! cheap cialis http://ypxoiea.com/qyravq/4.html
توسط Pharmg230 در اسفند ۱۴, ۱۳۸۸ | پاسخ
Very nice site!
توسط buy_cialis در اسفند ۱۵, ۱۳۸۸ | پاسخ
Hello!
buy cialis ,
توسط generic در اسفند ۱۵, ۱۳۸۸ | پاسخ
Hello!
cialis generic viagra ,
توسط xanax در اسفند ۱۶, ۱۳۸۸ | پاسخ
Hello!
xanax ,
توسط cialis در اسفند ۱۶, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط cialis در اسفند ۱۶, ۱۳۸۸ | پاسخ
Hello!
cialis ,
توسط xanax در اسفند ۱۶, ۱۳۸۸ | پاسخ
Hello!
xanax ,
توسط Pharmd900 در اسفند ۱۶, ۱۳۸۸ | پاسخ
Hello! ddaeddd interesting ddaeddd site!
توسط Pharmb221 در اسفند ۱۶, ۱۳۸۸ | پاسخ
Very nice site! cheap viagra
توسط Pharme385 در اسفند ۱۶, ۱۳۸۸ | پاسخ
Very nice site! [url=http://apeoixy.com/tqastv/2.html]cheap cialis[/url]
توسط Pharme438 در اسفند ۱۶, ۱۳۸۸ | پاسخ
Very nice site! cheap cialis http://apeoixy.com/tqastv/4.html
توسط Pharme362 در اسفند ۱۶, ۱۳۸۸ | پاسخ
Very nice site!
توسط tramadol در اسفند ۱۷, ۱۳۸۸ | پاسخ
Hello!
tramadol ,
توسط phentermine در اسفند ۱۷, ۱۳۸۸ | پاسخ
Hello!
phentermine ,
توسط tramadol در اسفند ۱۷, ۱۳۸۸ | پاسخ
Hello!
tramadol ,
توسط vs در اسفند ۱۸, ۱۳۸۸ | پاسخ
Hello!
cialis vs levitra ,
توسط cialis در اسفند ۱۹, ۱۳۸۸ | پاسخ
Hello!
viagra cialis levitra ,
توسط tramadol در اسفند ۲۰, ۱۳۸۸ | پاسخ
Hello!
tramadol ,
توسط viagra در اسفند ۲۰, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط xanax در اسفند ۲۰, ۱۳۸۸ | پاسخ
Hello!
xanax ,
توسط xanax در اسفند ۲۰, ۱۳۸۸ | پاسخ
Hello!
xanax ,
توسط generic در اسفند ۲۰, ۱۳۸۸ | پاسخ
Hello!
cheap generic viagra ,
توسط viagra در اسفند ۲۱, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط viagra در اسفند ۲۱, ۱۳۸۸ | پاسخ
Hello!
viagra ,
توسط buy_viagra در اسفند ۲۲, ۱۳۸۸ | پاسخ
Hello!
buy viagra ,
توسط xanax در اسفند ۲۲, ۱۳۸۸ | پاسخ
Hello!
xanax ,
توسط phentermine در اسفند ۲۲, ۱۳۸۸ | پاسخ
Hello!
phentermine ,
توسط viagra در اسفند ۲۲, ۱۳۸۸ | پاسخ
Hello!
viagra ,