مشکل کندی SQL Server (لایسنس)


توی بسیاری از مجموعه ها و سازمانها از دیتابیس SQL Server برای نرم افزار های سازمانی استفاده میشه.
و معمولاً بعد از گذشت زمان و با ورود اطلاعات درون این بانک اطلاعاتی، مشکل کندی دیتابیس به وجود می آید.
در این مقاله میخواهیم به بررسی نوع لایسنس SQL Server که ممکن است منجر به کندی بانک اطلاعاتی بشه، بپردازیم

در زمان نصب SQL Server معمولاً از لایسنس Enterprise کرکی که داخل سایتهای اینترنتی وجود دارد، استفاده میکنیم.
اما این نسخه دارای محدودیتهایی در استفاده از حداکثر تعداد Coreهای CPU می باشد.

مشاور فناوری اطلاعات


با اجرای دستور select @@version در محیط SQL میتوانید لایسنس نصب شده فعلی خود را ببینید

 


 
و برای مشاهده تعداد Core های در دسترس سرور SQL میتوان تکه کد زیر را در محیط SQL اجرا نمود:

 

DECLARE @OnlineCpuCount int

DECLARE @HiddenCpuCount int

DECLARE @LogicalCpuCount int

SELECT @OnlineCpuCount = COUNT(*) FROM sys.dm_os_schedulers WHERE status = 'VISIBLE ONLINE'

SELECT @HiddenCpuCount = COUNT(*) FROM sys.dm_os_schedulers WHERE status != 'VISIBLE ONLINE'

SELECT @LogicalCpuCount = cpu_count FROM sys.dm_os_sys_info

SELECT @LogicalCpuCount AS 'ASSIGNED ONLINE CPU #', @OnlineCpuCount AS 'VISIBLE ONLINE CPU #', @HiddenCpuCount AS 'HIDDEN ONLINE CPU #',

   CASE

     WHEN @OnlineCpuCount < @LogicalCpuCount

     THEN 'You are not using all CPU assigned to O/S! If it is VM, review your VM configuration to make sure you are not maxout Socket'

     ELSE 'You are using all CPUs assigned to O/S. GOOD!'

   END as 'CPU Usage Desc'

----------------------------------------------------------------------------------------------------------------

GO

نتیجه تصویری بصورت زیر خواهد بود

 


 
اگر تعداد Core های VISIBLE با تعداد ASSIGNED شده یکسان بود به معنای استفاده از تمام توان CPU سرور می باشد.
اما اگر کمتر بود، به این معنی است که تمام توان CPU سرور نمیتواند در پردازش درخواستهای SQL مورد استفاده قرار گیرد. و می بایست لایسنس را به Enterprise Core ارتقاء داد! (در لایسنس معمولی Enterprise  حداکثر تا 40Core از CPU در دسترس خواهد بود)
برای تغییر لایسنس SQL میتوان با مراجعه به محیط نصب SQL ، در قسمت Maintenance و انتخاب گزینه Edition Upgrade، لایسنس جدید نسخه Enterprise Core را وارد نمود.

 

از سریال نامبر های زیر جهت تغییر لایسنس به Enterprise Core استفاده کنید

SQL Enterprise Core Serial Number

SQL Server 2016 Enterprise Core: TBR8B-BXC4Y-298NV-PYTBY-G3BCP
SQL Server 2017 Enterprise Core: 6GPYM-VHN83-PHDM2-Q9T2R-KBV83
SQL Server 2019 Enterprise Core: 2C9JR-K3RNG-QD4M4-JQ2HR-8468J

نکته: تغییر لایسنس نیازی به ری استارت شدن مجدد سرور ندارد و اختلالی در روند کاری ایجاد نمیکند!

مشاور فناوری اطلاعات

موارد دیگری نیز ممکن است باعث افزایش سرعت و کارایی در سرور های SQL شود.
در زیر، به برخی از آنها اشاره میکنیم:


•    طراحی صحیح ساختار معماری دیتابیس و جداول و ایندکس گذاری
•    تفکیک محل ذخیره سازی دیتا از لاگ دیتابیس بر روی هارد های با سرعت بالا
•    استفاده از هارد های پر سرعت SSD Enterprise یا SAS 15k با پیکربندی RAID10
•    کلاستر کردن چندین سرور دیتابیس در جهت افزایش کارایی
•    استفاده از پردازنده های مناسب برای سرور SQL

•    افزایش میزان فضای RAM سرور های SQL

•    پیکربندی صحیح و مناسب سیستم مجازی سازی (درصورت نصب SQL بصورت ماشین مجازی)
•    بروز بودن و استفاده از بالاترین ورژن SQL Server و Windows Server 

 

 

با تشکر و احترام
آرمان میرزایی جهان
مشاور فناوری اطلاعات