مشکل کندی 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
با تشکر و احترام
آرمان میرزایی جهان
مشاور فناوری اطلاعات
چقدر عجیب و جالب بود
من سرور SQL رو بهش کلی cpu دادم ولی باز هم توی زمان پیک کاری، خوب عمل نمیکرد
با این عوض کردن لایسنس مشکلش حل شد.
دمتون گرم