tgoop.com/sql_server/769
Last Update:
سلام دوستان عزیزم
امیدوارم که عالی عالی باشین.
چندروز پیش در حین مانیتور کردن یک مرکز بیمارستانی ، دیدم یک کد بسیار پرهزینه داره اجرا میشه. زمان اجرای این کد تقریبا دو دقیقه بود و بیش از ۱۰ میلیون Logical Read داشت.
ساختار کدش به این شکل بود :
Select * from
(
select
join ....
)
where id=888
من دیدم اول داره join ها لحاظ میشه و چون Inner join بود اومدم اون شرط بیرونی رو به داخل و درون خود Join انتقال دادم. (دقت کنیدا گفتم Inner join بود. در Outer join این نتیجه تغییر می کنه)
با اینکار باعث شد زمان اجرای کد از ۲ دقیقه به ۳۰۰ میلی ثانیه کاهش پیدا کنه و Logical Read بیش از ۱۰ میلیون به ۵۰ کاهش پیدا کرد.
راه اندازی سامانه مانیتورینگ بسیار حائز اهمیته.
خیلی وقتها خیلی تغییرات رو هم میشه با اصلاح ساختار ایندکس ها انجام داد و بهبودی های خوبی رو حاصل کرد.
در اکثر سیستم هایی که من دیدم در خیلی از جداول عملیاتی حجم ایندکس های زیادی هستند که یا تکراری هستن یا بدون استفاده . که با حذف اونها هم حجم بکاپ ها به شدت کاهش پیدا می کنه. هم سرعت کدها افزایش پیدا می کنه هم میزان Blocking ها کم میشه.
نکته بعد اینکه اگر مانیتورینگ هم راه اندازی کردین باید بدونید علائم ها چی هستند تا بتونید درست تفسیر کنید.
سامانه مانیتورینگ مثل یک برگ آزمایش میمونه. صرفا با سرچ یک کلمه در اینترنت نمیشه به نتایج مثبتی رسید.
امیدوارم این مساله دید خوبی بهتون در خصوص مانیتورینگ بده.
شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian
BY SQL Server
Share with your friend now:
tgoop.com/sql_server/769
