Aracılığıyla paylaş


SQL Server'da otomatik büyütme ve otomatikshrink ayarlarıyla ilgili dikkat edilmesi gerekenler

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 315512

Özet

Varsayılan otomatik büyütme ve otomatikshrink ayarları birçok SQL Server sisteminde uygundur. Ancak bazı ortamlarda otomatik büyütme ve otomatik küçültme parametrelerini ayarlamanız gerekebilir. Bu makalede ortamınız için bu ayarları seçerken size yol gösterecek bazı arka plan bilgileri sağlanır.

Autogrow ve autoshrink parametrelerinizi ayarlamaya karar verirseniz göz önünde bulundurmanız gereken bazı şeyler şunlardır.

ayarları Nasıl yaparım? yapılandırma

  1. Aşağıdakilerden birini kullanarak otomatik büyütme ve otomatik oluşturma ayarlarını yapılandırabilir veya değiştirebilirsiniz:

    Not

    Bu ayarları veritabanı dosya düzeyinde ayarlama hakkında daha fazla bilgi için bkz . Veritabanına Veri veya Günlük Dosyaları Ekleme.

    Veritabanı oluştururken otomatik büyütme seçeneğini de yapılandırabilirsiniz.

    Geçerli ayarları görüntülemek için aşağıdaki Transact-SQL komutunu çalıştırın:

    sp_helpdb [ [ @dbname= ] 'name' ]
    
  2. Otomatik büyütme ayarlarının dosya başına olduğunu unutmayın. Bu nedenle, bunları her veritabanı için en az iki yerde ayarlamanız gerekir (biri birincil veri dosyası ve biri birincil günlük dosyası için). Birden çok veri ve/veya günlük dosyanız varsa, her dosyada seçenekleri ayarlamanız gerekir. Ortamınıza bağlı olarak, her veritabanı dosyası için farklı ayarlarla bitirebilirsiniz.

AUTO_SHRINK için dikkat edilmesi gerekenler

AUTO_SHRINK , SQL Server'da bir veritabanı seçeneğidir. Bir veritabanı için bu seçeneği etkinleştirdiğinizde, bu veritabanı bir arka plan görevi tarafından daraltılma için uygun hale gelir. Bu arka plan görevi, verileri veya günlük dosyalarını küçültme ve küçültme ölçütlerini karşılayan tüm veritabanlarını değerlendirir.

Bir SQL Server örneğindeki veritabanları için bu seçeneği ayarlamayı dikkatle değerlendirmeniz gerekir. Sık sık büyüme ve küçültme işlemleri çeşitli performans sorunlarına yol açabilir.

  • Birden çok veritabanında sık sık küçültme ve büyütme işlemleri yapılıyorsa, bu işlem dosya sistemi düzeyinde parçalanmalara neden olur. Bunun performans üzerinde ciddi bir etkisi olabilir. Bu, otomatik ayarları kullanmanız veya dosyaları el ile büyütmeniz ve sık sık küçültmeniz fark etmediği için geçerlidir.

  • Verileri veya günlük dosyasını başarıyla küçülttükten sonra AUTO_SHRINK , alan gerekiyorsa ve dosyaların büyümesi gerekiyorsa sonraki bir DML veya DDL işlemi önemli ölçüde yavaşlayabilir.

  • Arka AUTO_SHRINK plan görevi, daraltılması gereken birçok veritabanı olduğunda kaynakları kaplayabilir.

  • Arka plan görevinin AUTO_SHRINK diğer normal uygulama etkinliğiyle çakışabilecek kilitleri ve diğer eşitlemeleri alması gerekir.

Veritabanlarını gerekli boyuta ayarlamayı ve önceden büyütmeyi göz önünde bulundurun. Uygulama kullanım desenlerinin bunlara yeniden ihtiyaç duyacağını düşünüyorsanız, veritabanı dosyalarında kullanılmayan alanı bırakın. Bu, veritabanı dosyalarının sık sık küçülmesini ve büyümesini engelleyebilir.

AUTOGROW ile ilgili dikkat edilmesi gerekenler

  • Kullanılabilirden daha fazla günlük alanı gerektiren bir işlem çalıştırırsanız ve bu veritabanının işlem günlüğü için otomatik büyütme seçeneğini açtıysanız, işlemin tamamlanması için işlem günlüğünün yapılandırılan miktara kadar büyümesi için gereken süre dahil edilir. Büyüme artışı büyükse veya uzun sürmesine neden olan başka bir faktör varsa, işlemi açtığınız sorgu zaman aşımı hatası nedeniyle başarısız olabilir. Aynı tür bir sorun, veritabanınızın veri bölümünün otomatik olarak büyümesine neden olabilir.

  • Günlüğün büyümesini gerektiren büyük bir işlem çalıştırırsanız, işlem günlüğüne yazma gerektiren diğer işlemlerin de büyüme işlemi tamamlanana kadar beklemesi gerekir.

  • Günlük dosyalarınızda çok fazla dosya büyümesi varsa, çok fazla sayıda sanal günlük dosyanız (VLF) olabilir. Bu, veritabanı başlatma/çevrimiçi işlemleri, çoğaltma, yansıtma ve değişiklik veri yakalama (CDC) ile ilgili performans sorunlarına yol açabilir. Ayrıca, bu bazen veri değişiklikleriyle ilgili performans sorunlarına neden olabilir.

Not

Otomatik büyütme ve otomatikshrink seçeneklerini birleştirirseniz gereksiz ek yük oluşturabilirsiniz. Büyüme ve küçültme işlemlerini tetikleyen eşiklerin sık sık yukarı ve aşağı boyut değişikliklerine neden olmadığından emin olun. Örneğin, işlem günlüğü işlemeye kadar 100 MB büyümesine neden olan bir işlem çalıştırabilirsiniz. Bundan bir süre sonra otomatikshrink başlatılır ve işlem günlüğü 100 MB küçültür. Ardından aynı işlemi çalıştırırsınız ve işlem günlüğünün yeniden 100 MB büyümesine neden olur. Bu örnekte, gereksiz ek yük oluşturup günlük dosyasının parçalanma olasılığını oluşturuyorsunuz ve bu işlemlerden biri performansı olumsuz etkileyebilir.

Veritabanınızı küçük artışlarla büyütürseniz veya büyütüp küçültürseniz, disk parçalanmasıyla sonuçlanabilirsiniz. Disk parçalanması bazı durumlarda performans sorunlarına neden olabilir. Küçük büyüme artışları senaryosu, sisteminizdeki performansı da düşürebilir.

SQL Server'da, anlık dosya başlatmayı etkinleştirebilirsiniz. Anında dosya başlatma, yalnızca veri dosyaları için dosya ayırmalarını hızlandırır. Anlık dosya başlatma günlük dosyaları için geçerli değildir. Daha fazla bilgi için bkz . Veritabanı Anlık Dosya Başlatma.

Otomatik büyütme ve otomatikshrink için en iyi yöntemler

  • Yönetilen bir üretim sistemi için, otomatik büyümeyi yalnızca beklenmeyen büyüme için bir olasılık olarak düşünmelisiniz. Otomatik büyüme ile verilerinizi yönetmeyin ve günlük olarak büyümeyi günlüğe kaydetmeyin.

  • Uyarıları veya izleme programlarını kullanarak dosya boyutlarını izleyebilir ve dosyaları proaktif olarak büyütebilirsiniz. Bu, parçalanmayı önlemenize yardımcı olur ve bu bakım etkinliklerini yoğun olmayan saatlere kaydırmanıza izin verir.

  • Otomatik oluşturma ve otomatik büyütme, eğitilmiş bir Veritabanı Yöneticisi (DBA) tarafından dikkatle değerlendirilmelidir; Yönetilmeyen bırakılmamalıdır.

  • Otomatik büyütme artışınız, önceki bölümde listelenen performans cezalarından kaçınmak için yeterince büyük olmalıdır. Yapılandırma ayarınızda kullanılacak tam değer ve büyüme yüzdesi ile belirli bir MB boyutundaki büyüme arasındaki seçim ortamınızdaki birçok faktöre bağlıdır. Test için kullanabileceğiniz genel bir kural, otomatik büyütme ayarınızı dosyanın yaklaşık sekiz boyutuna ayarlamaktır.

  • \<MAXSIZE> Herhangi bir dosyanın kullanılabilir tüm disk alanını kullandığı bir noktaya büyümesini önlemek için her dosya için ayarı açın.

  • Planlanmamış dosya büyümesini önlemek için işlemlerinizin boyutunu mümkün olduğunca küçük tutun.

Boyut ayarları otomatik olarak denetleniyorsa neden disk alanı konusunda endişelenmem gerekiyor?

  • Otomatik büyütme ayarı, dosyaların tanımlandığı sürücülerde kullanılabilir disk alanının sınırlarını aşan veritabanı boyutunu büyütemez. Bu nedenle, veritabanlarınızı boyutlandırmak için otomatik büyütme işlevine güveniyorsanız, kullanılabilir sabit disk alanınızı bağımsız olarak denetlemeniz gerekir. Otomatik büyütme ayarı, her dosya için seçtiğiniz parametreyle MAXSIZE de sınırlıdır. Alan yetersizliği olasılığını azaltmak için Performans İzleyicisi sayacı SQL Server: Veritabanları Nesnesi: Veri Dosyaları Boyutu (KB) izleyebilir ve veritabanı belirli bir boyuta ulaştığında bir uyarı ayarlayabilirsiniz.

  • Verilerin veya günlük dosyalarının planlanmamış büyümesi, diğer uygulamaların kullanılabilir olmasını beklediği alan kaplayabilir ve bu diğer uygulamaların sorun yaşamasına neden olabilir.

  • İşlem günlüğünüzün büyüme artışı, işlem birimlerinizin ihtiyaçlarının önüne geçebilecek kadar büyük olmalıdır. Otomatik büyütme açık olsa bile, sorgunuzun gereksinimlerini karşılayacak kadar hızlı büyüyemiyorsa işlem günlüğünün dolu olduğunu belirten bir ileti alabilirsiniz.

  • SQL Server, otomatik yazma için yapılandırılmış eşiğe isabet eden veritabanlarını sürekli test etmez. Bunun yerine, kullanılabilir veritabanlarına bakar ve otomatik olarak hazır hale getirmek için yapılandırılan ilk veritabanını bulur. Bu veritabanını denetler ve gerekirse bu veritabanını küçültür. Ardından, otomatik dizin için yapılandırılan bir sonraki veritabanını denetlemeden önce birkaç dakika bekler. Başka bir deyişle, SQL Server tüm veritabanlarını aynı anda denetlemez ve tümünü aynı anda küçültmez. Bir süre boyunca yükün kademesini çıkarmak için veritabanlarında hepsini bir kez deneme şeklinde çalışacaktır. Bu nedenle, belirli bir SQL Server örneğinde otomatik olarak daraltmak için yapılandırdığınız veritabanı sayısına bağlı olarak, veritabanının eşiğe ulaştığından, gerçekten küçülene kadar birkaç saat sürebilir.

Başvurular