Aracılığıyla paylaş


SQL Server'dan yansıtılmış veritabanları için performansı iyileştirme

Bu makale, Microsoft Fabric'te SQL Server'dan kaynak veritabanının ve yansıtılmış veritabanının performansını iyileştirmeye yönelik önemli adımları içerir.

Tarama performansını denetleme

Bir veritabanındaki tablolarda yansıtma etkinleştirildiğinde, bir tarama işlemi işlem günlüğünü toplayarak değişiklikleri düzenli aralıklarla yakalar. Bu işlem, en eski hesaplanmamış işlenen işlemin LSN'sinde başlar ve sonraki N-1 çoğaltılmış işlemlerini tarar; burada N, içinde @maxtransparametresi kullanılarak sys.sp_change_feed_configure_parameters belirtilen işlem sayısını temsil eder. maxtrans Parametre değeri, her tarama döngüsünde işlenmek üzere en fazla işlem sayısını gösterir.

Tarama gecikme süresinin çok yüksek olduğu durumlarda, daha yüksek maxtrans bir değer kullanmak avantajlı olabilir, ancak seyrek çoğaltılan veya nispeten büyük işlemler içeren durumlarda daha düşük maxtrans bir ayar tercih edilebilir. Dinamik maksimum işlemler özelliği günlük kullanımı, tarama gecikme süresi ve iş yükü gibi diğer faktörlere göre her tarama sırasında en uygun maxtrans değeri otomatik olarak belirleyerek bu işlemi kolaylaştırır. dynamicmaxtrans Değişiklik akışı ayarı etkinleştirildiğinde Doku, maxtrans parametresini dinamik olarak ayarlayarak en iyi tarama performansını sağlar.

dinamik maksimum işlem özelliğinin ayarını sys.sp_help_change_feed_settings doğrulayın veya her tarama için çalışma zamanı değerlerini izlemek için genişletilmiş olay kullanın repl_logscan_dynamic_maxtrans .

Dinamik maksimum işlem özelliğini etkinleştirmek için olarak @dynamicmaxtransayarlayın1. Örneğin:

USE <Mirrored database name>
GO
EXECUTE sys.sp_change_feed_configure_parameters
  @dynamicmaxtrans=1;

Dinamik maksimum işlem özelliğinin maksimum ve alt sınırlarını değiştirmek için sırasıyla ve @maxtrans kullanın@dynamicmaxtranslowerbound. Örneğin:

USE <Mirrored database name>
GO
EXECUTE sys.sp_change_feed_configure_parameters
  @dynamicmaxtrans=1
, @dynamicmaxtranslowerbound=5
, @maxtrans=5000;

Dinamik maksimum işlem ayarıyla ilgili dikkat edilmesi gerekenler

Dinamik en fazla işlem özelliği SQL Server 2025'te varsayılan olarak etkindir. Dinamik maksimum işlem özelliği etkinleştirilir ve Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde yönetilemez veya devre dışı bırakılamaz.

Dinamik maxtrans etkinleştirildiğinde yansıtma, günlük tarama aşamasında en fazla 10.000 işlem (varsayılan olarak) veya yapılandırılmış en fazla işlem değerini işler. Bu aşamanın çok uzun çalışmasını önlemek için üç dakikalık bir zaman aşımı uygulanır. Zaman aşımı süresi dolmadan önce işlenen tüm işlemler yansıtılmış veritabanında yayımlanır ve kalan işlemler bir sonraki tarama sırasında yakalanır.

Dinamik maksimum işlem özelliği için en uygun değerler iş yüküne, gecikme süresine ve diğer faktörlere göre farklılık gösterir. Gecikme süresi istenenden yüksek olduğunda ve transaction_count her toplu işlemde alt sınır ayarından (varsayılan olarak 200) büyük olduğunda dinamik maxtrans özelliğini açmayı göz önünde bulundurun. Bu, içindeki sütun latency kullanılarak sys.dm_change_feed_log_scan_sessions veya genişletilmiş olay repl_logscan_dynamic_maxtrans kullanılarak kümeye ulaşıp ulaşmadığı current_maxtrans denetlenerek maxtrans izlenebilir. Gecikme süresi hala yüksekse maxtrans kullanarak üst sınırı artırmayı göz önünde bulundurun.

Zaman aşımlarının sık olup olmadığını izlemek için genişletilmiş olayı repl_logscan_dynamic_maxtrans kullanın. Taramadan zaman aşımı oluştuğunda alanın prev_phase2_scan_termination_reason değeri LogScanTerminationReason_MaxScanDurationReached olur. Sık sık zaman aşımları fark ederseniz maxtrans kullanarak dinamik maxtrans'ı düşürmeyi veya devre dışı bırakmayı göz önünde bulundurun.

SQL Server yansıtması için kaynak yöneticisi

SQL Server 2025'te, SQL Server'ınızdaki Fabric yansıtma iş yükünü kontrol altında tutmak ve yönetmek için bir kaynak yöneticisi havuzu oluşturabilirsiniz. Kaynak yöneticisini kullanarak Veritabanı Altyapısı kaynak tüketimini yönetebilir ve kullanıcı iş yükleri için ilkeler uygulayabilirsiniz. Resource Governor, kullanıcı sorgu iş yüklerinin kullanabileceği CPU, bellek ve fiziksel G/Ç miktarı dahil olmak üzere çeşitli sunucu kaynaklarını ayırmanıza veya sınırlamanıza olanak tanır. Bu şekilde, birincil iş iş yüklerinizi Doku Yansıtma'nın değişiklik akışı veri koleksiyonunun baskısından koruyabilirsiniz. Daha fazla bilgi için bkz . Resource governor.

Yapı yansıtması için SQL Server 2025'te iş yükü gruplarını yapılandırmaya başlamak için aşağıdaki örnek betiği ve yönergeleri kullanın.

  • için RESOURCE POOLherhangi bir ad seçebilirsiniz.
  • Bu örnek betik, Doku yansıtmaya izin vermek üzere istenen CPU yüzdesi için bir üst sınır yapılandırıyor. Aşağıdaki örnek yüzde 50 için kullanır 50 . Bu değer, CPU çekişmesi olduğunda kaynak havuzundaki tüm isteklerin alabileceği en yüksek ortalama CPU bant genişliğidir. Doku yansıtmasını daha fazla kısıtlamak için daha düşük bir değer kullanın.
  • Adların WORKLOAD GROUP örnek betikteki değerlerle eşleşmesi gerekir. Her iş yükü grubu, yansıtmanın belirli bir aşamasına yöneliktir. Her iş yükü grubu, kaynak yöneticisi havuzlarınızı ve iş yüklerinizi nasıl planladığınıza bağlı olarak aynı veya farklı bir havuzda olabilir.
  • SQL Server örneğinizde kaynak yöneticisini ilk kez yapılandırmadan önce Resource governor belgelerini, örneklerini ve en iyi yöntemlerini dikkatle gözden geçirin.
--Create resource pool for Fabric mirroring
CREATE RESOURCE POOL [ChangeFeedPool] WITH (MAX_CPU_PERCENT = 50);

--Create workload groups for Fabric mirroring. Do not modify.
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_snapshot_group] USING [ChangeFeedPool];
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_capture_group] USING [ChangeFeedPool];
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_publish_group] USING [ChangeFeedPool];
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_commit_group] USING [ChangeFeedPool];
CREATE WORKLOAD GROUP [x_ms_reserved_changefeed_notification_group] USING [ChangeFeedPool];

Değişiklikleri uygulamak ve her zamanki gibi kaynak yöneticisini etkinleştirmek için:

ALTER RESOURCE GOVERNOR RECONFIGURE