SQL Server kullanıcısını “Hacim bakım görevlerini gerçekleştirme” neden eklemek veritabanı yeniden boyutlandırma hızını bu kadar artırıyor?


17

5GB veritabanı oluşturmak istiyorsam

CREATE DATABASE [test]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'test', FILENAME = N'E:\2012\test.mdf' , SIZE = 5529600KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'test_log', FILENAME = N'E:\2012\test_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)

SSD'mde 1 dakika sürüyor .

Ama SQL Server kullanıcısını Perform volume maintenance tasks

resim açıklamasını buraya girin

sadece 1-2 saniye sürer .

Neden? Birisi bana bunun nedenlerini açıklayabilir mi?


4
Downvoters lütfen downvotes neden açıklayabilir ?? Bu benim için iyi bir soru gibi görünüyor.
Thomas Stringer

Yanıtlar:


26

Anlık Dosya Başlatma nedeniyle . Kısacası SQL Server, veritabanı veri dosyaları için bu ayrıcalıktan yararlanabilir (işlem günlüğü dosyaları için değil). Bunun anlamı, SQL Server'ın başlatma sırasında veri dosyalarını sıfırlamak zorunda olmamasıdır .

SQL Service hesabına verilen "Birim bakım görevlerini gerçekleştir" ayrıcalığı olmadan, veritabanı oluşturulduğunda SQL Server'ın "test.mdf" ve "test_log.ldf" değerlerini sıfırlaması gerekir.

"Birim bakım görevleri gerçekleştir" ayrıcalık izin ayarlandığında, SQL Server'ın yalnızca "test_log.ldf" sıfırlaması gerekir. Önemli ölçüde daha az ek yük, bu nedenle CREATE DATABASEtestiniz için minimum süre .

Referanslar
Anında Dosya Başlatma Nasıl ve Neden Etkinleştirilir
Anında Başlatma - Ne, Neden ve Nasıl?


özelliği olan bu dikiş harika, ama neden varsayılan kapalı?
ahmed abdelqader

1

Bu, en azından MS makalesine göre .ldf dosyalarını (günlük dosyaları) etkilemez

Neden yaptın? hız

Neden YAPMAYIN? Olası güvenlik riski. Birisi kutunuza girebilir ve muhtemelen sıfır olmayan bellek alanlarını okuyabilir ve bu verileri alabilir. Küçük risk, ama yine de risk. Bu yüzden varsayılan olarak etkin değildir.

Ayrıntılı açıklama: Anında Dosya Başlatma'yı Nasıl ve Neden Etkinleştirme


Okuyucuya not: Sunucunuza hacklenen ve silinen dosyadan eski verileri okuyan kişilerden endişe ediyorsanız, IFI'yi kapalı bırakmak yararlı olabilir, ancak yeterli olduğunu düşünmüyorum. Ve, zaten silinen dosyaların üzerine yazan bir yazılımınız varsa, o zaman IFI'yi açmak için muhtemelen uygun olacaksınız, çünkü bu yazılım alanı sıfırlamış olmalıdır.
RDFozz

Şimdi yükleme sırasında (SQL 2016 sonrası) SQL Server hizmet hesabına bu hakkı vermek için bir onay kutusu var, bu yüzden MS güvenlik cephesinde de biraz daha rahat sanırım.
Gareth Lyons
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.