قبل از هر چیز باید اشاره کنم که مایکروسافت هنوز تا به امروز هیچ نسخهای از این محصول را عرضه عمومی نکرده و صرفاً بخشهای از قابلیتهای آن را در سمینارهای سال ۲۰۱۴ و ۲۰۱۵ خود معرفی کرده است.
در این مقاله آموزشی قصد دارم که کمی قابلیتهای جدید SQL Server 2016 را در حوزه Performance و یا افزایش کارایی بررسی کنم. لازم میدانم اشاره کنم که تعدادی از این قابلیتها بر پایه Windows Azure بوده که متاسفانه به علت تحریم و… در ایران قابل استفاده نمیباشد.
اما این ۷ قابلیت جدید در SQL Server 2016
۱- افزایش قدرت In-Memory OLTP با استفاده از NonClustered Column Store Index :
همانگونه که اطلاع دارید مایکروسافت In-Memory OLTP یا همان Memory Optimized Table را در SQL Server 2014 معرفی کرد که با استفاده از آن شما میتوانید دادههای جداول خود را در حافظه و دیسک به طور همزمان با سرعت بالای ذخیره و بازیابی نمایید. این تکنولوژی به شما این قابلیت را میدهد که دادهها را بدون تاخیر و با سرعت بیشتر در بانک اطلاعاتی خود ذخیره نمایید که این موضوع باعث خواهد شد که سیستم بتواند به درخواست زیادی به صورت همزمان پاسخ دهد. (افزایش Concurrency)
اما یکی از ضعفهای این قابلیت زمانی آشکار میشد که حجم دادههای جدول به شدت زیاد بوده و شما خواهان اجرای کوئریهای از جنس Analytical هستید (منظورم همان Sum,Count,Min,Max,…) در این حالت اگر دارای ایندکس مناسبی نباشید اجرای کوئریها شما به کندی پیش خواهد. بدین منظور مایکروسافت در SQL Server 2016 به شما اجازه میدهد که NonClustered Column Store Index را به ازای جداول Memory Optimized داشته باشید.
برای پیادهسازی چنین قابلیتی مایکروسافت در SQL Server 2016 این دستور را ارائه داده است.
1 2 3 | ALTER TABLE Transactions ADD INDEX NCCIX_Transactions
NONCLUSTERED COLUMNSTORE (ID,InsertTime,Amount,PrimaryAccNo,BankID)
GO
|
|
با استفاده از این ویژگی سرعت کوئریهای تحلیلی در روی SQL Server 2016 به بیش از ۱۰۰ برابر خواهد رسید! (قابل توجه دوستان Oracle کار)
برای کسب اطلاعات بیشتر درباره این قابلیت این فیلم را مشاهده نمایید.
در این فیلم شما تاثیر استفاده از In-Memory OLTP را در بانک اطلاعاتی شرکت DELL را مشاهده خواهید کرد و در انتها با نحوه ایجاد NonClustered Column Store Index بر روی یک جدول Memory Optimized آشنا خواهید شد.
پیشنهاد میکنم حتماً به صحبتهای DBA این شرکت با دقت توجه کنید (برای مشاهده این فیلم در آپارات بر روی تصویر زیز کلیک کنید)
۲- Query Store
یکی از وظایف یک Database کار حرفهای استخراج آمار و اطلاعاتی درباره وضعیت کوئریهای در حال اجرا و یا اجرا شده میباشد. SQL Server قابلیتهای زیادی برای انجام اینکار دارد مانند استفاده از DMV، Trace، Extended Event و… اما همه اینها یک ضعف بزرگ دارند گزارشهای ارائه شده توسط این ویژگی همه به صورت Text Base بوده و عموماً کاربران سطح پایین و یا سطح متوسط حوصله بررسی آن را ندارد در SQL Server 2016 قابلیتی به نام Query Store ارائه شده است که هدف آن ذخیره کردن Execution Plan کوئریهای در حال اجرا میباشد. با استفاده ویژگی شما میتوانید
وضعیت کوئریها به همراه Execution Plan و… آنها به طور کاملاً گرافیکی مانیتور نمایید.
۳- پشتیبانی از JSON در SQL Server 2016
همه کسانی که با حوزه Database کار میکنند قطعاً نام تکنولوژی JSON را شنیدهاند و از قدرت نفوذ آن میان برنامهنویسان آشنا هستند. JSON مخفف JavaScript Object Notation (نشانهگذاری شئ جاوا اسکریپت) بوده و هدف از ارائه آن Serialize کردن داده و انتقال آن است. دادهها طی این پروتکل همانند XML به صورت متنی ذخیره شده و به راحتی در Platformهای مختلف قابلیت انتقال دارند.
در نسخههای قبلی SQL Server چنانچه خواهان ذخیرهسازی عبارتهای JSON باشید دو راهحل وجود دارد.
۱- ذخیرهسازی به صورت رشتهای : در این حالت اگر بخواهد پردازشی بر روی عبارتهای JSON انجام دهید مجبور هستید از توابع رشتهای برای اینکار استفاده کنید.
۲- استفاده از CLR در SQL Server : در این حالت با استفاده از .NET یک نوع داده و یا یک تابع میتوان ایجاد کرد که ذخیره و بازیابی و همچنین پردازش عبارتهای JSON را بر عهده بگیرد.
در SQL Server 2016 به صورت Native امکان پشتیبانی از JSON وجود دارد. در این حالت شما مانند XML یک Data Type از نوع JSON در دسترس دارید و همچنین علاوه بر آن میتوانید عملیات Import و Export دادهها را به فرمت JSON انجام دهید.
۴- Temporal Database
شاید خیلی از دوستانی که بانک اطلاعاتی کار میکنند خواهان این هستند که قابلیتی برای ذخیره و بازیابی سابقه تغییرات رکوردها در بانک اطلاعاتی را پیادهسازی بکنند. برای انجام اینکار روشهای متنوعی وجود دارد که در پادکست صوتی
نحوه نگهداری History (تاریخچه) تغییرات Data میتوانید با این روشها آشنا شوید.
اما در SQL Server 2016 انجام اینکار بسیار راحت میباشد. کافی است از دستورات زیر استفاده کنید تا بتوانید سابقه تغییرات رکوردها را در بانک اطلاعاتی داشته باشید.
۵- پشتیبانی از Windows Server 2016 :
ویندوز سرور ۲۰۱۶ یکی از جدیدترین محصولات مایکروسافت در حوزه سیستم عامل سرورها میباشد که قرار است در سال ۲۰۱۶ عرضه عمومی گردد. با ارائه ویندوز سرور ۲۰۱۶ مایکروسافت بهبودهایی در حوزه SQL Server هم داده است. پشتیبانی از ۱۲TB حافظه RAM و همیچنین تعداد CPUهای بیشتر (پشتیبانی از ۱۶ Sockets) از قابلیتهای مثبت Windows Server 2016 است که تاثیر بسیار مثبتی بر عملکرد SQL Server دارد.
تصویر زیر نمونهای از سرورهای HP را نشان میدهد که از خانواده Superdome بوده و دمو SQL Server 2016 مورد استفاده قرار گرفته است.
برای کسب اطلاعات بیشتر درباره این سرور میتوانید فایل PDF معرفی این محصول را از
اینجا دریافت نمایید.
۶- بهبود Cache
همانطور که میدانید استفاده از تکنولوژی Caching تاثیر بسیار مثبتی در عملکرد نرمافزار دارد SQL Server 2016 بهبودهایی در نحوه کش کردن دادهها و… داده است.
۷- ایجاد Load Balancer برای جُفتهای ثانویه در Always-ON
تکنولوژی Always-ON برای اولین بار در SQL Server 2012 معرفی گردید یکی از کمهزینهترین روشهای پیادهسازی High Availability در SQL Server که با استفاده از حداقل ۲ سرور میتوان آن را پیادهسازی نمود.
اما تغییری که در SQL Server 2016 به ازای Always-ON ایجاد شده است ایجاد یک Load Balancer میباشد. با استفاده از این قابلیت زمانی که یک Request به سمت Replica یا جُفتهای ثانویه ارسال میگردد Load Balancer موجود در SQL Server آن را با استفاده از الگوریتم Round-robin مابین جُفتهای ثانویه پخش میکند. با انجام اینکار Workload یا بار کاری مابین جُفتهای ثانویه پخش خواهد شد.
البته چند تغییر خوب هم در Always-ON ایجاد شده است که یکی از مهمترین آنها افزایش جُفتهای Synchronous به تعداد ۳ میباشد.
مدرس :مسعود طاهری مدت زمان:18 دقیقه و 11 ثانیه حجم فایل:25.0 مگابایت تعداد دانلود:547 | |