tgoop.com/sql_server/811
Last Update:
میشه یکی از چالشهایی که در زندگی هست ، تغییر محل زندگیه. وقتی مثلا چندسالی در یک شهر یا محلی زندگی میکنی همه نیازهاتو میدونی از کجا باید تامین کنی ، کیفیت ها دستت میاد و...
وقتی که یک دفعه تصمیم میگیریم که به یک شهر یا یک منطقه دیگه بریم چند وقتی طول میکشه تا دوباره با اون شرایط بسازیم و این میتونه خیلی اختلال ایجاد کنه در زندگی ما و خیلی از فرآيندها رو کند کنه.
توی SQL Server هم Compatibility Level هر دیتابیس دقیقا چنین چیزیه. وقتی که یک دیتابیس با یک Compatibility Level شروع به کار می کنه همه ساخت پلن ها و نحوه اجرای کدها ،نحوه بروزرسانی Statistics ها و... برمیگرده به اون و با اون Compatibility Level کار می کنه.
حالا اگه یک دفعه وسط کار شما بیاین این عدد رو تغییر بدین و ارتقاش بدین( مثل این هست که مثلا فرض کنید تا الان توی یک منطقه ای زندگی می کردین که هزینه های زندگی به نسبت مناسبتر بوده یک دفعه میرین به یک میرین به یک منطقه گرون و هزینه ها واقعا دیوونتون می کنه) درسته که کیفیت همه چیز بهتر میشه ، ولی چون ساختار دیتابیس هنوز با این فرآيند جدید آشنا نیست باعث میشه کندی های عجیب غریبی ببینید.
دیروز با یک عزیزی صحبت می کردم ،میگفت در یک سیستم معروف کندی رخ داده بود و پشتیبان نرم افزار گفته که باید این رو ارتقا بدی و ارتقا دادن همانا و کندیه چند برابر شدن همانا. ( یک دفعه نمیشه از دنده یک بزنی دنده ۵ که داداش ماشین خاموش میکنه 😁 )
حالا خوب راهش چیه؟ چون این دیتابیس مثلابا نسخه ۲۰۰۸ توسعه داده شده تا ابد باید همون بمونه؟
آها سوال بسیار درستی پرسیدین. باید بگم که خیر.
راهش این هست که شما وقتی SQL Server رو بروز میکنی و نسخه جدید نصب میکنی یک مدتی باید روی دیتابیست Query Store رو فعال کنی و با همون رفتار قدیم ،دیتابیست کار کنه. بعد از اینکه مطمئن شدی با همه جای اصلی نرم افزار کار کردی میتونی بیای Compatibility Level رو ارتقا بدی. حالا یک سری کندی پیش میاد احتمالا ، که با Query Store و Force Plan میتونی حلش کنی. بعد سر فرصت باید بری همون کدها رو یک شخمی بزنی و اگه نیاز به بازنویسی داره بازنویسیش کنی.
BY SQL Server
Share with your friend now:
tgoop.com/sql_server/811