ai30logo500whitecroped

هیچ محصولی در سبد خرید نیست.

CU13 چه تغییراتی برای SQL Server 2022 داره

در این مقاله به بررسی تغغیرات موجود در cumulativeupdate12 برای SQl Server 2022 میپردازیم
سناریوی هر کدوم رو هم در صورت امکان برای تست در محیط لوکال ارایه میدیم 
نکته اینکه برای سناریو های تست دو تا راه هست 
1) یکی اینکه دو تا Instance  روی دو تا سرور یا VM نصب کرنید یکی شون رو به نسخه قبلی آپدیت کنید و یکی شون رو به نسخه بعدی 

2) یکی دیگه هم میتونید تست ها رو ی روی محیط خودتون قبل از اپدیت انجم بدین و بعد از آپدیت کردن مجددا بررسی کنید 

خب بریم سراغ تغییران این آپدیت 

  1.  Bug 2998350 – خطای موقتی در آنلاین شدن Replica ثانویه در AG

شرح: در برخی مواقع دیتابیس‌های ثانویه در Availability Group ممکن است موقتاً آنلاین نشوند و با خطای 3602 مواجه شوند.

سناریوی تست:

Code

— شبیه‌سازی راه‌اندازی نادرست در Replica ثانویه

— در یک AG، ریستارت Replica ثانویه هنگام Restore نشدن کامل

— بررسی ارورها در لاگ:

EXEC xp_readerrorlog 0, 1, ‘startup failed with error 3602’;

 

  1.  Bug 3025790 – خطای Assertion در Availability Group بدون کلاستر

شرح: هنگام استفاده از AG فقط برای Read-Scale بدون پیکربندی کلاستر، ممکن است با خطای Assertion مواجه شوید.

سناریوی تست:

  • ساخت AG بدون کلاستر (Configuration-Only Replica)
  • بررسی لاگ برای Assertion مرتبط با HadrArProxy.cpp

 

  1.  Bug 2984871 – Access Violation در Lock Manager بین Primary و Secondary با CPU متفاوت

شرح: در صورت تفاوت زیاد تعداد CPU بین Primary (مثلاً 16) و Secondary (کمتر از 16)، ممکن است Access Violation رخ دهد.

سناریوی تست:

  • اجرای workload سنگین بین دو Replica با CPU نامتقارن
  • بررسی dumpهای ایجاد شده در فولدر Log

 

  1.  Bug 3084239 – Self Deadlock هنگام استفاده از SEQUENCE

شرح: استفاده از SEQUENCE ممکن است باعث deadlock داخلی به دلیل escalated lock شود.

سناریوی تست:

Code

CREATE SEQUENCE SeqTest START WITH 1 INCREMENT BY 1;

GO

— اجرای موازی زیر:

SELECT NEXT VALUE FOR SeqTest;

— مشاهده زمان انتظار یا بلوکه شدن در sys.dm_tran_locks

 

  1.  Bug 2916501 – گزینه جدید برای محدود کردن حافظه RPC

شرح: گزینه جدید max RPC request params (KB) برای محدودسازی حافظه پارامترهای RPC اضافه شده است.

سناریوی تست:

Code

EXEC sp_configure ‘show advanced options’, 1; RECONFIGURE;

EXEC sp_configure ‘max RPC request params (KB)’, 1024; RECONFIGURE;

— اجرای RPC با پارامترهای زیاد و بررسی محدودیت

 

  1.  Bug 2973934 – مقدار -0 باعث خطا در DBCC CHECKDB

شرح: مقدار منفی صفر هنگام تبدیل به DECIMAL ممکن است در چک DBCC خطا بدهد.

سناریوی تست:

Code

CREATE TABLE T (c DECIMAL(5,2));

INSERT INTO T SELECT CAST(‘-0.00’ AS DECIMAL(5,2));

DBCC CHECKTABLE(‘T’);

 

  1.  Bug 3102467 – بهبود عملکرد ساخت Statistics برای جداول Temp

شرح: کاهش PREEMPTIVE_OS_REGISTRY با کش کردن max steps در ساخت آمار روی Temp Table ها.

سناریوی تست:

CREATE TABLE #t (id INT);
CREATE STATISTICS stat_id ON #t(id);
— بررسی wait stats مربوط به PREEMPTIVE_OS_REGISTRY

 

  1.  Bug 2810754 – عدم امکان غیرفعال‌سازی CDC در حضور Always Encrypted

شرح: اگر ستونی Always Encrypted باشد، CDC غیرفعال نمی‌شود.

سناریوی تست:

  • فعال‌سازی Always Encrypted روی یک ستون
  • فعال‌سازی CDC
  • تلاش برای غیرفعال‌سازی CDC و مشاهده خطا

 

  1.  Bug 3003456 – از دست رفتن داده‌ها در CDC هنگام جابجایی پارتیشن

شرح: همزمانی CDC با عملیات Switch Partition باعث عدم درج برخی رکوردها در جدول CT می‌شود.

سناریوی تست:

  • جدول پارتیشنی با CDC فعال
  • اجرای SWITCH PARTITION در زمان capture
  • بررسی داده‌های CDC

 

  1.  Bug 3015714 – خطا در sys.sp_flush_CT_internal_table_on_demand در حالت Case-Sensitive

شرح: در Collation حساس به حروف، اجرای این SP باعث خطا می‌شود.

سناریوی تست:

Code

— تنظیم collation حساس به حروف

CREATE DATABASE CaseDB COLLATE SQL_Latin1_General_CP1_CS_AS;

USE CaseDB;

— اجرای SP و بررسی پیام خطا مربوط به @TableName

 

  1.  Bug 3033974 – اضافه شدن پیام خطا به ستون comment در MSchange_tracking_history

شرح: برای شفاف‌سازی دلایل خطا در cleanup، پیام به ستون comment افزوده شده است.

سناریوی تست:

  • فعال‌سازی Change Tracking
  • اعمال خطای عمدی در Cleanup (مانند قفل روی جدول)
  • بررسی مقدار ستون comment در dbo.MSchange_tracking_history

 

  1.  Bug 3144736 – Service Broker Fail هنگام Memory Pressure

شرح: در شرایط فشار حافظه، استفاده از Conversation Timer باعث Fail می‌شود.

سناریوی تست:

 

Code

— فعال‌سازی Broker

ALTER DATABASE [DB] SET ENABLE_BROKER;

— ارسال پیام با TIMER:

BEGIN DIALOG CONVERSATION … WITH TIMER = 60;

— ایجاد memory pressure و بررسی رفتار

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *