مایکروسافت اسکیوال سرور یا ( Microsoft SQL Server ) یک نرمافزار سیستم مدیریت بانکهای اطلاعاتی رابطهای است که توسط شرکت مایکروسافت ارائه شده است. به عنوان یک سرور پایگاه داده، این یک محصول نرم افزاری است که عملکرد اصلی اش ذخیرهسازی و بازیابی اطلاعات با توجه به درخواست سایر برنامهها میباشد – که ممکن است بر روی همان کامپیوتر یا یک کامپیوتر دیگر در یک شبکه (از جمله اینترنت) اجرا شود.
مایکروسافت نسخه متفاوتی Microsoft SQL Server را با هدف مخاطبان مختلف و برای تنوع ميزان كار، از برنامههای کوچک برای اجرا روی یک ماشین تا برنامههای بزرگ اینترنتی است همراه با پشتیبانی از کاربران همزمان عرضه میکند.
قابلیت های جدید SQL Server 2016
1. افزایش قدرت 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 به بیش از ۱۰۰ برابر خواهد رسید!
2. Query Store
یکی از وظایف یک Database کار حرفهای استخراج آمار و اطلاعاتی درباره وضعیت کوئریهای در حال اجرا و یا اجرا شده میباشد. SQL Server قابلیتهای زیادی برای انجام اینکار دارد مانند استفاده از DMV، Trace، Extended Event و…
همه اینها یک ضعف بزرگ دارند گزارشهای ارائه شده توسط این ویژگی همه به صورت Text Base بوده و عموماً کاربران سطح پایین و یا سطح متوسط حوصله بررسی آن را ندارد در SQL Server 2016 قابلیتی به نام Query Store ارائه شده است که هدف آن ذخیره کردن Execution Plan کوئریهای در حال اجرا میباشد. با استفاده ویژگی شما میتوانید وضعیت کوئریها به همراه Execution Plan و… آنها به طور کاملاً گرافیکی مانیتور نمایید.
3. پشتیبانی از JSON در اس کیو ال 2016
همه کسانی که با حوزه Database کار میکنند قطعاً نام تکنولوژی JSON را شنیدهاند و از قدرت نفوذ آن میان برنامهنویسان آشنا هستند. JSON مخفف JavaScript Object Notation (نشانهگذاری شئ جاوا اسکریپت) بوده و هدف از ارائه آن Serialize کردن داده و انتقال آن است. داده ها طی این پروتکل همانند XML به صورت متنی ذخیره شده و به راحتی در Platform های مختلف قابلیت انتقال دارند.
در نسخه های قبل اس کیو ال سرور چنانچه خواهان ذخیره سازی عبارت های JSON باشید دو راه حل وجود دارد.
- ذخیره سازی به صورت رشته ای : در این حالت اگر بخواهد پردازشی بر روی عبارت های JSON انجام دهید مجبور هستید از توابع رشته ای برای اینکار استفاده کنید
- استفاده از CLR در SQL Server : در این حالت با استفاده از .NET یک نوع داده و یا یک تابع میتوان ایجاد کرد که ذخیره و بازیابی و همچنین پردازش عبارت های JSON را بر عهده بگیرد
در SQL Server 2016 به صورت Native امکان پشتیبانی از JSON وجود دارد. در این حالت شما مانند XML یک Data Type از نوع JSON در دسترس دارید و همچنین علاوه بر آن میتوانید عملیات Import و Export دادهها را به فرمت JSON انجام دهید.
4. Temporal Database
قابلیتی در SQL Server 2016 برای ذخیره و بازیابی سابقه تغییرات رکوردها در بانک اطلاعاتی مانند ، نگهداری History (تاریخچه) ، تغییرات Data و … .
5. پشتیبانی از Windows Server 2016 :
با ارائه ویندوز سرور ۲۰۱۶ مایکروسافت بهبودهایی در حوزه SQL Server هم داده است. پشتیبانی از ۱۲TB حافظه RAM و همیچنین تعداد CPUهای بیشتر (پشتیبانی از ۱۶ Sockets) از قابلیتهای مثبت Windows Server 2016 است که تاثیر بسیار مثبتی بر عملکرد SQL Server دارد.
6. بهبود Cache
همانطور که میدانید استفاده از تکنولوژی Caching تاثیر بسیار مثبتی در عملکرد نرمافزار دارد SQL Server 2016 بهبودهایی در نحوه کش کردن داده ها و… داده است.
7. ایجاد 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 یا بار کاری مابین جفت های ثانویه پخش خواهد شد.