سلام خدمت دوستان عزیزم
امیدوارم که عالی باشین
ما برای شرکت سلامت الکترونیک تامین (ساتا) نیازمند یک نیروی DBA هستیم.
تسلط به مفاهیم و ساختارهای Replication , HA و Database Maintenance برامون حائز اهمیته.
به دلیل اینکه هم تعداد دیتابیس ها زیاده . هم ساختار Replication پیچیده ای هست.
هم اینکه حساسیت داده ای بسیار بالاست.
محل کار هم تهرانسر هست.
کار هم به صورت حضوریه.
عزیزانی که تمایل دارند رزومه هاشون رو برای من بفرستند.
شاد باشین
@Hamidreza_Sadeghian
امیدوارم که عالی باشین
ما برای شرکت سلامت الکترونیک تامین (ساتا) نیازمند یک نیروی DBA هستیم.
تسلط به مفاهیم و ساختارهای Replication , HA و Database Maintenance برامون حائز اهمیته.
به دلیل اینکه هم تعداد دیتابیس ها زیاده . هم ساختار Replication پیچیده ای هست.
هم اینکه حساسیت داده ای بسیار بالاست.
محل کار هم تهرانسر هست.
کار هم به صورت حضوریه.
عزیزانی که تمایل دارند رزومه هاشون رو برای من بفرستند.
شاد باشین
@Hamidreza_Sadeghian
👍6
سلام دوستان عزیزم
🚨 توی چند روز اخیر دو مورد Disaster برای دو مرکز مختلف رخ داد.
هرکدوم از این مراکز دو تا سرور داشتند که HA بودند و کلاستر مدام از دسترس خارج میشد.
هر دو نود میرفتند توی حالت Resolving... 😵💫
🔍 طی بررسی لاگهای کلاستر و لاگهای تولیدشده توسط SQL Server
دیدم Memory Dumpهای مختلفی توسط SQL Server ایجاد شده.
📉 معمولاً زمانی که یک Memory Dump توسط SQL Server ایجاد میشه، یعنی یک خطای حاد وجود داره.
یا مشکل سختافزاریه، یا خود Engine دچار یه مشکل اساسی شده که داره چنین فایلی رو تولید میکنه.
🛠 در اولین مورد فهمیدیم یک باگ در Query Store هست در نسخه ۲۰۲۲
که با نصب Service Pack مشکل حل شد.
💽 در مورد دوم هم دیسک مشکل داشت و باعث شده بود کدهایی که اجرا میشن، خطای Access Violation بدن.
با اصلاح دیسکها، مسأله حل شد.
✅ اینجاست که وجود یک DBA واقعی حیاتی میشه...
🤔 شما تجربهی مشابهی داشتین؟
خوشحال میشم بدونم چطور باهاش برخورد کردین. 💬
🚨 توی چند روز اخیر دو مورد Disaster برای دو مرکز مختلف رخ داد.
هرکدوم از این مراکز دو تا سرور داشتند که HA بودند و کلاستر مدام از دسترس خارج میشد.
هر دو نود میرفتند توی حالت Resolving... 😵💫
🔍 طی بررسی لاگهای کلاستر و لاگهای تولیدشده توسط SQL Server
دیدم Memory Dumpهای مختلفی توسط SQL Server ایجاد شده.
📉 معمولاً زمانی که یک Memory Dump توسط SQL Server ایجاد میشه، یعنی یک خطای حاد وجود داره.
یا مشکل سختافزاریه، یا خود Engine دچار یه مشکل اساسی شده که داره چنین فایلی رو تولید میکنه.
🛠 در اولین مورد فهمیدیم یک باگ در Query Store هست در نسخه ۲۰۲۲
که با نصب Service Pack مشکل حل شد.
💽 در مورد دوم هم دیسک مشکل داشت و باعث شده بود کدهایی که اجرا میشن، خطای Access Violation بدن.
با اصلاح دیسکها، مسأله حل شد.
✅ اینجاست که وجود یک DBA واقعی حیاتی میشه...
🤔 شما تجربهی مشابهی داشتین؟
خوشحال میشم بدونم چطور باهاش برخورد کردین. 💬
👍27❤5🤝1
سلام خدمت دوستان عزیزم
امیدوارم حالتون عالی باشه
ما برای تپسی شاپ ، به یک نیروی BI حرفه ای نیازمندیم.
این شخص باید به این موارد مسلط باشه یا حداقل کارکرده باشه:
- معماری BI و DW
- SSAS
-ETL(SSIS)
-T-SQL Querying
-DAX and MDX
-Power BI
کار به صورت حضوری بوده و دفتر آن نیز در تهران هست.
دفتر هم محدوده سینما آزادی هست.
تپسی شاپ هم زیرمجموعه گروه صنعتی گلرنگ می باشد و از مزایای گروه صنعتی گلرنگ بهره مند خواهید شد.
در صورت تمایل رزومه هاتون رو برای من ارسال کنید.
@hamidreza_Sadeghian
امیدوارم حالتون عالی باشه
ما برای تپسی شاپ ، به یک نیروی BI حرفه ای نیازمندیم.
این شخص باید به این موارد مسلط باشه یا حداقل کارکرده باشه:
- معماری BI و DW
- SSAS
-ETL(SSIS)
-T-SQL Querying
-DAX and MDX
-Power BI
کار به صورت حضوری بوده و دفتر آن نیز در تهران هست.
دفتر هم محدوده سینما آزادی هست.
تپسی شاپ هم زیرمجموعه گروه صنعتی گلرنگ می باشد و از مزایای گروه صنعتی گلرنگ بهره مند خواهید شد.
در صورت تمایل رزومه هاتون رو برای من ارسال کنید.
@hamidreza_Sadeghian
👍5❤1
🌐 افزایش حملات سایبری در دوران جنگ، و اهمیت توجه به SQL Injection
سلام به همه دوستان عزیزم،
امیدوارم حالتون خوب و دلاتون آروم باشه.
در این روزهای پرتنش که حملات سایبری هم شدت گرفته، یکی از حملاتی که بیشتر از همیشه باید جدی گرفته بشه، SQL Injection هست.
این نوع حمله میتونه آسیبهای جبرانناپذیری به دیتابیس وارد کنه:
از حذف دادهها گرفته تا رمزنگاری یا دستکاری اطلاعات، و متأسفانه چون حمله از طریق اکانتی انجام میشه که نرمافزار به دیتابیس متصل شده، دسترسی کامل به اطلاعات فراهم میشه.
چند سوال کلیدی که باید از خودمون بپرسیم:
آیا نقاط ضعف مربوط به Injectionها در سیستم رو شناسایی و برطرف کردید؟
آیا اطلاعات حساس و مهم رو رمزنگاری کردید؟
آیا دسترسیها رو در سطح Schema تفکیک کردید، یا همچنان با یک یوزر Owner به کل دیتابیس متصل میشید؟
آیا ساختار Backup شما به گونهای هست که در صورت نفوذ بتونید دادهها رو بازیابی کنید؟
آیا از Backupها نسخهی دوم تهیه و در مکان امن نگهداری میکنید؟
آیا روی سرور دیتابیس، فایروال فعال و پیکربندیشده دارید؟
آیا آخرین Service Packها و Patchهای امنیتی نصب شدهاند؟
آیا تنظیمات امنیتی مربوط به Service Accountهای SQL Server بهدرستی رعایت شده؟
🔐 اینها تنها بخشی از سوالاتی هستند که باید در روزهای پرریسک امروز بهشون فکر کنیم.
امیدوارم که دادههاتون در سلامت کامل باشن و هیچ تهدیدی متوجهشون نشه.
ارادتمند
حمیدرضا صادقیان
@Hamidreza_Sadeghian
سلام به همه دوستان عزیزم،
امیدوارم حالتون خوب و دلاتون آروم باشه.
در این روزهای پرتنش که حملات سایبری هم شدت گرفته، یکی از حملاتی که بیشتر از همیشه باید جدی گرفته بشه، SQL Injection هست.
این نوع حمله میتونه آسیبهای جبرانناپذیری به دیتابیس وارد کنه:
از حذف دادهها گرفته تا رمزنگاری یا دستکاری اطلاعات، و متأسفانه چون حمله از طریق اکانتی انجام میشه که نرمافزار به دیتابیس متصل شده، دسترسی کامل به اطلاعات فراهم میشه.
چند سوال کلیدی که باید از خودمون بپرسیم:
آیا نقاط ضعف مربوط به Injectionها در سیستم رو شناسایی و برطرف کردید؟
آیا اطلاعات حساس و مهم رو رمزنگاری کردید؟
آیا دسترسیها رو در سطح Schema تفکیک کردید، یا همچنان با یک یوزر Owner به کل دیتابیس متصل میشید؟
آیا ساختار Backup شما به گونهای هست که در صورت نفوذ بتونید دادهها رو بازیابی کنید؟
آیا از Backupها نسخهی دوم تهیه و در مکان امن نگهداری میکنید؟
آیا روی سرور دیتابیس، فایروال فعال و پیکربندیشده دارید؟
آیا آخرین Service Packها و Patchهای امنیتی نصب شدهاند؟
آیا تنظیمات امنیتی مربوط به Service Accountهای SQL Server بهدرستی رعایت شده؟
🔐 اینها تنها بخشی از سوالاتی هستند که باید در روزهای پرریسک امروز بهشون فکر کنیم.
امیدوارم که دادههاتون در سلامت کامل باشن و هیچ تهدیدی متوجهشون نشه.
ارادتمند
حمیدرضا صادقیان
@Hamidreza_Sadeghian
👍25❤10👌2🔥1
سلام خدمت دوستان عزیز
من با توجه به جابجایی به شهر مشهد مقدس و به اتمام رسیدن بعضی از پروژه ها ، فعلا دو روز در هفته وقت برای مشاوره در حوزه SQL Server رو دارم.
در صورتی که تمایل به همکاری دارید ، در صورتی که در جایی به غیر از مشهد هستید به صورت آنلاین و در صورتی که در مشهد تشریف دارید میتوانیم به صورت حضوری همکاری را آغاز کنیم.
ارادتمند
حمیدرضا صادقیان
من با توجه به جابجایی به شهر مشهد مقدس و به اتمام رسیدن بعضی از پروژه ها ، فعلا دو روز در هفته وقت برای مشاوره در حوزه SQL Server رو دارم.
در صورتی که تمایل به همکاری دارید ، در صورتی که در جایی به غیر از مشهد هستید به صورت آنلاین و در صورتی که در مشهد تشریف دارید میتوانیم به صورت حضوری همکاری را آغاز کنیم.
ارادتمند
حمیدرضا صادقیان
❤20👍7🤷♂2🤔1🤝1
گاهی اوقات به دلایل مختلف مثل شرایط زندگی یا مشکلات مالی، یادگیری مهارتهای جدید بهخاطر محدودیتهایی که پیش میاد از اولویتهای ما عقب میافته. برای اینکه به سهم خودم کمکی کرده باشم تا این مسئله کمرنگتر بشه، در طرح حمایتی «همدلی در مسیر یادگیری» دوره «آموزش اصول پایگاه داده و SQL Server» رو رایگان کردیم.
این دوره برای کسانی که میخواهند بهطور عملی و کاربردی با اصول پایگاه داده و SQL Server آشنا بشن، طراحی شده.
این فرصت تا تاریخ ۳۱ مرداد ماه ۱۴۰۴ برای شما فعال هست و شما میتونید با استفاده از کد تخفیف ۱۰۰٪ HAMDELI، بهراحتی دوره رو شروع کنید.
اگر فکر میکنید این دوره میتونه برای دوستان یا همکارانتون مفید باشه، حتماً لینک دوره رو با اونها هم به اشتراک بذارید.
کد تخفیف: HAMDELI
لینک دوره: https://mktb.me/lj3s/
لینک مشاهده تمام دورههای رایگانشده:
https://mktb.me/vznz/
#همدلی_در_مسیر_یادگیری
#عدالت_آموزشی
#مکتب_خونه
این دوره برای کسانی که میخواهند بهطور عملی و کاربردی با اصول پایگاه داده و SQL Server آشنا بشن، طراحی شده.
این فرصت تا تاریخ ۳۱ مرداد ماه ۱۴۰۴ برای شما فعال هست و شما میتونید با استفاده از کد تخفیف ۱۰۰٪ HAMDELI، بهراحتی دوره رو شروع کنید.
اگر فکر میکنید این دوره میتونه برای دوستان یا همکارانتون مفید باشه، حتماً لینک دوره رو با اونها هم به اشتراک بذارید.
کد تخفیف: HAMDELI
لینک دوره: https://mktb.me/lj3s/
لینک مشاهده تمام دورههای رایگانشده:
https://mktb.me/vznz/
#همدلی_در_مسیر_یادگیری
#عدالت_آموزشی
#مکتب_خونه
مکتبخونه
آموزش SQL | آموزش پایگاه داده SQL SERVER | مکتبخونه
در این دوره پس از آموزش SQL و مفاهیم مربوط به SQL Server، یاد میگیرید که با بانکهای اطلاعاتی SQL Server چگونه کار کنید و چطور یک بانک اطلاعاتی طراحی کنید
❤33👏4🤷♂1🔥1💯1
یکی از سختترین کارایی که همیشه توی مشاوره با شرکتای مختلف دارم، پیدا کردن ریشه اصلی مشکلهاست (البته بیشتر توی لایه داده و دیتابیس).
جالب اینجاست که هر شرکتی با شرکت دیگه زمین تا آسمون فرق داره و واقعاً نمیشه یه نسخه آماده واسه همه داد.
حالا چرا میگم چالش؟
چون برای اینکه بفهمم مشکل دقیقاً از کجاست، مجبورم برم با آدمای مختلف حرف بزنم. همین حرف زدنها گاهی باعث میشه یه سری حساسیتها بهوجود بیاد.
🔸 چرا حساسیت؟
چون بعضی واحدها یا آدمها سالهاست کسی به حرفشون گوش نداده. وقتی یکی پیدا میشه و بهشون فضا میده که بگن مشکل کجاست، ناخودآگاه سروصدا بلند میشه. این وسط اونایی که از این «شنیده نشدن» سود میبردن، احساس خطر میکنن و ممکنه ناراحت بشن.
حالا سؤال من اینه 👇
شما اگه توی همچین موقعیتی بودین، چیکار میکردین؟
خیلی دوست دارم تجربههاتونو بدونم و یاد بگیرم.
جالب اینجاست که هر شرکتی با شرکت دیگه زمین تا آسمون فرق داره و واقعاً نمیشه یه نسخه آماده واسه همه داد.
حالا چرا میگم چالش؟
چون برای اینکه بفهمم مشکل دقیقاً از کجاست، مجبورم برم با آدمای مختلف حرف بزنم. همین حرف زدنها گاهی باعث میشه یه سری حساسیتها بهوجود بیاد.
🔸 چرا حساسیت؟
چون بعضی واحدها یا آدمها سالهاست کسی به حرفشون گوش نداده. وقتی یکی پیدا میشه و بهشون فضا میده که بگن مشکل کجاست، ناخودآگاه سروصدا بلند میشه. این وسط اونایی که از این «شنیده نشدن» سود میبردن، احساس خطر میکنن و ممکنه ناراحت بشن.
حالا سؤال من اینه 👇
شما اگه توی همچین موقعیتی بودین، چیکار میکردین؟
خیلی دوست دارم تجربههاتونو بدونم و یاد بگیرم.
❤5
چند وقت پیش دیتابیس یه مرکز درمانی ترکیده بود! 😅
هیچ بکاپی نمیشد ازش گرفت، حتی وقتی DBCC CHECKDB میزدیم وسط کار خطا میداد و قطع میکرد.
کاری که کردم این بود که روی یه دیسک دیگه (چون دیسک اصلی مشکل داشت) یه دیتابیس خام ساختم. بعد هرچی داده میشد با Import/Export منتقل کردم. اونایی هم که گیر کرده بودن رو با SELECT از محدودههای سالم کشیدم بیرون و ریختم توی دیتابیس مقصد.
حالا نکته جالب ماجرا اینجاست 👇
به مدیر IT گفتم: چرا به Memory Dumpهایی که SQL Server تولید کرده بود اصلاً توجه نکردین؟
این یکی از مهمترین وظایف DBA هست که لاگها رو چک کنه. وقتی Memory Dump رخ میده یعنی یه مشکل جدی هست—چه سختافزاری چه نرمافزاری—و باید سریعاً رسیدگی بشه. وگرنه نتیجهش همینی میشه که دیدیم: فاجعه!
آخر سر هم یه توصیه دوستانه کردم:
مدیریت دیتابیسهاتون رو بدین دست یه آدم متخصص.
اگه همه پولتون رو بذارین برای ویلا و ماشین و خوشگذرونی، یه روز میبینین اطلاعاتتون پریده و تازه باید کلی هزینه کنین تا برگرده! 😁 (البته ما که راضی هستیم چون پول بیشتری میگیریم 😂 )
هیچ بکاپی نمیشد ازش گرفت، حتی وقتی DBCC CHECKDB میزدیم وسط کار خطا میداد و قطع میکرد.
کاری که کردم این بود که روی یه دیسک دیگه (چون دیسک اصلی مشکل داشت) یه دیتابیس خام ساختم. بعد هرچی داده میشد با Import/Export منتقل کردم. اونایی هم که گیر کرده بودن رو با SELECT از محدودههای سالم کشیدم بیرون و ریختم توی دیتابیس مقصد.
حالا نکته جالب ماجرا اینجاست 👇
به مدیر IT گفتم: چرا به Memory Dumpهایی که SQL Server تولید کرده بود اصلاً توجه نکردین؟
این یکی از مهمترین وظایف DBA هست که لاگها رو چک کنه. وقتی Memory Dump رخ میده یعنی یه مشکل جدی هست—چه سختافزاری چه نرمافزاری—و باید سریعاً رسیدگی بشه. وگرنه نتیجهش همینی میشه که دیدیم: فاجعه!
آخر سر هم یه توصیه دوستانه کردم:
مدیریت دیتابیسهاتون رو بدین دست یه آدم متخصص.
اگه همه پولتون رو بذارین برای ویلا و ماشین و خوشگذرونی، یه روز میبینین اطلاعاتتون پریده و تازه باید کلی هزینه کنین تا برگرده! 😁 (البته ما که راضی هستیم چون پول بیشتری میگیریم 😂 )
👍24😁5❤2🤣1
سلام
🔎 یه سوال مهم:
چرا ما برای هر کاری اینقدر مقاومت میکنیم که بریم سراغ متخصص؟ 😅
انگار وقتی میخوایم به یه متخصص پول بدیم، طرف قراره جونمون رو بگیره!
حتما باید یه بار خودمون تست کنیم، خرابش کنیم، آخرش با دو برابر هزینه و کلی اعصابخوردی بریم سراغ متخصص 😬
مثال دمدستی: کولر، لولهکشی، حتی تعمیر گوشی... همیشه همین داستانه.
مشکل اینجاست که ما فقط "۱۰ دقیقه کار" رو میبینیم، نه سالها تجربه و فوتوفنهایی که باعث میشه اون کار تمیز، بیدردسر و کمهزینه تموم بشه.
💾 این ماجرا توی دنیای دیتابیس هم دقیقا همینه:
خیلیا میگن "ای بابا این کارا که کاری نداره، خودم یه سرچ میکنم درستش میکنم" 🤓
نتیجه؟ دیتابیس میشه آزمایشگاه خطا، ایندکسها میشن قاتل سرعت، بکاپها موقع نیاز به کار نمیان، و آخرش با هزینهی بیشتر باید متخصص بیاد نجاتش بده 💥
❓ شما چی فکر میکنید؟
شده یه بار بخواید هزینهی متخصص ندید، آخرش چند برابرش رو خرج کنید؟
(خاطرات دیتابیسی و غیر دیتابیسی همش قبوله 😂)
👋 و اگه حس میکنید دیتابیستون نیاز به یه نگاه تخصصی داره، من اینجام تا قبل از اینکه کار به بحران برسه کمک کنم
🔎 یه سوال مهم:
چرا ما برای هر کاری اینقدر مقاومت میکنیم که بریم سراغ متخصص؟ 😅
انگار وقتی میخوایم به یه متخصص پول بدیم، طرف قراره جونمون رو بگیره!
حتما باید یه بار خودمون تست کنیم، خرابش کنیم، آخرش با دو برابر هزینه و کلی اعصابخوردی بریم سراغ متخصص 😬
مثال دمدستی: کولر، لولهکشی، حتی تعمیر گوشی... همیشه همین داستانه.
مشکل اینجاست که ما فقط "۱۰ دقیقه کار" رو میبینیم، نه سالها تجربه و فوتوفنهایی که باعث میشه اون کار تمیز، بیدردسر و کمهزینه تموم بشه.
💾 این ماجرا توی دنیای دیتابیس هم دقیقا همینه:
خیلیا میگن "ای بابا این کارا که کاری نداره، خودم یه سرچ میکنم درستش میکنم" 🤓
نتیجه؟ دیتابیس میشه آزمایشگاه خطا، ایندکسها میشن قاتل سرعت، بکاپها موقع نیاز به کار نمیان، و آخرش با هزینهی بیشتر باید متخصص بیاد نجاتش بده 💥
❓ شما چی فکر میکنید؟
شده یه بار بخواید هزینهی متخصص ندید، آخرش چند برابرش رو خرج کنید؟
(خاطرات دیتابیسی و غیر دیتابیسی همش قبوله 😂)
👋 و اگه حس میکنید دیتابیستون نیاز به یه نگاه تخصصی داره، من اینجام تا قبل از اینکه کار به بحران برسه کمک کنم
👍10❤2🤷♂1
وقتی DBA باشی و سرورها قهر میکنن! 🤷♂️
یکی از ویژگیهای بارز یه DBA خفن، خونسردی و اعتماد به نفس در لحظه بحرانه. اگه تو شرایط اضطراری بخوای استرس بگیری، همهچی رو بدتر میکنی. 🥶 این یه اصله.
چند سال پیش، سرورهای ما یهو قهر کردن و عجیب غریب کند شدن. 🐢 جای من وسط سالن بود و از اونجایی که سیستممون سراسری بود، تلفنهای واحد داشت سوراخ میشد 📞 و حضوری هم ملت قطاری میاومدن کنارم. 🏃♂️
خلاصه شروع کردیم به مانیتورینگ که ببینیم قضیه از چه قراره. یهو به خودم اومدم دیدم دور مانیتورم ۲۵ تا کله چیده شده! 👨👩👧👦 از هر واحدی یکی! یه لحظه احساس کردم تو یه آکواریومم و همه اومدن ماهیگیری! 🐟
اول به همه گفتم برن سر جاشون که من حداقل بتونم نفس بکشم. هنوز داشتم دنبال دلیل اصلی میگشتم که مدیرمون اومد و با قاطعیت گفت: «اول باید Linked Serverها رو قطع کنی! مشکل از اونجاست.» 😤
گفتم: «مدیر، ربطی به اونا نداره.» 🤔 گفت: «همینی که من میگم!» 😠 منم دیگه با آرامش گفتم: «من این کارو نمیکنم. بذارید کارم رو بکنم.» ✋
خلاصه با مدیر هم بحث کردم و رفت. کار رو اصلاح کردم و مشکل حل شد. ✅
بعد تو جلسه، مدیر برگشت گفت: «چرا حرف منو گوش نکردی؟» 🤨 گفتم: «چون شما تخصص این کار رو ندارید و در مواقع بحران، صلاحیت ندارید به من بگید چیکار کنم. من اینجا هستم که از تخصصم استفاده کنم. یا به من اعتماد دارید یا ندارید. اگه دارید، دیگه تو کارم دخالت نکنید.» 😉 ( البته بعدش هم همچنان اونجا مشغول به کار بودم 😁 . خداروشکر این فضا وجود داشت که بتونیم این مدلی صحبت کنیم)
این خاطره رو گفتم که بگم نداشتن استرس و همچنین اعتماد به نفس داشتن توی لحظات بحرانی، حرف اول رو میزنه. 💯
شما چه تجربه یا خاطره مشابهی دارید؟ برامون بنویسید! 👇
یکی از ویژگیهای بارز یه DBA خفن، خونسردی و اعتماد به نفس در لحظه بحرانه. اگه تو شرایط اضطراری بخوای استرس بگیری، همهچی رو بدتر میکنی. 🥶 این یه اصله.
چند سال پیش، سرورهای ما یهو قهر کردن و عجیب غریب کند شدن. 🐢 جای من وسط سالن بود و از اونجایی که سیستممون سراسری بود، تلفنهای واحد داشت سوراخ میشد 📞 و حضوری هم ملت قطاری میاومدن کنارم. 🏃♂️
خلاصه شروع کردیم به مانیتورینگ که ببینیم قضیه از چه قراره. یهو به خودم اومدم دیدم دور مانیتورم ۲۵ تا کله چیده شده! 👨👩👧👦 از هر واحدی یکی! یه لحظه احساس کردم تو یه آکواریومم و همه اومدن ماهیگیری! 🐟
اول به همه گفتم برن سر جاشون که من حداقل بتونم نفس بکشم. هنوز داشتم دنبال دلیل اصلی میگشتم که مدیرمون اومد و با قاطعیت گفت: «اول باید Linked Serverها رو قطع کنی! مشکل از اونجاست.» 😤
گفتم: «مدیر، ربطی به اونا نداره.» 🤔 گفت: «همینی که من میگم!» 😠 منم دیگه با آرامش گفتم: «من این کارو نمیکنم. بذارید کارم رو بکنم.» ✋
خلاصه با مدیر هم بحث کردم و رفت. کار رو اصلاح کردم و مشکل حل شد. ✅
بعد تو جلسه، مدیر برگشت گفت: «چرا حرف منو گوش نکردی؟» 🤨 گفتم: «چون شما تخصص این کار رو ندارید و در مواقع بحران، صلاحیت ندارید به من بگید چیکار کنم. من اینجا هستم که از تخصصم استفاده کنم. یا به من اعتماد دارید یا ندارید. اگه دارید، دیگه تو کارم دخالت نکنید.» 😉 ( البته بعدش هم همچنان اونجا مشغول به کار بودم 😁 . خداروشکر این فضا وجود داشت که بتونیم این مدلی صحبت کنیم)
این خاطره رو گفتم که بگم نداشتن استرس و همچنین اعتماد به نفس داشتن توی لحظات بحرانی، حرف اول رو میزنه. 💯
شما چه تجربه یا خاطره مشابهی دارید؟ برامون بنویسید! 👇
👍24❤4👌2👏1🤔1
وقتی Restore اشتباهی، تبدیل به فاجعه میشه 🤦♂️
امروز یه تماسی از یک مرکز درمانی داشتم که مغزم سوت کشید. 🤯
پشتیبان نرمافزارشون رفته دیتابیس یک ماه پیش رو روی دیتابیس اصلی ریستور کرده. 💀
یعنی قشنگ کل اطلاعات یک ماه رو به باد فنا داده! 🌬
از مسئولشون پرسیدم چرا اجازه دادین؟ میگه خب پشتیبان شرکته! 🤷♂️
میگم مگه DBA ندارید؟ 🧑💻 میگه نه،
اصلاً دسترسی SA هم نداریم و مدیریت دیتابیس کلا دست خودشونه. 🔒
اینجا بود که فهمیدم رسماً با دیوونهخونه طرفم. 🤪
این جور شرکتها که حتی الفبای مدیریت دیتابیس رو بلد نیستن و همه چیز رو انحصاری دست خودشون میگیرن، واقعا شاهکارن. 👑
بابا اگه کاری رو بلد نیستید، بسپرید به دست متخصصش! 👨🔬
اینکه بیاید گند بزنید به دادههای مردم و با یه "ببخشید" سر و تهشو هم بیارید، آخر بیمسئولیتیه. 😠
واقعاً خوششانسید که به پست من نخوردید! 😈
امروز یه تماسی از یک مرکز درمانی داشتم که مغزم سوت کشید. 🤯
پشتیبان نرمافزارشون رفته دیتابیس یک ماه پیش رو روی دیتابیس اصلی ریستور کرده. 💀
یعنی قشنگ کل اطلاعات یک ماه رو به باد فنا داده! 🌬
از مسئولشون پرسیدم چرا اجازه دادین؟ میگه خب پشتیبان شرکته! 🤷♂️
میگم مگه DBA ندارید؟ 🧑💻 میگه نه،
اصلاً دسترسی SA هم نداریم و مدیریت دیتابیس کلا دست خودشونه. 🔒
اینجا بود که فهمیدم رسماً با دیوونهخونه طرفم. 🤪
این جور شرکتها که حتی الفبای مدیریت دیتابیس رو بلد نیستن و همه چیز رو انحصاری دست خودشون میگیرن، واقعا شاهکارن. 👑
بابا اگه کاری رو بلد نیستید، بسپرید به دست متخصصش! 👨🔬
اینکه بیاید گند بزنید به دادههای مردم و با یه "ببخشید" سر و تهشو هم بیارید، آخر بیمسئولیتیه. 😠
واقعاً خوششانسید که به پست من نخوردید! 😈
🔥12🤷♂3💯2🤔1😢1
یه وقتایی پیش اومده رفتین رستوران و سفارش غذا دادین، بعد پیشخدمت فقط بر اساس سفارش نفر اول همه رو قضاوت کرده؟ 😅
مثلاً نفر اول گفته "من فقط یه سوپ کوچیک میخوام"، بعد پیشخدمت فکر کرده همه هم مثل اونن، رفته برای همه سوپ کوچیک آورده! 🍲
در حالیکه نفر دوم تهچین میخواسته، نفر سوم کلهپاچه، نفر چهارم هم پیتزا.
این دقیقاً همون Parameter Sniffing تو SQL Server هست. 🤓
وقتی یک Stored Procedure اجرا میشه، SQL Server میاد برنامهی اجرایی (Execution Plan) رو بر اساس پارامتر اولین نفری که صداش زده میسازه.
حالا اگه بقیه با شرایط متفاوت بیان، همون پلن برای همه استفاده میشه؛ مثل همون پیشخدمتی که فکر کرد همه فقط سوپ میخوان.
نتیجه؟
یکی سریع به جواب می رسه🍕
یکی نصفهجون میمونه 🍲
یکی هم کلاً معطل میشه 🥴
پس اگه دیدی کوئریها گاهی پرواز میکنن و گاهی زمینگیر میشن، شاید پای یه پیشخدمت به اسم Parameter Sniffing وسطه.
مثلاً نفر اول گفته "من فقط یه سوپ کوچیک میخوام"، بعد پیشخدمت فکر کرده همه هم مثل اونن، رفته برای همه سوپ کوچیک آورده! 🍲
در حالیکه نفر دوم تهچین میخواسته، نفر سوم کلهپاچه، نفر چهارم هم پیتزا.
این دقیقاً همون Parameter Sniffing تو SQL Server هست. 🤓
وقتی یک Stored Procedure اجرا میشه، SQL Server میاد برنامهی اجرایی (Execution Plan) رو بر اساس پارامتر اولین نفری که صداش زده میسازه.
حالا اگه بقیه با شرایط متفاوت بیان، همون پلن برای همه استفاده میشه؛ مثل همون پیشخدمتی که فکر کرد همه فقط سوپ میخوان.
نتیجه؟
یکی سریع به جواب می رسه🍕
یکی نصفهجون میمونه 🍲
یکی هم کلاً معطل میشه 🥴
پس اگه دیدی کوئریها گاهی پرواز میکنن و گاهی زمینگیر میشن، شاید پای یه پیشخدمت به اسم Parameter Sniffing وسطه.
❤25😁4
برجام، یک تراکنش پر از Rollback! 🤦♂️
ده سال پیش که برجام (Transaction) استارت خورد 🚀، گفتن همه تحریمها موقتاً برداشته میشه. ما هم با یه خبر غیرقطعی (Dirty Page) کلی ذوقزده شدیم و با همین دادهای که هنوز Commit نشده بود، رفتیم جلو! 🏃♂️
این وسط کل دنیا هم Lock بودن 🔒 و منتظر بودن ببینن تهش چی میشه. ولی ما زرنگ بودیم! با یه Query غیررسمی (یعنی با WITH(NOLOCK) 😉) خبر برداشتن تحریمها رو شنیدیم و باهاش عشق و حال کردیم. 🎉
همین وسط بود که یهو یه ترامپ (DBA) اومد و دکمه خروج از برجام رو زد! 🤯 یعنی اون تراکنش رو Kill کرد و فرستاد تو وضعیت Rollback! 💥
حالا بعد از ده سال، بالاخره این فرآیند Rollback مشخص شده و داره به اتمام میرسه. 😭 کلی تصمیم مهم روی شرکت و زندگیمون گرفته بودیم که همهشون بر اساس همون دادههای کثیف بودن. 😩 تازه فهمیدیم یه «مکانیزم ماشه» هم داشته که ما ندیده بودیم! 💥 (داده اصلی تازه خودش رو نشون میده!)
حالا برو تو Queryهات همینطوری جلو هر جدول یه WITH(NOLOCK) بذار و شاد باش که همه Blockingها رو از بین بردی! 🥳 ولی کی مکانیزم ماشه کدنویسیت فعال بشه و کل شرکت رو بفرسته هوا، خدا میدونه! 🤷♂️
همینقدر دقیق و خطرناک! 😉
ده سال پیش که برجام (Transaction) استارت خورد 🚀، گفتن همه تحریمها موقتاً برداشته میشه. ما هم با یه خبر غیرقطعی (Dirty Page) کلی ذوقزده شدیم و با همین دادهای که هنوز Commit نشده بود، رفتیم جلو! 🏃♂️
این وسط کل دنیا هم Lock بودن 🔒 و منتظر بودن ببینن تهش چی میشه. ولی ما زرنگ بودیم! با یه Query غیررسمی (یعنی با WITH(NOLOCK) 😉) خبر برداشتن تحریمها رو شنیدیم و باهاش عشق و حال کردیم. 🎉
همین وسط بود که یهو یه ترامپ (DBA) اومد و دکمه خروج از برجام رو زد! 🤯 یعنی اون تراکنش رو Kill کرد و فرستاد تو وضعیت Rollback! 💥
حالا بعد از ده سال، بالاخره این فرآیند Rollback مشخص شده و داره به اتمام میرسه. 😭 کلی تصمیم مهم روی شرکت و زندگیمون گرفته بودیم که همهشون بر اساس همون دادههای کثیف بودن. 😩 تازه فهمیدیم یه «مکانیزم ماشه» هم داشته که ما ندیده بودیم! 💥 (داده اصلی تازه خودش رو نشون میده!)
حالا برو تو Queryهات همینطوری جلو هر جدول یه WITH(NOLOCK) بذار و شاد باش که همه Blockingها رو از بین بردی! 🥳 ولی کی مکانیزم ماشه کدنویسیت فعال بشه و کل شرکت رو بفرسته هوا، خدا میدونه! 🤷♂️
همینقدر دقیق و خطرناک! 😉
😁15👍10❤8
سلام دوستان
Execution Plan و Statistics در SQL Server: داستانی از فرار از زندان 😂
تصور کنین که "SQL Server" یه زندان بزرگ و پر از زندانیه. هر زندانی همون Query ماست که میخواد از زندان فرار کنه. 🏃♂️
The Execution Plan (نقشه فرار) 🗺
Execution Plan دقیقاً همون نقشهایه که مایکل اسکافیلد تو بدنش تتو کرده بود! یه نقشه دقیق و مرحله به مرحله برای فرار. این نقشه به زندانی (کوئری) میگه که چطور باید از دست نگهبانا (موتور دیتابیس) فرار کنه، از چه تونلهایی بگذره (Index Seek) و از کجا دیوارو خراب کنه (Table Scan)! 🤯
اگه مایکل اسکافیلد، نقشهاش رو خوب نمیکشید یا مثلاً به جای کندن دیوار، سعی میکرد با نگهبانها دوست بشه، قطعاً هیچوقت به خارج از زندان نمیرسید. تو دنیای ما هم اگه Execution Plan بهینه نباشه، کوئری ما یا خیلی طول میکشه یا اصلاً اجرا نمیشه. به عبارت دیگه، به جای فرار، میره سلول انفرادی! 💀
The Statistics (آمار و اطلاعات) 📊
Statistics همون اطلاعاتیه که مایکل اسکافیلد از زندان داشت. مثلاً میدونست که چند نفر زندانی تو هر بخش هستن، نگهبانها چه زمانهایی شیفتشون عوض میشه و... . این اطلاعات بهش کمک میکرد که نقشه فرارش رو دقیقتر و هوشمندانهتر بکشه.
اگه Statistics به روز نباشن، مثل این میمونه که مایکل اسکافیلد فکر کنه هنوز همون نگهبانای قبلی سر پستشونن، در حالی که همه عوض شدن و نقشههاش دیگه کار نمیکنه. نتیجه چی میشه؟ فرار شکست میخوره و نگهبانا هم بهش میخندن! 😂
نتیجه اخلاقی:
برای فرار موفق و سریع از زندان SQL Server، هم باید یه نقشه فرار (Execution Plan) بهینه داشته باشی و هم اطلاعاتت (Statistics) باید دقیق و به روز باشن. پس هر وقت کوئریت کند شد، یاد فرار از زندان مایکل اسکافیلد بیفت و برو سراغ نقشه و آمار! 🏃♂️
Execution Plan و Statistics در SQL Server: داستانی از فرار از زندان 😂
تصور کنین که "SQL Server" یه زندان بزرگ و پر از زندانیه. هر زندانی همون Query ماست که میخواد از زندان فرار کنه. 🏃♂️
The Execution Plan (نقشه فرار) 🗺
Execution Plan دقیقاً همون نقشهایه که مایکل اسکافیلد تو بدنش تتو کرده بود! یه نقشه دقیق و مرحله به مرحله برای فرار. این نقشه به زندانی (کوئری) میگه که چطور باید از دست نگهبانا (موتور دیتابیس) فرار کنه، از چه تونلهایی بگذره (Index Seek) و از کجا دیوارو خراب کنه (Table Scan)! 🤯
اگه مایکل اسکافیلد، نقشهاش رو خوب نمیکشید یا مثلاً به جای کندن دیوار، سعی میکرد با نگهبانها دوست بشه، قطعاً هیچوقت به خارج از زندان نمیرسید. تو دنیای ما هم اگه Execution Plan بهینه نباشه، کوئری ما یا خیلی طول میکشه یا اصلاً اجرا نمیشه. به عبارت دیگه، به جای فرار، میره سلول انفرادی! 💀
The Statistics (آمار و اطلاعات) 📊
Statistics همون اطلاعاتیه که مایکل اسکافیلد از زندان داشت. مثلاً میدونست که چند نفر زندانی تو هر بخش هستن، نگهبانها چه زمانهایی شیفتشون عوض میشه و... . این اطلاعات بهش کمک میکرد که نقشه فرارش رو دقیقتر و هوشمندانهتر بکشه.
اگه Statistics به روز نباشن، مثل این میمونه که مایکل اسکافیلد فکر کنه هنوز همون نگهبانای قبلی سر پستشونن، در حالی که همه عوض شدن و نقشههاش دیگه کار نمیکنه. نتیجه چی میشه؟ فرار شکست میخوره و نگهبانا هم بهش میخندن! 😂
نتیجه اخلاقی:
برای فرار موفق و سریع از زندان SQL Server، هم باید یه نقشه فرار (Execution Plan) بهینه داشته باشی و هم اطلاعاتت (Statistics) باید دقیق و به روز باشن. پس هر وقت کوئریت کند شد، یاد فرار از زندان مایکل اسکافیلد بیفت و برو سراغ نقشه و آمار! 🏃♂️
❤19👍8🤷♀1🤷♂1
سلام دوستان
📸 Snapshot Isolation تو SQL Server مثل صف بانک میمونه.
مردم عادی همه تو صف وایسادن تا کارشون راه بیفته 🧑🤝🧑.(تراکنش های Read Committed یا مدلهای دیگه ای از Isolation به غیر از Nolock یا Read Uncommitted)
ولی یهو یه آقای خیلی پولدار با حساب چند ده میلیاردی 💰 میاد، اصلا کاری به صف نداره. مستقیم میره پیش رئیس بانک 👔.
کارمندای بدبخت بانک (SQL Server) که سرشون شلوغه 🤯، با دستور رئیس یه لحظه کار همه رو ول میکنن و سریع کار این آقا رو راه میندازن.(Snapshot Isolation)
بعدشم برمیگردن برای کار همون صف و انگار نه انگار اتفاقی افتاده!(Blocking)
یعنی هرکی داره تو دنیای خودش توی صف پیش میره، ولی اون آقای میلیاردی یه نسخهی ویژه (Snapshot) داره و هیچ دعوایی هم با بقیه پیش نمیاد 😅.
نتیجه:
✅ کار همه انجام میشه.
✅ صف به هم نمیریزه.
✅ کسی که پول داره همیشه در اولویته 😁 (همون بند پ خودمون)
📸 Snapshot Isolation تو SQL Server مثل صف بانک میمونه.
مردم عادی همه تو صف وایسادن تا کارشون راه بیفته 🧑🤝🧑.(تراکنش های Read Committed یا مدلهای دیگه ای از Isolation به غیر از Nolock یا Read Uncommitted)
ولی یهو یه آقای خیلی پولدار با حساب چند ده میلیاردی 💰 میاد، اصلا کاری به صف نداره. مستقیم میره پیش رئیس بانک 👔.
کارمندای بدبخت بانک (SQL Server) که سرشون شلوغه 🤯، با دستور رئیس یه لحظه کار همه رو ول میکنن و سریع کار این آقا رو راه میندازن.(Snapshot Isolation)
بعدشم برمیگردن برای کار همون صف و انگار نه انگار اتفاقی افتاده!(Blocking)
یعنی هرکی داره تو دنیای خودش توی صف پیش میره، ولی اون آقای میلیاردی یه نسخهی ویژه (Snapshot) داره و هیچ دعوایی هم با بقیه پیش نمیاد 😅.
نتیجه:
✅ کار همه انجام میشه.
✅ صف به هم نمیریزه.
✅ کسی که پول داره همیشه در اولویته 😁 (همون بند پ خودمون)
👌15❤2
بریم بایک مثال خفن دیگه تفاوت Index Scan و Index Seek رو بهتون بگم.
🔍 Index Scan
مثل خانمی که به شوهرش شک کرده 😅
شروع میکنه همهچیزو زیر و رو کردن: 📱 موبایل، 🎒 کیف، 📂 پروندهها، حتی جیب شلوار!
یعنی از اول تا آخر همهچیزو میگرده تا بلکه یه سرنخ پیدا کنه.
🎯 Index Seek
اما این یکی خیلی هدفمنده 😎
صبح راه میافته دنبال شوهرش، صاف میره سر اصل ماجرا 👉 همون جایی که میدونه جوابش هست.(بعد همونجا پاره اش می کنه 😁 )
🔍 Index Scan
مثل خانمی که به شوهرش شک کرده 😅
شروع میکنه همهچیزو زیر و رو کردن: 📱 موبایل، 🎒 کیف، 📂 پروندهها، حتی جیب شلوار!
یعنی از اول تا آخر همهچیزو میگرده تا بلکه یه سرنخ پیدا کنه.
🎯 Index Seek
اما این یکی خیلی هدفمنده 😎
صبح راه میافته دنبال شوهرش، صاف میره سر اصل ماجرا 👉 همون جایی که میدونه جوابش هست.(بعد همونجا پاره اش می کنه 😁 )
🤣15😁5👍3❤2👌1
سلام
✍️ امروز یکی از دوستانم با مشکلی در SQL Server Always On Availability Group روبهرو شد.
بین دو سرور، کلاستر راهاندازی شده بود و حتی در سرویس SQL Server هم تیک مربوط به کلاستر خورده بود، اما هنگام ایجاد Availability Group خطای عجیبی نمایش داده میشد.
🔎 مراحل بررسی که انجام دادم:
1️⃣ اول از همه مطمئن شدم که سرویس کلاستر در حال اجراست.
2️⃣ بعد وضعیت نودها رو بررسی کردم تا هر دو در حالت Up باشند.
3️⃣ وجود File Share Witness رو هم چک کردم (اگر نباشه این خطا رو ایجاد نمیکنه، ولی بودنش همیشه بهتره).
4️⃣ در نهایت داخل SQL Server این کوئری رو اجرا کردم:
SELECT * FROM sys.dm_hadr_cluster
اینجا مشخص شد که برای سرویس، هیچ کلاستری تعریف نشده!
✅ راهحل ساده بود:
یکبار قابلیت Always On Availability Group رو از داخل SQL Server Configuration Manager غیرفعال و دوباره فعال کردم. مشکل برطرف شد.
💡 گفتم این تجربه رو اینجا هم به اشتراک بذارم، شاید به کارتون بیاد.
#Alwayson #Availability_Group #HA #DBA
✍️ امروز یکی از دوستانم با مشکلی در SQL Server Always On Availability Group روبهرو شد.
بین دو سرور، کلاستر راهاندازی شده بود و حتی در سرویس SQL Server هم تیک مربوط به کلاستر خورده بود، اما هنگام ایجاد Availability Group خطای عجیبی نمایش داده میشد.
🔎 مراحل بررسی که انجام دادم:
1️⃣ اول از همه مطمئن شدم که سرویس کلاستر در حال اجراست.
2️⃣ بعد وضعیت نودها رو بررسی کردم تا هر دو در حالت Up باشند.
3️⃣ وجود File Share Witness رو هم چک کردم (اگر نباشه این خطا رو ایجاد نمیکنه، ولی بودنش همیشه بهتره).
4️⃣ در نهایت داخل SQL Server این کوئری رو اجرا کردم:
SELECT * FROM sys.dm_hadr_cluster
اینجا مشخص شد که برای سرویس، هیچ کلاستری تعریف نشده!
✅ راهحل ساده بود:
یکبار قابلیت Always On Availability Group رو از داخل SQL Server Configuration Manager غیرفعال و دوباره فعال کردم. مشکل برطرف شد.
💡 گفتم این تجربه رو اینجا هم به اشتراک بذارم، شاید به کارتون بیاد.
#Alwayson #Availability_Group #HA #DBA
❤25👍10👌2
اگه دقت کرده باشید بچهها وقتی یه اسباببازی دستشونه، به هیچوجه ولکن نیستن. 😅
هرکی هم بخواد بگیره سریع میگه: «مال خودمه!»
تا وقتی یا بازیشون تموم بشه (🔒 Commit) یا حواسشون پرت یه چیز دیگه بشه (❌ Rollback)، اون اسباببازی رو ول نمیکنن.
Transaction توی SQL Server هم دقیقاً همین مدلیه!
وقتی بازه، رکورد یا جدول رو محکم گرفته و به هیچکس دیگه نمیده.
یا باید کارش رو درست تموم کنه (Commit) یا بیخیال بشه و همه چی رو پس بده (Rollback).
هرکی هم بخواد بگیره سریع میگه: «مال خودمه!»
تا وقتی یا بازیشون تموم بشه (🔒 Commit) یا حواسشون پرت یه چیز دیگه بشه (❌ Rollback)، اون اسباببازی رو ول نمیکنن.
Transaction توی SQL Server هم دقیقاً همین مدلیه!
وقتی بازه، رکورد یا جدول رو محکم گرفته و به هیچکس دیگه نمیده.
یا باید کارش رو درست تموم کنه (Commit) یا بیخیال بشه و همه چی رو پس بده (Rollback).
❤14👍11
توی خونههای پرجمعیت، اگه پدر و مادرها مدیریت نمیکردن، بچهها همدیگه رو تیکهپاره میکردن! 😅
قانون جنگل بود:
🍞 هرکی زودتر بیدار میشد غذا گیرش میاومد، وگرنه گشنه میموند.
🛏 هرکی زورش بیشتر بود، اتاق و تخت مال خودش میشد و بقیه باید وسط هال عشق میکردن!
اینجا بود که پدر و مادرها (و هنوز هم) وارد میشدن و منابع رو بین بچهها عادلانه تقسیم میکردن. نتیجه؟ دیگه جنگهای قبیلهای داخلی از بین میرفت و همه در صلح و صفا زندگی میکردن. ✌️
فقط اگه بچهای دست درازی میکرد، با سلاح کشندهای به نام دمپایی 👡 مواجه میشد!
حالا توی SQL Server هم Resource Governor همین نقش رو داره. ⚙️
منابع رو بین یوزرها تقسیم میکنه تا درگیر نشن. و اگه یه کوئری هم بخواد زور بگه و منابع بیشتری بگیره، با Kill شدن و خطا (همون دمپایی معروف 😁) روبهرو میشه.
شما تا حالا از Resource Governor استفاده کردین؟
قانون جنگل بود:
🍞 هرکی زودتر بیدار میشد غذا گیرش میاومد، وگرنه گشنه میموند.
🛏 هرکی زورش بیشتر بود، اتاق و تخت مال خودش میشد و بقیه باید وسط هال عشق میکردن!
اینجا بود که پدر و مادرها (و هنوز هم) وارد میشدن و منابع رو بین بچهها عادلانه تقسیم میکردن. نتیجه؟ دیگه جنگهای قبیلهای داخلی از بین میرفت و همه در صلح و صفا زندگی میکردن. ✌️
فقط اگه بچهای دست درازی میکرد، با سلاح کشندهای به نام دمپایی 👡 مواجه میشد!
حالا توی SQL Server هم Resource Governor همین نقش رو داره. ⚙️
منابع رو بین یوزرها تقسیم میکنه تا درگیر نشن. و اگه یه کوئری هم بخواد زور بگه و منابع بیشتری بگیره، با Kill شدن و خطا (همون دمپایی معروف 😁) روبهرو میشه.
شما تا حالا از Resource Governor استفاده کردین؟
❤8👍7