SQL Server
3.91K subscribers
19 photos
7 videos
36 files
168 links
حمید رضا صادقیان

🔴طراح‌ومشاوربانک های اطلاعاتیSQLSERVER
⚫️مدرس دوره های آموزشیDatabase

ارتباط با من:
@Hamidreza_Sadeghian

گروه تبادل نظر:
https://t.me/+uIc1qhv58gU0NWQ0
Download Telegram
چند روز پیش مشغول مانیتورینگ یکی از مراکز بودم ،‌ دیدم که بیش از ۵۰۰ تا Deadlock روی دیتابیس رخ داده ! اون هم تو یک بازه کم. اصلا یک چیز عجیب غریبی بود.
رفتم کدها رو بررسی کردم دیدم Deadlock بین یک Select و Insert روی همون جدول داره رخ میده. Select داشت کل جدول رو Scan می کرد و Insert هم با شرایط خاصی نیاز داشت درج بشه که سبب Deadlock شده بود.
فیلدهای شرط Select رو بررسی کردم دیدم که یک فیلد از نوع nvarchar max هست.

(خداوکیلی Developer های عزیز اگه از این دیتاتایپ مثل نقل و نبات استفاده می کنید،‌برای حفظ جونتون هم که شده نزدیک یک DBA نشید. از ما گفتن بود 😁 )

مورد داشتم روی فیلد عددی هم Nvarchar max گذاشته شده.
در این فقره نوع Data type و طول فیلدها خساست از اخلاقهای بسیار نیکو پسندیده است.
خلاصه با تیم توسعه صحبت کردیم بچه ها زحمت کشیدن طول فیلد رو اصلاح کردن و من تونستم روی فیلدهای مورد نظر ایندکس بذارم.
بعد از قراردادن ایندکس کلا مشکل Deadlock عزیزمون حل شد و دیگه اون چالش رخ نداد.
البته این نکته رو هم در نظر بگیرید که جدول مذکور کلا ایندکسی نداشت.
من جداولی رو دیدم که خودش به دلیل تعدد ایندکس (بالای ۱۵ تا ایندکس. ماشالله دست و دل بازم بودن عزیزان 😅 ) باعث ایجاد Deadlock میشده.
اینطور نباشد که برید از فردا جداول مورد نظر رو غرق در ایندکس کنید بعد صدتاجای دیگه بترکه خلاصه مارو مورد عنایت قرار بدین. من در این فقره هیچگونه مسئولیتی قبول نمی کنم. 🙃
باشد که دیتابیسی عاری از هرگونه Deadlock داشته باشید.


#Deadlock
#DBA_Tips
👍4411👏3😁3💯1