سلام خدمت دوستان عزیزم
امیدوارم حالتون عالی باشه
یکی از مسائل مهمی که در کدنویسی ها باید رعایت بشه نوشتن صحیح کدها مخصوصا شرط ها هست که به SQL Server کمک کنه تا از ایندکس هایی که بر روی فیلدها قرار داره استفاده بهینه بکنه.
در کتاب آقای Itzik Ben-Gan بهش می گن SARGable Query . در این مقاله من به این موضوع پرداختم و با مثال در خصوصش توضیح دادم
امیدوارم مفید واقع بشه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
https://data-club.ir/sql-server/performance/sargable-query-%da%86%db%8c%d8%b3%d8%aa%d8%9f
امیدوارم حالتون عالی باشه
یکی از مسائل مهمی که در کدنویسی ها باید رعایت بشه نوشتن صحیح کدها مخصوصا شرط ها هست که به SQL Server کمک کنه تا از ایندکس هایی که بر روی فیلدها قرار داره استفاده بهینه بکنه.
در کتاب آقای Itzik Ben-Gan بهش می گن SARGable Query . در این مقاله من به این موضوع پرداختم و با مثال در خصوصش توضیح دادم
امیدوارم مفید واقع بشه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
https://data-club.ir/sql-server/performance/sargable-query-%da%86%db%8c%d8%b3%d8%aa%d8%9f
👍21❤3🔥2👏2👌1
سلام خدمت دوستان عزیزم
امیدوارم که عالی عالی باشین
یکی از چالش هایی که کدهای ad hoc ایجاد می کند، ایجاد Plan به ازای هر کوئری هست که گاها ممکن هست حتی فقط کد مذکور یکبار ایجاد شود. که این امر میتونه در هدر رفتن فضای Plan cache تاثیر داشته باشه.
در این مقاله من در خصوص این موضوع صحبت کردم.
امیدوارم مفید واقع بشه
شاد باشین و شکر گزار
https://data-club.ir/sql-server/performance/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%da%af%d8%b2%db%8c%d9%86%d9%87-optimize-for-ad-hoc-workload
امیدوارم که عالی عالی باشین
یکی از چالش هایی که کدهای ad hoc ایجاد می کند، ایجاد Plan به ازای هر کوئری هست که گاها ممکن هست حتی فقط کد مذکور یکبار ایجاد شود. که این امر میتونه در هدر رفتن فضای Plan cache تاثیر داشته باشه.
در این مقاله من در خصوص این موضوع صحبت کردم.
امیدوارم مفید واقع بشه
شاد باشین و شکر گزار
https://data-club.ir/sql-server/performance/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%da%af%d8%b2%db%8c%d9%86%d9%87-optimize-for-ad-hoc-workload
❤13👌1
سلام خدمت دوستان عزیزم
یکی از مسائلی که موقع مانیتور کردن دیتابیس ها خیلی اهمیت داره ، این هست که شما بدونید تقدم و تاخر اجرای کدها به چه شکلی هست. فرض کنید شما در حال مانیتور کردن کدهای پرهزینه هستید.
ممکنه SP ها یا توابع تودرتویی اجرا بشه . خیلی اهمیت داره بدونید که این کدها به چه ترتیب و ساختاری اجرا شدند.
با استفاده ازExtended Events ها شما میتونید این مساله رو بهش برسید. دراین مقاله به این موضوع می پردازم.
https://data-club.ir/sql-server/performance/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%da%af%d8%b2%db%8c%d9%86%d9%87-causality-tracking-%d8%af%d8%b1-extended-events
شاد باشین و شکرگزارحمیدرضا صادقیان@hamidreza_Sadeghian
یکی از مسائلی که موقع مانیتور کردن دیتابیس ها خیلی اهمیت داره ، این هست که شما بدونید تقدم و تاخر اجرای کدها به چه شکلی هست. فرض کنید شما در حال مانیتور کردن کدهای پرهزینه هستید.
ممکنه SP ها یا توابع تودرتویی اجرا بشه . خیلی اهمیت داره بدونید که این کدها به چه ترتیب و ساختاری اجرا شدند.
با استفاده ازExtended Events ها شما میتونید این مساله رو بهش برسید. دراین مقاله به این موضوع می پردازم.
https://data-club.ir/sql-server/performance/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%da%af%d8%b2%db%8c%d9%86%d9%87-causality-tracking-%d8%af%d8%b1-extended-events
شاد باشین و شکرگزارحمیدرضا صادقیان@hamidreza_Sadeghian
data-club
بررسی گزینه Causality Tracking در Extended Events
یکی از مسائلی که موقع مانیتور کردن دیتابیس ها خیلی اهمیت داره ، این هست که شما بدونید تقدم و تاخر اجرای کدها به چه شکلی هست. فرض کنید شما در حال مانیتور کردن کدهای پرهزینه هستید. ممکنه SP ها یا توابع تودرتویی اجرا بشه . خیلی اهمیت داره بدونید که این کدها…
👌10👍5❤4🔥2
سلام خدمت دوستان عزیزم
امیدوارم که عالی عالی باشین
سوالات زیادی از من در مورد نحوه همکاری میشه ، گفتم در این پست به صورت عمومی اعلام کنم .
خدمت شما عرض کنم که من به سه صورت در حال حاضر با شرکتها قرارداد همکاری می بندم.
1- صورت اول به صورت ماهانه هست ، به این صورت که براساس تعداد سرورها و تعداد دیتابیس ها و کارهایی که باید انجام بشه ، یک رقمی رو باهم توافق میکنیم و یک حداکثر زمانی هم در قرارداد قید میشه. من در خلال هر ماه سرورهارو پایش میکنم رسیدگی می کنم و بررسی می کنم و اگه چالشی ببینم اطلاع رسانی می کنم و راه حلش هم ارائه میدم که به چه صورت میشه مسائل رخ داده رو حل کرد. کارهای ادمینی هم تماما به عهده بنده و تیم بنده هست.
همچنین در این قرارداد مواردی که مشخص میشه رو در خلال آموزش هم توضیح میدم که چیکار کنیم دیگه اون مساله رخ نده.
2- صورت دوم به صورت ساعتی هست. یک رقم ساعتی رو باهم توافق می کنیم و یک قرارداد می بندیم. براساس ساعاتی که من با شما همکاری دارم ساعات رو اعلام می کنم و براساس رقم توافق شده پرداخت انجام میشه. در این حالت تا زمانی که کاری به من ارجاع نشه من هیچ کاری انجام نخواهم داد.
3- صورت سوم هم آموزش هست که براساس یک سیلابس مشخص آموزش های مورد نظر رو انجام میدم.
در صورتی که فکر می کنید با هرکدوم از روشهای فوق من میتونم کمکی بهتون بکنم ، با کمال میل در خدمتتون هستم.
شاد باشین وشکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
امیدوارم که عالی عالی باشین
سوالات زیادی از من در مورد نحوه همکاری میشه ، گفتم در این پست به صورت عمومی اعلام کنم .
خدمت شما عرض کنم که من به سه صورت در حال حاضر با شرکتها قرارداد همکاری می بندم.
1- صورت اول به صورت ماهانه هست ، به این صورت که براساس تعداد سرورها و تعداد دیتابیس ها و کارهایی که باید انجام بشه ، یک رقمی رو باهم توافق میکنیم و یک حداکثر زمانی هم در قرارداد قید میشه. من در خلال هر ماه سرورهارو پایش میکنم رسیدگی می کنم و بررسی می کنم و اگه چالشی ببینم اطلاع رسانی می کنم و راه حلش هم ارائه میدم که به چه صورت میشه مسائل رخ داده رو حل کرد. کارهای ادمینی هم تماما به عهده بنده و تیم بنده هست.
همچنین در این قرارداد مواردی که مشخص میشه رو در خلال آموزش هم توضیح میدم که چیکار کنیم دیگه اون مساله رخ نده.
2- صورت دوم به صورت ساعتی هست. یک رقم ساعتی رو باهم توافق می کنیم و یک قرارداد می بندیم. براساس ساعاتی که من با شما همکاری دارم ساعات رو اعلام می کنم و براساس رقم توافق شده پرداخت انجام میشه. در این حالت تا زمانی که کاری به من ارجاع نشه من هیچ کاری انجام نخواهم داد.
3- صورت سوم هم آموزش هست که براساس یک سیلابس مشخص آموزش های مورد نظر رو انجام میدم.
در صورتی که فکر می کنید با هرکدوم از روشهای فوق من میتونم کمکی بهتون بکنم ، با کمال میل در خدمتتون هستم.
شاد باشین وشکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
👍18❤1
سلام دوستان عزیزم.
امیدوارم عالی عالی باشین.
من میخوام روزی یک ساعت به صورت رایگان در حوزه SQL Server مشاوره رایگان بدم.
اشخاص یا شرکتهایی که قصد دارن باهم صحبتی داشته باشیم به من پیام بدن. بعد از صحبت های اولیه حتما یک جلسه آنلاین تنظیم خواهم کرد و باهم صحبت می کنیم.
فقط نکات زیر رو حتما رعایت کنید :
۱- به دلیل اینکه تمایل دارم افراد بیشتری از این فضا استفاده کنند ، برای هر شخص یا سازمان این مشاوره فقط یک بار به صورت رایگان خواهد بود.
۲- خواهش میکنم صورت مساله کاملا شفاف باشه و بدونم در خصوص چه موضوعی قرار هست صحبت کنیم.
۳- زمان بندی که باهم قرار میدیم رو حتما رعایت کنید.
شاد باشین و شکرگزار
@Hamidreza_Sadeghian
امیدوارم عالی عالی باشین.
من میخوام روزی یک ساعت به صورت رایگان در حوزه SQL Server مشاوره رایگان بدم.
اشخاص یا شرکتهایی که قصد دارن باهم صحبتی داشته باشیم به من پیام بدن. بعد از صحبت های اولیه حتما یک جلسه آنلاین تنظیم خواهم کرد و باهم صحبت می کنیم.
فقط نکات زیر رو حتما رعایت کنید :
۱- به دلیل اینکه تمایل دارم افراد بیشتری از این فضا استفاده کنند ، برای هر شخص یا سازمان این مشاوره فقط یک بار به صورت رایگان خواهد بود.
۲- خواهش میکنم صورت مساله کاملا شفاف باشه و بدونم در خصوص چه موضوعی قرار هست صحبت کنیم.
۳- زمان بندی که باهم قرار میدیم رو حتما رعایت کنید.
شاد باشین و شکرگزار
@Hamidreza_Sadeghian
❤37👍12👏3🤩1👌1
سلام دوستان عزیزم
امیدوارم که عالی عالی باشین.
چندروز پیش در حین مانیتور کردن یک مرکز بیمارستانی ، دیدم یک کد بسیار پرهزینه داره اجرا میشه. زمان اجرای این کد تقریبا دو دقیقه بود و بیش از ۱۰ میلیون Logical Read داشت.
ساختار کدش به این شکل بود :
Select * from
(
select
join ....
)
where id=888
من دیدم اول داره join ها لحاظ میشه و چون Inner join بود اومدم اون شرط بیرونی رو به داخل و درون خود Join انتقال دادم. (دقت کنیدا گفتم Inner join بود. در Outer join این نتیجه تغییر می کنه)
با اینکار باعث شد زمان اجرای کد از ۲ دقیقه به ۳۰۰ میلی ثانیه کاهش پیدا کنه و Logical Read بیش از ۱۰ میلیون به ۵۰ کاهش پیدا کرد.
راه اندازی سامانه مانیتورینگ بسیار حائز اهمیته.
خیلی وقتها خیلی تغییرات رو هم میشه با اصلاح ساختار ایندکس ها انجام داد و بهبودی های خوبی رو حاصل کرد.
در اکثر سیستم هایی که من دیدم در خیلی از جداول عملیاتی حجم ایندکس های زیادی هستند که یا تکراری هستن یا بدون استفاده . که با حذف اونها هم حجم بکاپ ها به شدت کاهش پیدا می کنه. هم سرعت کدها افزایش پیدا می کنه هم میزان Blocking ها کم میشه.
نکته بعد اینکه اگر مانیتورینگ هم راه اندازی کردین باید بدونید علائم ها چی هستند تا بتونید درست تفسیر کنید.
سامانه مانیتورینگ مثل یک برگ آزمایش میمونه. صرفا با سرچ یک کلمه در اینترنت نمیشه به نتایج مثبتی رسید.
امیدوارم این مساله دید خوبی بهتون در خصوص مانیتورینگ بده.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
امیدوارم که عالی عالی باشین.
چندروز پیش در حین مانیتور کردن یک مرکز بیمارستانی ، دیدم یک کد بسیار پرهزینه داره اجرا میشه. زمان اجرای این کد تقریبا دو دقیقه بود و بیش از ۱۰ میلیون Logical Read داشت.
ساختار کدش به این شکل بود :
Select * from
(
select
join ....
)
where id=888
من دیدم اول داره join ها لحاظ میشه و چون Inner join بود اومدم اون شرط بیرونی رو به داخل و درون خود Join انتقال دادم. (دقت کنیدا گفتم Inner join بود. در Outer join این نتیجه تغییر می کنه)
با اینکار باعث شد زمان اجرای کد از ۲ دقیقه به ۳۰۰ میلی ثانیه کاهش پیدا کنه و Logical Read بیش از ۱۰ میلیون به ۵۰ کاهش پیدا کرد.
راه اندازی سامانه مانیتورینگ بسیار حائز اهمیته.
خیلی وقتها خیلی تغییرات رو هم میشه با اصلاح ساختار ایندکس ها انجام داد و بهبودی های خوبی رو حاصل کرد.
در اکثر سیستم هایی که من دیدم در خیلی از جداول عملیاتی حجم ایندکس های زیادی هستند که یا تکراری هستن یا بدون استفاده . که با حذف اونها هم حجم بکاپ ها به شدت کاهش پیدا می کنه. هم سرعت کدها افزایش پیدا می کنه هم میزان Blocking ها کم میشه.
نکته بعد اینکه اگر مانیتورینگ هم راه اندازی کردین باید بدونید علائم ها چی هستند تا بتونید درست تفسیر کنید.
سامانه مانیتورینگ مثل یک برگ آزمایش میمونه. صرفا با سرچ یک کلمه در اینترنت نمیشه به نتایج مثبتی رسید.
امیدوارم این مساله دید خوبی بهتون در خصوص مانیتورینگ بده.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
👍56❤5👌5👏4
سلام خدمت دوستان عزیزم
امیدوارم عالی عالی باشین
چند وقته یک خطایی رو بر روی سرور دارم مشاهده می کنم که پیداکردن و حلش خیلی برای من سخت شده بود و اطلاعات درستی ازش نداشتم
توی این مقاله کل فرآیندی که طی کردم رو نوشتم و باهاتون به اشتراک گذاشتم
امیدوارم مفید واقع بشه
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
https://data-club.ir/sql-server/sql-and-t-sql/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d8%ae%d8%b7%d8%a7%db%8c-17813
امیدوارم عالی عالی باشین
چند وقته یک خطایی رو بر روی سرور دارم مشاهده می کنم که پیداکردن و حلش خیلی برای من سخت شده بود و اطلاعات درستی ازش نداشتم
توی این مقاله کل فرآیندی که طی کردم رو نوشتم و باهاتون به اشتراک گذاشتم
امیدوارم مفید واقع بشه
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
https://data-club.ir/sql-server/sql-and-t-sql/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d8%ae%d8%b7%d8%a7%db%8c-17813
data-club
بررسی خطای 17813
بررسی خطای 17813 The requested service has been stopped or disabled and is unavailable at this time.
❤17👍8👏4
سلام خدمت دوستان عزیزم
امیدوارم که عالی عالی باشین
در این مقاله قصد داریم بهتون یاد بدیم چطوری از Python در SSIS استفاده کنیم. با این روش شما میتونید از قدرت کدنویسی Python نیز بهره ببرید.
شاد باشین و شکرگزار
مرتضی ناصری
https://data-club.ir/sql-server/sql-and-t-sql/%da%86%da%af%d9%88%d9%86%d9%87-%d8%af%d8%b1-ssis-%d8%a7%d8%b2-%da%a9%d8%af-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85
امیدوارم که عالی عالی باشین
در این مقاله قصد داریم بهتون یاد بدیم چطوری از Python در SSIS استفاده کنیم. با این روش شما میتونید از قدرت کدنویسی Python نیز بهره ببرید.
شاد باشین و شکرگزار
مرتضی ناصری
https://data-club.ir/sql-server/sql-and-t-sql/%da%86%da%af%d9%88%d9%86%d9%87-%d8%af%d8%b1-ssis-%d8%a7%d8%b2-%da%a9%d8%af-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%da%a9%d9%86%db%8c%d9%85
data-club
چگونه در SSIS از کد های پایتون استفاده کنیم ؟
"چگونه از Python در SSIS استفاده کنیم؟ با اجرای اسکریپتهای Python از طریق Task Process Execute میتوان عملیات مختلفی را در SSIS به کمک Python انجام داد.
👍15❤6
سلام خدمت دوستان عزیزم
امیدوارم حالتون عالی باشه
دوباره تصمیم دارم برای ده شرکت به صورت رایگان پایش بانک اطلاعاتی SQL Server رو راه اندازی کنم.
این پایش توسط شخص بنده انجام خواهد شد و وابسته به هیچ شرکتی نمی باشد.
هدف از این پایش ، شناسایی چالش های Performance در SQL Server می باشد.
شرکتها و مراکزی که در این خصوص چالش دارند ، بامن صحبت کنند که یک وقتی رو باهم تنظیم کنیم و اینکارو انجام بدیم.
بعد از این پایش ، من در قالب یک گزارش مطالب رو خدمتتون ارائه میدم.
اگر تمایل داشتید در زمینه رفعش هم میتونیم باهم صحبت کنیم.
در غیر اینصورت خودتون میتونید برای رفعش اقدام کنید.
امیدوارم که این حرکت بتونه برای کسانی که چالش های جدی Performance در لایه دیتابیس دارند کمک کننده باشه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
امیدوارم حالتون عالی باشه
دوباره تصمیم دارم برای ده شرکت به صورت رایگان پایش بانک اطلاعاتی SQL Server رو راه اندازی کنم.
این پایش توسط شخص بنده انجام خواهد شد و وابسته به هیچ شرکتی نمی باشد.
هدف از این پایش ، شناسایی چالش های Performance در SQL Server می باشد.
شرکتها و مراکزی که در این خصوص چالش دارند ، بامن صحبت کنند که یک وقتی رو باهم تنظیم کنیم و اینکارو انجام بدیم.
بعد از این پایش ، من در قالب یک گزارش مطالب رو خدمتتون ارائه میدم.
اگر تمایل داشتید در زمینه رفعش هم میتونیم باهم صحبت کنیم.
در غیر اینصورت خودتون میتونید برای رفعش اقدام کنید.
امیدوارم که این حرکت بتونه برای کسانی که چالش های جدی Performance در لایه دیتابیس دارند کمک کننده باشه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
👍17👏5
سلام خدمت دوستان عزیزم
امیدوارم که عالی عالی باشین
در این مقاله سعی کردم نحوه عمیق شدن در زبان T-SQL رو توضیح بدم.
همچنین منابع مورد نیاز هم معرفی کردم.
امیدوارم مفید واقع بشه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
https://data-club.ir/sql-server/sql-and-t-sql/%db%8c%d8%a7%d8%af%da%af%db%8c%d8%b1%db%8c-%d8%b9%d9%85%db%8c%d9%82-t-sql
امیدوارم که عالی عالی باشین
در این مقاله سعی کردم نحوه عمیق شدن در زبان T-SQL رو توضیح بدم.
همچنین منابع مورد نیاز هم معرفی کردم.
امیدوارم مفید واقع بشه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
https://data-club.ir/sql-server/sql-and-t-sql/%db%8c%d8%a7%d8%af%da%af%db%8c%d8%b1%db%8c-%d8%b9%d9%85%db%8c%d9%82-t-sql
❤16👍2
سلام خدمت دوستان عزیزم
امیدوارم که عالی عالی باشین
در این مقاله قصد داریم، در خصوص اینکه چطوری از تابع SUMMARIZE در DAX استفاده کنیم تا میانگین مقادیر تسهیم نشده با چند ریزدانگی مختلف را محاسبه کنیم.
امیدوارم مفید واقع بشه
شاد باشین و شکرگزار
مهیار محمدی
@kmoh1368
https://data-club.ir/sql-server/ssas/%d9%85%d8%ad%d8%a7%d8%b3%d8%a8%d9%87-%d9%85%db%8c%d8%a7%d9%86%da%af%db%8c%d9%86-%d9%85%d9%82%d8%a7%d8%af%db%8c%d8%b1-%d8%aa%d8%b3%d9%87%db%8c%d9%85-%d9%86%d8%b4%d8%af%d9%87-%d8%af%d8%b1-%d8%ac%d8%af
امیدوارم که عالی عالی باشین
در این مقاله قصد داریم، در خصوص اینکه چطوری از تابع SUMMARIZE در DAX استفاده کنیم تا میانگین مقادیر تسهیم نشده با چند ریزدانگی مختلف را محاسبه کنیم.
امیدوارم مفید واقع بشه
شاد باشین و شکرگزار
مهیار محمدی
@kmoh1368
https://data-club.ir/sql-server/ssas/%d9%85%d8%ad%d8%a7%d8%b3%d8%a8%d9%87-%d9%85%db%8c%d8%a7%d9%86%da%af%db%8c%d9%86-%d9%85%d9%82%d8%a7%d8%af%db%8c%d8%b1-%d8%aa%d8%b3%d9%87%db%8c%d9%85-%d9%86%d8%b4%d8%af%d9%87-%d8%af%d8%b1-%d8%ac%d8%af
data-club
محاسبه میانگین مقادیر تسهیم نشده به وسیله DAX
استفاده از تابع SUMMARIZE در DAX جهت محاسبه میانگین مقادیر تسهیم نشده با چند ریزدانگی مختلف
❤8👍6👌1
سلام خدمت دوستان عزیزم
امیدوارم که عالی عالی باشین
یک دوره Performance tuning رو دارم با یکی از شرکتها برگزار می کنم، تا اینجای کار در خصوص ساختارهای Query Optimization و یک توضیح مختصری در خصوص Execution Plan ها دادم و همچنین در خصوص
Logical processing , set based , declarative thinking و Statistics ها صحبت کردم.
اتفاقی که افتاده جالبه. من هنوز اصلا در خصوص index ها و بررسی چالش های کدها و اشکالات کدها صحبت نکردم.
دیروز یکی از دوستان میگفت با همین مطالبی که گفتیم یک کدی رو بهبود داده و زمانش از ۲۰ دقیقه رسیده به ۱۵ ثانیه.
و یکی دیگه هم میگفت زمان اجرای یک کد از ۴۵ دقیقه رسیده به ۴ دقیقه.
برام این نکته جالبه که فقط دوستان متوجه شدند که SQL Server چطوری کار میکنه و چطوری کدی رو پردازش می کنه.
با این طرز تفکر تونستند یک بازبینی روی کدهاشون انجام بدن و این بهبودها رقم بخوره.
این مساله خیلی اهمیت داره که با هرزبانی که کدمینویسیم ، بدونیم چطوری داره به کد ما نگاه می کنه ، چطوری کد مارو اجرا می کنه ، چطوری منابع بهش اختصاص میده. همین باعث میشه طرز فکر ماهم نسبت به اون زبان اصلاح بشه و قطعا بهبودهای خیلی خوبی رو در کدنویسی ایجاد می کنه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
امیدوارم که عالی عالی باشین
یک دوره Performance tuning رو دارم با یکی از شرکتها برگزار می کنم، تا اینجای کار در خصوص ساختارهای Query Optimization و یک توضیح مختصری در خصوص Execution Plan ها دادم و همچنین در خصوص
Logical processing , set based , declarative thinking و Statistics ها صحبت کردم.
اتفاقی که افتاده جالبه. من هنوز اصلا در خصوص index ها و بررسی چالش های کدها و اشکالات کدها صحبت نکردم.
دیروز یکی از دوستان میگفت با همین مطالبی که گفتیم یک کدی رو بهبود داده و زمانش از ۲۰ دقیقه رسیده به ۱۵ ثانیه.
و یکی دیگه هم میگفت زمان اجرای یک کد از ۴۵ دقیقه رسیده به ۴ دقیقه.
برام این نکته جالبه که فقط دوستان متوجه شدند که SQL Server چطوری کار میکنه و چطوری کدی رو پردازش می کنه.
با این طرز تفکر تونستند یک بازبینی روی کدهاشون انجام بدن و این بهبودها رقم بخوره.
این مساله خیلی اهمیت داره که با هرزبانی که کدمینویسیم ، بدونیم چطوری داره به کد ما نگاه می کنه ، چطوری کد مارو اجرا می کنه ، چطوری منابع بهش اختصاص میده. همین باعث میشه طرز فکر ماهم نسبت به اون زبان اصلاح بشه و قطعا بهبودهای خیلی خوبی رو در کدنویسی ایجاد می کنه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
👌27❤13👍9👏8
سلام خدمت دوستان عزیزم
امیدوارم که عالی عالی باشین
امروز در یک مرکز دانشگاهی که مدیریت دیتابیس هاشو به عهده دارم ،یک کندی روی یکی از گزارشات رخ داده بود. حجم دیتابیس در این مرکز ۲ ترابایته و یک دیتابیس جداگانه هم برای فایل داریم که اونم ۲ ترابایته.
من کد فوق رو گرفتم و اول کار اومدم Estimated Plan اونو بررسی کردم دیدم Estimate row number ها رو اکثرا ۱ زده. ولی وقتی کد رو اجرا می کنی بیش از ۲۰ دقیقه طول می کشه.
کد رو اجرا کردم ولی Live execution planرو هم فعال کردم ببینم چالشش کجاست. دیدم دقیقا همون ایندکس هایی که Estimate row اون رو ۱ زده بود داره کلی رکورد رو میخونه. رفتم statistics اونو بررسی کردم و با Fullscan اونو آپدیت کردم.
با اینکار کد فوق زیر یک ثانیه اجرا شد و کلا مشکل حل شد. (البته پلن جدا برای بروزرسانی Statistics ها داریم به دلایلی اجرا نشده بود و باعث این اتفاق شده بود)
یک توضیح مختصر میخوام در خصوص Statistics ها بدم.
در واقع نحوه توزیع داده ها و همچنین Density داده ها رو براساس فیلد مورد نظر داره نشون میده. زمانی که یک Plan قراره ساخته بشه براساس فیلدهایی که در شرط ها شرکت کرده میاد Statistics مربوط به اون فیلدها رو انتخاب میکنه و توزیع داده ها و میزان داده هایی که قراره باهاش ارتباط برقرار کنه رو استخراج می کنه و براساس اون میاد پلن میچینه. حالا اگه این جدول بروز نباشه و آمارو ارقامش دقیق نباشه عملا باعث کندی عجیب و غریبی میشه.
مثل یک مدیری هست که در شرکت قراره نقشه راه شرکت رو بکشه و کسی که داره بهش اطلاعات میده بیاد بهش اطلاعات غلط بده. مسلما مدیر مسیری که انتخاب میکنه خیلی پرهزینه تر و پر از اشکال خواهدبود. ولی اگر اطلاعات دقیقی رو دریافت کنه یک مسیر درست رو میتونه انتخاب کنه که هزینه بسیار کمی داشته باشه و راحتتر به هدفشون برسه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@hamidreza_Sadeghian
#statistics
#ExecutionPlan
#PerformanceTuning
امیدوارم که عالی عالی باشین
امروز در یک مرکز دانشگاهی که مدیریت دیتابیس هاشو به عهده دارم ،یک کندی روی یکی از گزارشات رخ داده بود. حجم دیتابیس در این مرکز ۲ ترابایته و یک دیتابیس جداگانه هم برای فایل داریم که اونم ۲ ترابایته.
من کد فوق رو گرفتم و اول کار اومدم Estimated Plan اونو بررسی کردم دیدم Estimate row number ها رو اکثرا ۱ زده. ولی وقتی کد رو اجرا می کنی بیش از ۲۰ دقیقه طول می کشه.
کد رو اجرا کردم ولی Live execution planرو هم فعال کردم ببینم چالشش کجاست. دیدم دقیقا همون ایندکس هایی که Estimate row اون رو ۱ زده بود داره کلی رکورد رو میخونه. رفتم statistics اونو بررسی کردم و با Fullscan اونو آپدیت کردم.
با اینکار کد فوق زیر یک ثانیه اجرا شد و کلا مشکل حل شد. (البته پلن جدا برای بروزرسانی Statistics ها داریم به دلایلی اجرا نشده بود و باعث این اتفاق شده بود)
یک توضیح مختصر میخوام در خصوص Statistics ها بدم.
در واقع نحوه توزیع داده ها و همچنین Density داده ها رو براساس فیلد مورد نظر داره نشون میده. زمانی که یک Plan قراره ساخته بشه براساس فیلدهایی که در شرط ها شرکت کرده میاد Statistics مربوط به اون فیلدها رو انتخاب میکنه و توزیع داده ها و میزان داده هایی که قراره باهاش ارتباط برقرار کنه رو استخراج می کنه و براساس اون میاد پلن میچینه. حالا اگه این جدول بروز نباشه و آمارو ارقامش دقیق نباشه عملا باعث کندی عجیب و غریبی میشه.
مثل یک مدیری هست که در شرکت قراره نقشه راه شرکت رو بکشه و کسی که داره بهش اطلاعات میده بیاد بهش اطلاعات غلط بده. مسلما مدیر مسیری که انتخاب میکنه خیلی پرهزینه تر و پر از اشکال خواهدبود. ولی اگر اطلاعات دقیقی رو دریافت کنه یک مسیر درست رو میتونه انتخاب کنه که هزینه بسیار کمی داشته باشه و راحتتر به هدفشون برسه.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@hamidreza_Sadeghian
#statistics
#ExecutionPlan
#PerformanceTuning
👍36❤6👏3
سلام خدمت دوستان عزیزم
امیدوارم که عالی عالی باشین
میخوام در این پست اشاره ای کنم به اینکه اساسا DBA چیست؟ (ببخشید کیست). 😁
بیاین اینجوری نگاه کنید که یک DBA مثل یک کارآگاه می مونه.
حالا چرا کارآگاه؟
به خاطر اینکه دائما باید در مانیتورینگ رفتارهای مختلف رو بررسی کنه و اگه جایی یک چیز مشکوکی دید اینقدر بره دنبالش تا ببینه سرمنشا اون چیه و چرا رخ داده.
حالا بریم یک مثال واقعی براتون بزنم
چند روز پیش بکاپ هارو بررسی میکردم و میدیدم که حجمش خیلی عجیب غریب داره میره بالا. مثلا توی یک روز دیدم ۶۰ گیگابایت بکاپ Diff ما شده در صورتی که شب قبلش ما Full backup داشتیم. توی این چند روز من جداول رو نگاه میکردم ،اول شک کردم به حجم داده های جداول شاید یک دفعه زیاد شده. بعد از این رشد عجیب غریب نگاه کردم دیدم داده ها تغییر محسوسی نداشتن ولی حجم بکاپ این دفعه ۱۵ گیگابایت باز بهش اضافه شده. به فایل LOG شک کردم و اونو بررسی کردم دیدم بله یک دفعه حجمش شده ۲۰۰ گیگابایت. رفتم سراغ دلیل این مساله.
اول Log backupها رو بررسی کردم دیدم همش درسته.
بعد رفتم دستور زیر رو اجرا کردم
Select Name , Log_reuse_wait_desc from sys.databases
دراین کد بیان میکنه که Log File شما Wait چه مساله ای هست که رشد می کنه. دیدم که در این فیلد نوشته Replication. ماهم که Replication نداشتیم ولی CDC رو راه اندازی کرده بودم.
جاب CDC رو بررسی کردم دیدم که Stop شده و به دلیل اینکه Alarm ها خیلی زیاد بوده در لاگ من گم شده و ندیدمش. اونو Start کردم و این حجم Used فایل LDF کاهش پیدا کرد. به دلیل اینکه فایل LDF من Fragment هم شده بود اومدم فایل LDF رو Shrink کردم و حجمش رو کاهش دادم روی ۲۰ گیگابایت و Fragment اون هم مرتفع شد( به دلیل اینکه قبلا هم روی این حجم تنظیمش کرده بودم)
یکی از دلایل Fragment بودن فایل LDF تعداد بالای VLF هاست. و این VLF ها به ازای هرمرتبه ای که یک Grow در فایل LDF رخ میده اضافه میشن.
این دفعه که Full backup گرفتم حجمش تقریبا ۲۰ گیگابایت کاهش پیدا کرد و به عدد نرمال قبلی رسیدم.
کسی که DBA هست مرتبا باید همه این موارد رو به صورت روزانه چک کنه و کنترل کنه. حتما باید سیستم مانیتورینگ باشه. حتما باید سیستم Alarming داشته باشین.
و حتما باید Error log ها رو مدیریت کنید که یک دفعه مثل من حجم Error های بدون استفاده باعث نشه که چنین خطاهای مهمی رو نبینین.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@hamidreza_Sadeghian
#DBA
#Monitoring
#Database_Backup
امیدوارم که عالی عالی باشین
میخوام در این پست اشاره ای کنم به اینکه اساسا DBA چیست؟ (ببخشید کیست). 😁
بیاین اینجوری نگاه کنید که یک DBA مثل یک کارآگاه می مونه.
حالا چرا کارآگاه؟
به خاطر اینکه دائما باید در مانیتورینگ رفتارهای مختلف رو بررسی کنه و اگه جایی یک چیز مشکوکی دید اینقدر بره دنبالش تا ببینه سرمنشا اون چیه و چرا رخ داده.
حالا بریم یک مثال واقعی براتون بزنم
چند روز پیش بکاپ هارو بررسی میکردم و میدیدم که حجمش خیلی عجیب غریب داره میره بالا. مثلا توی یک روز دیدم ۶۰ گیگابایت بکاپ Diff ما شده در صورتی که شب قبلش ما Full backup داشتیم. توی این چند روز من جداول رو نگاه میکردم ،اول شک کردم به حجم داده های جداول شاید یک دفعه زیاد شده. بعد از این رشد عجیب غریب نگاه کردم دیدم داده ها تغییر محسوسی نداشتن ولی حجم بکاپ این دفعه ۱۵ گیگابایت باز بهش اضافه شده. به فایل LOG شک کردم و اونو بررسی کردم دیدم بله یک دفعه حجمش شده ۲۰۰ گیگابایت. رفتم سراغ دلیل این مساله.
اول Log backupها رو بررسی کردم دیدم همش درسته.
بعد رفتم دستور زیر رو اجرا کردم
Select Name , Log_reuse_wait_desc from sys.databases
دراین کد بیان میکنه که Log File شما Wait چه مساله ای هست که رشد می کنه. دیدم که در این فیلد نوشته Replication. ماهم که Replication نداشتیم ولی CDC رو راه اندازی کرده بودم.
جاب CDC رو بررسی کردم دیدم که Stop شده و به دلیل اینکه Alarm ها خیلی زیاد بوده در لاگ من گم شده و ندیدمش. اونو Start کردم و این حجم Used فایل LDF کاهش پیدا کرد. به دلیل اینکه فایل LDF من Fragment هم شده بود اومدم فایل LDF رو Shrink کردم و حجمش رو کاهش دادم روی ۲۰ گیگابایت و Fragment اون هم مرتفع شد( به دلیل اینکه قبلا هم روی این حجم تنظیمش کرده بودم)
یکی از دلایل Fragment بودن فایل LDF تعداد بالای VLF هاست. و این VLF ها به ازای هرمرتبه ای که یک Grow در فایل LDF رخ میده اضافه میشن.
این دفعه که Full backup گرفتم حجمش تقریبا ۲۰ گیگابایت کاهش پیدا کرد و به عدد نرمال قبلی رسیدم.
کسی که DBA هست مرتبا باید همه این موارد رو به صورت روزانه چک کنه و کنترل کنه. حتما باید سیستم مانیتورینگ باشه. حتما باید سیستم Alarming داشته باشین.
و حتما باید Error log ها رو مدیریت کنید که یک دفعه مثل من حجم Error های بدون استفاده باعث نشه که چنین خطاهای مهمی رو نبینین.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@hamidreza_Sadeghian
#DBA
#Monitoring
#Database_Backup
👍43❤4🤔1🤣1
سلام خدمت دوستان عزیزم
امیدوارم عالی عالی باشین
دیروز یکی از دوستانم یک سوالی ازم پرسید در خصوص استفاده از تابع Round.
چالشش این بود که دوتا مقدار داره که اعشاری هستند . میخواد اگه حاصلضرب این دوتا اعشاری شد بدون اینکه رندی اتفاق بیافته قسمت حقیقی اونو نشون بده.
مثلا فرض کنید
1.5*1.8 = 2.7 . اگه رند بشه خوب میشه ۳ یا اگه کمتر از ۲.۵ باشه میشه ۲ . ولی این میخواد در هر حالتی عدد ۲ برگرده.
خوب میتونه از تابع Round استفاده کنه.
Round(1.5*1.8,0,1)
که اون پارامتر اخر دقیقا همین کارو میکنه و قسمت اعشاری رو Truncate میکنه.
چالش اینجا بود سر این دو عدد با این که ضربش یک عدد حقیقی میشد ولی یک ریال کسر میکرد ازش.
۱۳۵.۷ * ۳۵۹۴۰۰ = ۴۸۷۷۰۵۸۰ باید بشه ولی عدد ۴۸۷۷۰۵۷۹ رو این تابع برمیگردوند.
برام خیلی جالب بود . رفتم دیتا تایپهای دیتابیسش رو بررسی کردم دیدم جفت فیلدهارو از نوع Float گرفته. اونارو به Decimal تبدیل کردیم درست شد.
احتمالا شاید اگه شما هم چنین خطاهای محاسباتی دارید بیاید از دیتاتایپ های دقیقتر استفاده کنید که چنین مشکلاتی نداشته باشین.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
#TSQL
#SQL
امیدوارم عالی عالی باشین
دیروز یکی از دوستانم یک سوالی ازم پرسید در خصوص استفاده از تابع Round.
چالشش این بود که دوتا مقدار داره که اعشاری هستند . میخواد اگه حاصلضرب این دوتا اعشاری شد بدون اینکه رندی اتفاق بیافته قسمت حقیقی اونو نشون بده.
مثلا فرض کنید
1.5*1.8 = 2.7 . اگه رند بشه خوب میشه ۳ یا اگه کمتر از ۲.۵ باشه میشه ۲ . ولی این میخواد در هر حالتی عدد ۲ برگرده.
خوب میتونه از تابع Round استفاده کنه.
Round(1.5*1.8,0,1)
که اون پارامتر اخر دقیقا همین کارو میکنه و قسمت اعشاری رو Truncate میکنه.
چالش اینجا بود سر این دو عدد با این که ضربش یک عدد حقیقی میشد ولی یک ریال کسر میکرد ازش.
۱۳۵.۷ * ۳۵۹۴۰۰ = ۴۸۷۷۰۵۸۰ باید بشه ولی عدد ۴۸۷۷۰۵۷۹ رو این تابع برمیگردوند.
برام خیلی جالب بود . رفتم دیتا تایپهای دیتابیسش رو بررسی کردم دیدم جفت فیلدهارو از نوع Float گرفته. اونارو به Decimal تبدیل کردیم درست شد.
احتمالا شاید اگه شما هم چنین خطاهای محاسباتی دارید بیاید از دیتاتایپ های دقیقتر استفاده کنید که چنین مشکلاتی نداشته باشین.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
#TSQL
#SQL
👍29❤14👌7👏1
سلام خدمت دوستان عزیزم
امیدوارم عالی عالی باشین
در سلسله مقالاتی تصمیم دارم در خصوص BI و سیستم های تحلیلی با شما صحبت کنم. همچنین به صورت عمیق به این مساله در SQL Server بپردازم و ابزارها و تکنیکهای مختلف را بررسی کنم.
این مقاله اول هست و یکسری مفاهیم ابتدایی رو داخلش توضیح دادم.
با ما در ادامه این مقالات همراه باشین.
اتفاقات جالبی خواهد افتاد.
شاد باشین و شکرگزار
مهیار محمدی
@kmoh1368
#BI
#olap
#OLTP
#Columnstore_Index
https://data-club.ir/sql-server/sql-and-t-sql/%d8%aa%d9%81%d8%a7%d9%88%d8%aa-%d8%b3%db%8c%d8%b3%d8%aa%d9%85%d9%87%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c%d8%a7%d8%aa%db%8c-%d9%88-%d8%aa%d8%ad%d9%84%db%8c%d9%84%db%8c
امیدوارم عالی عالی باشین
در سلسله مقالاتی تصمیم دارم در خصوص BI و سیستم های تحلیلی با شما صحبت کنم. همچنین به صورت عمیق به این مساله در SQL Server بپردازم و ابزارها و تکنیکهای مختلف را بررسی کنم.
این مقاله اول هست و یکسری مفاهیم ابتدایی رو داخلش توضیح دادم.
با ما در ادامه این مقالات همراه باشین.
اتفاقات جالبی خواهد افتاد.
شاد باشین و شکرگزار
مهیار محمدی
@kmoh1368
#BI
#olap
#OLTP
#Columnstore_Index
https://data-club.ir/sql-server/sql-and-t-sql/%d8%aa%d9%81%d8%a7%d9%88%d8%aa-%d8%b3%db%8c%d8%b3%d8%aa%d9%85%d9%87%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c%d8%a7%d8%aa%db%8c-%d9%88-%d8%aa%d8%ad%d9%84%db%8c%d9%84%db%8c
data-club
تفاوت سیستمهای عملیاتی و تحلیلی
در این مقاله به مشخصه های سیستم های عملیاتی و سیستم های تحلیلی و تفاوت های اصلی بین آنها پرداختیم.
👍14❤6👏1
Media is too big
VIEW IN TELEGRAM
سلام خدمت دوستان عزیزم.
امیدوارم که عالی عالی باشین
در این فیلم ، من در خصوص استفاده از دستور Output در Update صحبت می کنم.
امیدوارم مفید واقع بشه
شاد باشین و شکرگزار
حمیدرضا صادقیان
#Tsql
#Update
#output
امیدوارم که عالی عالی باشین
در این فیلم ، من در خصوص استفاده از دستور Output در Update صحبت می کنم.
امیدوارم مفید واقع بشه
شاد باشین و شکرگزار
حمیدرضا صادقیان
#Tsql
#Update
#output
👍14❤6👏1🤝1
سلام خدمت دوستان عزیزم
امیدوارم عالی عالی باشین
یک پیشنهادی برای مدیران عامل شرکت های نرم افزاری دارم.
درصورتی که در زمینه دیتابیس هاتون کندی دارید ، چالش دارید و مشتری های ناراضی زیاد هستند(مخصوصا شرکتهای HIS) ، ما به کمک یک تیم حرفه ای میتونیم کمکتون کنیم.
در صورتی که تمایل داشتید همکاری رو باهم داشت باشیم ، خوشحال خواهم شد باهم صحبت داشته باشیم.
احتمالا از مدل همکاری راضی خواهید بود و شماهم ذینفع خواهید بود.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@hamidreza_Sadeghian
امیدوارم عالی عالی باشین
یک پیشنهادی برای مدیران عامل شرکت های نرم افزاری دارم.
درصورتی که در زمینه دیتابیس هاتون کندی دارید ، چالش دارید و مشتری های ناراضی زیاد هستند(مخصوصا شرکتهای HIS) ، ما به کمک یک تیم حرفه ای میتونیم کمکتون کنیم.
در صورتی که تمایل داشتید همکاری رو باهم داشت باشیم ، خوشحال خواهم شد باهم صحبت داشته باشیم.
احتمالا از مدل همکاری راضی خواهید بود و شماهم ذینفع خواهید بود.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@hamidreza_Sadeghian
👍9❤3
سلام خدمت دوستان عزیزم
امیدوارم عالی عالی باشین
در این مقاله قصد دارم در خصوص ادامه بحث در خصوص BI به ساختار Columnstore Index ها یک نگاه کلی بندازم و تفاوتش رو با ساختارهای B-Tree براتون بیان کنم.
شاد باشین و شکرگزار
مهیار محمدی
@kmoh1368
#columnstoreIndex
#BI
#DW
#DataWarehouse
#Columnstore_Index
https://data-club.ir/sql-server/sql-and-t-sql/columnstore-index-%d8%a7%d9%86%d9%82%d9%84%d8%a7%d8%a8%db%8c-%d8%af%d8%b1-%d8%b0%d8%ae%db%8c%d8%b1%d9%87%d8%b3%d8%a7%d8%b2%db%8c-%d8%af%d8%a7%d8%af%d9%87%d9%87%d8%a7-%d8%a8%d8%b1
امیدوارم عالی عالی باشین
در این مقاله قصد دارم در خصوص ادامه بحث در خصوص BI به ساختار Columnstore Index ها یک نگاه کلی بندازم و تفاوتش رو با ساختارهای B-Tree براتون بیان کنم.
شاد باشین و شکرگزار
مهیار محمدی
@kmoh1368
#columnstoreIndex
#BI
#DW
#DataWarehouse
#Columnstore_Index
https://data-club.ir/sql-server/sql-and-t-sql/columnstore-index-%d8%a7%d9%86%d9%82%d9%84%d8%a7%d8%a8%db%8c-%d8%af%d8%b1-%d8%b0%d8%ae%db%8c%d8%b1%d9%87%d8%b3%d8%a7%d8%b2%db%8c-%d8%af%d8%a7%d8%af%d9%87%d9%87%d8%a7-%d8%a8%d8%b1
data-club
Columnstore Index: انقلابی در ذخیرهسازی دادهها برای سیستمهای تحلیلی
Columnstore Index با تغییر نحوه ذخیرهسازی دادهها از حالت سطری به ستونی، سرعت اجرای کوئریهای تحلیلی را افزایش و مصرف منابع را کاهش میدهد. این قابلیت SQL Server با فشردهسازی بهینه و مقیاسپذیری بالا، راهکاری مؤثر برای پردازش دادههای حجیم ارائه میکند
👍6❤2👏1
یکی از مسائلی که در خیلی از SQL Server ها میبینم این هست که دوستان میان یک جاب تعریف می کنند برای Shrink Log . میشه بپرسم چرا؟
باور کنید این تفکر غلطیه اگر در هر دوره یا کلاسی این رو یاد گرفتین.
اگر Recovery Model دیتابیس شما Full هست و براساس میزان تراکنش ها مرتب ازش Log Backup بگیرید و همچنین سایز اولیه فایل رو درست تعریف کنید خیلی به ندرت پیش میاد که فایل شما رشد کنه. اونم برای زمانی هست که یک تراکنش خیلی بزرگی در سیستم شما درج بشه یا تغییرات عجیب غریبی رخ بده که در اون فضای خالی فایل Log شما قرار نگیره و مجبور به رشد باشه.
یکی از دلایل کندی دیتابیسهاتون میتونه همین مساله باشه.
حالا بیاین با یک مثال بهتون شرح بدم چه بلایی دارید سر SQL Server و OS میارید و مطمئن باشید در پل صراط ، یقه شمارو این دو بزرگوار خواهند گرفت 😁
فرض کنید شما یک پولی رو دادین به یکی که باهاش کار کنه و شما هم از سودش منتفع بشین. خوب تا اینجاش خیلی هم عالیه خوش به حالتون 😅
چالش اینجاست که عصر همون روز میگین شرمنده میشه پولمو بدین من پول کم آوردم. خوب اون بنده خدا هم میگه باشه بیا و واریز می کنه.
دوباره یک ساعت بعد میگین خوب بیا داداش این همون پوله ولی من تیکه تیکه (میزان رشد فایل) بهت این پول رو میدم. میگه باشه چیکار کنیم قبول.
دوباره عصر فردا میشه باز میگین ببخشید میشه پولمو پس بدی من دوباره پول کم اوردم( جبران کمبود فضای دیسک با شرینک کردن فایل لاگ) به محض اینکه پول رو گرفتی دوباره میگی من تا فردا تیکه تیکه بهت این پول رو میدم و این داستان هر روز ادامه داره.
به نظرتون اون شخص با شما چه برخوردی میکنه؟ چی میگه بهتون؟
آفرین ،دقیقا OS هم همین حرفهارو بهتون میزنه ولی چون ما توانایی شنیدنش رو نداریم به این رفتار زشت ادامه میدیم.
حالا در این پس دادن فضاو دوباره گرفتن فضا ، تمام دستورات شما باید منتظر بمونه تافضای کافی برای نوشتن داشته باشه و این میشه که وقتی سیستم شلوغه میزان فحش برثانیه به سیستم عزیز شما افزایش پیدا می کنه.
حالا برای اینکه این میزان فحش برثانیه رو کم کنید از همین الان برید این جاب رو کلا حذف کنید و با مدیریت درست لاگ بکاپ و همچنین تنظیم یک فضای اولیه برای این فایل برای همیشه از شر این Shrink کردن های روزانه خلاص بشین.
باشد که رستگار شویم و کمتر فحش بخوریم. 😁
#log_Backup
#TransactionLog
#Shrink
باور کنید این تفکر غلطیه اگر در هر دوره یا کلاسی این رو یاد گرفتین.
اگر Recovery Model دیتابیس شما Full هست و براساس میزان تراکنش ها مرتب ازش Log Backup بگیرید و همچنین سایز اولیه فایل رو درست تعریف کنید خیلی به ندرت پیش میاد که فایل شما رشد کنه. اونم برای زمانی هست که یک تراکنش خیلی بزرگی در سیستم شما درج بشه یا تغییرات عجیب غریبی رخ بده که در اون فضای خالی فایل Log شما قرار نگیره و مجبور به رشد باشه.
یکی از دلایل کندی دیتابیسهاتون میتونه همین مساله باشه.
حالا بیاین با یک مثال بهتون شرح بدم چه بلایی دارید سر SQL Server و OS میارید و مطمئن باشید در پل صراط ، یقه شمارو این دو بزرگوار خواهند گرفت 😁
فرض کنید شما یک پولی رو دادین به یکی که باهاش کار کنه و شما هم از سودش منتفع بشین. خوب تا اینجاش خیلی هم عالیه خوش به حالتون 😅
چالش اینجاست که عصر همون روز میگین شرمنده میشه پولمو بدین من پول کم آوردم. خوب اون بنده خدا هم میگه باشه بیا و واریز می کنه.
دوباره یک ساعت بعد میگین خوب بیا داداش این همون پوله ولی من تیکه تیکه (میزان رشد فایل) بهت این پول رو میدم. میگه باشه چیکار کنیم قبول.
دوباره عصر فردا میشه باز میگین ببخشید میشه پولمو پس بدی من دوباره پول کم اوردم( جبران کمبود فضای دیسک با شرینک کردن فایل لاگ) به محض اینکه پول رو گرفتی دوباره میگی من تا فردا تیکه تیکه بهت این پول رو میدم و این داستان هر روز ادامه داره.
به نظرتون اون شخص با شما چه برخوردی میکنه؟ چی میگه بهتون؟
آفرین ،دقیقا OS هم همین حرفهارو بهتون میزنه ولی چون ما توانایی شنیدنش رو نداریم به این رفتار زشت ادامه میدیم.
حالا در این پس دادن فضاو دوباره گرفتن فضا ، تمام دستورات شما باید منتظر بمونه تافضای کافی برای نوشتن داشته باشه و این میشه که وقتی سیستم شلوغه میزان فحش برثانیه به سیستم عزیز شما افزایش پیدا می کنه.
حالا برای اینکه این میزان فحش برثانیه رو کم کنید از همین الان برید این جاب رو کلا حذف کنید و با مدیریت درست لاگ بکاپ و همچنین تنظیم یک فضای اولیه برای این فایل برای همیشه از شر این Shrink کردن های روزانه خلاص بشین.
باشد که رستگار شویم و کمتر فحش بخوریم. 😁
#log_Backup
#TransactionLog
#Shrink
👍28😁6❤3👏3