شاید شما هم از دوستان DBA زیاد کلمه Statistics رو شنیدین؟ یا مثلا بگن Stat هاشو Update کردم درست شد و جملاتی از این قبیل.
حالا بریم ببینیم این جذاب لعنتی چیه که تمام رفتار Optimizer بر مبنای اون رقم میخوره.
فرض کنید Optimizer واحد مدیریت شرکت شماست.
و Statistics ها هم بخش آمار و تولید دیتای شما هستند که به شما دیتا میدن تا تصمیم گیری کنید.
خوب تا اینجاش که بنظر جذاب میاد.
آماااا. کجا دعواها شروع میشه.
اونجا که شما به عنوان مدیر میاین سرکار ، فرض کنید یک ذره پاداش کارمندان عقب افتاده(البته این اتفاق در یک کشور ثانی در دنیای موازی رخ میده شما مخاطب نیستید 😉 ) واحد آمار با شما لج می کنه و به شما دیتای غلط می ده. مثلا آمار اشتباهی از فروش محصولات میده. آمار اشتباهی از تعداد ثبت درخواست ها و بازدید سایت میده. شما هم شاد و خندان براساس آمارها میاین منابع تخصیص میدین برای توسعه کار(SQL Server میاد منابع RAm, CPU , IO رو پیش بینی میکنه و تخصیص میده برای اجرای کد) بعد با یک ژست مدیرعاملی خفن که مثلا ما خیلی باحالیم میاین دستور میدین به واحدهای مختلف که با این بودجه برید اینکارهارو انجام بدین(Optimizer پلن رو تهیه می کنه و میده به Execution Engine میگه داداش برو اینو اجرا کن) حالا این واحدهای از خدا بیخبر هم میرن بودجه رو میگیرن و سعی می کنن کارو دربیارن. اگه بودجه اضافی باشه که اون وسط یک حالی هم خودشون میکنن( البته SQL Server حلال خوره و میاد میگه داداش از این همه منابع من خداوکیلی اینقدرشو استفاده کردم مابقیش رو پس آوردم. البته جسارت نباشه ها بد برداشت نکنید، از جنبه فان نگاه کنید 😁 ) اگه بودجه کم بیاد که مجبورن با همون بودجه کم ، کارو دربیارن ولی زمان بیشتری رو صرف کنن( دقیقا همین اتفاق این سمت هم میافته)
حالا چی میشه؟
آفرین اینجوری میشه که کدها ومنابع شما به فنا میره.
حالا اگه واحد آمار پاداششو گرفته باشه و شنگول باشه و آمار درستی بده. چه اتفاقی میافته؟ دقیقااا. بودجه بندی مناسب ، تخصیص منابع درست و درنهایت تخمین دقیق زمان اجرا بدون هیچگونه هدررفت منابع.
سعی کردم این مطلب رو با شوخی تلفیق کنم که درکش ساده باشه.
در پستهای بعدی تلاش می کنم بیشتر این مبحث رو باز کنم و بیشتر شمارو با رفتار درونی SQL Server آشناکنم.
پرسرعت و شاد باشین 😊
Telegram discussion Group :https://t.me/+-JqFG0ceU7JlNDA0
#Statistics
#DBA
#SQLServer_Internals
@Hamidreza_Sadeghian
حالا بریم ببینیم این جذاب لعنتی چیه که تمام رفتار Optimizer بر مبنای اون رقم میخوره.
فرض کنید Optimizer واحد مدیریت شرکت شماست.
و Statistics ها هم بخش آمار و تولید دیتای شما هستند که به شما دیتا میدن تا تصمیم گیری کنید.
خوب تا اینجاش که بنظر جذاب میاد.
آماااا. کجا دعواها شروع میشه.
اونجا که شما به عنوان مدیر میاین سرکار ، فرض کنید یک ذره پاداش کارمندان عقب افتاده(البته این اتفاق در یک کشور ثانی در دنیای موازی رخ میده شما مخاطب نیستید 😉 ) واحد آمار با شما لج می کنه و به شما دیتای غلط می ده. مثلا آمار اشتباهی از فروش محصولات میده. آمار اشتباهی از تعداد ثبت درخواست ها و بازدید سایت میده. شما هم شاد و خندان براساس آمارها میاین منابع تخصیص میدین برای توسعه کار(SQL Server میاد منابع RAm, CPU , IO رو پیش بینی میکنه و تخصیص میده برای اجرای کد) بعد با یک ژست مدیرعاملی خفن که مثلا ما خیلی باحالیم میاین دستور میدین به واحدهای مختلف که با این بودجه برید اینکارهارو انجام بدین(Optimizer پلن رو تهیه می کنه و میده به Execution Engine میگه داداش برو اینو اجرا کن) حالا این واحدهای از خدا بیخبر هم میرن بودجه رو میگیرن و سعی می کنن کارو دربیارن. اگه بودجه اضافی باشه که اون وسط یک حالی هم خودشون میکنن( البته SQL Server حلال خوره و میاد میگه داداش از این همه منابع من خداوکیلی اینقدرشو استفاده کردم مابقیش رو پس آوردم. البته جسارت نباشه ها بد برداشت نکنید، از جنبه فان نگاه کنید 😁 ) اگه بودجه کم بیاد که مجبورن با همون بودجه کم ، کارو دربیارن ولی زمان بیشتری رو صرف کنن( دقیقا همین اتفاق این سمت هم میافته)
حالا چی میشه؟
آفرین اینجوری میشه که کدها ومنابع شما به فنا میره.
حالا اگه واحد آمار پاداششو گرفته باشه و شنگول باشه و آمار درستی بده. چه اتفاقی میافته؟ دقیقااا. بودجه بندی مناسب ، تخصیص منابع درست و درنهایت تخمین دقیق زمان اجرا بدون هیچگونه هدررفت منابع.
سعی کردم این مطلب رو با شوخی تلفیق کنم که درکش ساده باشه.
در پستهای بعدی تلاش می کنم بیشتر این مبحث رو باز کنم و بیشتر شمارو با رفتار درونی SQL Server آشناکنم.
پرسرعت و شاد باشین 😊
Telegram discussion Group :https://t.me/+-JqFG0ceU7JlNDA0
#Statistics
#DBA
#SQLServer_Internals
@Hamidreza_Sadeghian
Telegram
SQL Server
ُSQL Server Discussion Group (Farsi)
Juniors of SQL Server Group : PM to @Hamidreza_Sadeghian
Juniors of SQL Server Group : PM to @Hamidreza_Sadeghian
👍29❤4🤔2🤨1