SQL Server'de otomatik büyütme ve otomatik oluşturma 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üme ve otomatik oluşturma ayarları birçok SQL Server sisteminde uygundur. Ancak, otomatik büyüme ve otomatikshrink parametrelerini ayarlamanız gerekebilecek ortamlar vardır. Bu makalede, ortamınız için bu ayarların ne zaman seçildiğinde 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ı noktalar şunlardır.

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

  1. Aşağıdakilerden birini kullanarak otomatik büyüme 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üme 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üme 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 veriniz ve/veya günlük dosyanız varsa, her dosyadaki seçenekleri ayarlamanız gerekir. Ortamınıza bağlı olarak, her veritabanı dosyası için farklı ayarlarla sonlandırabilirsiniz.

AUTO_SHRINK için dikkat edilmesi gerekenler

AUTO_SHRINKSQL 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.

SQL Server örnekteki veritabanları için bu seçeneğin ayarlanmasını dikkatle değerlendirmeniz gerekir. Sık büyütme ve küçültme işlemleri çeşitli performans sorunlarına yol açabilir.

  • Birden çok veritabanı sık sık küçültme ve büyütme işlemlerine uğrarsa, bu işlem kolayca dosya sistemi düzeyinde parçalanmalara yol açar. Bunun performans üzerinde ciddi bir etkisi olabilir. Otomatik ayarları kullanıp kullanmadığınız veya dosyaları el ile büyütüp daraltıp daraltmadığınız bu durum 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ı alabilir.

  • 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 bir 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, kullanılmayan alanı veritabanı dosyalarında bırakın. Bu, veritabanı dosyalarının sık sık küçülmesini ve büyümesini önleyebilir.

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 geçen süre, işlem günlüğünün yapılandırılan miktara göre büyümesi için gereken süreyi içerir. 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 dosyasına (VLF) sahip olabilirsiniz. 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. Buna ek olarak, bu bazen veri değişiklikleriyle ilgili performans sorunlarına neden olabilir.

Not

Otomatik büyüme ve otomatikshrink seçeneklerini birleştirirseniz gereksiz ek yük oluşturabilirsiniz. Büyütme 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üğünün işlemeye göre 100 MB büyümesine neden olan bir işlem çalıştırabilirsiniz. Bundan bir süre sonra otomatik düzeltme 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 da performansı olumsuz yönde 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çlanabilir. 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, anında 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üme 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 büyümenizi günlük olarak yönetmeyin.

  • Dosya boyutlarını izlemek ve dosyaları proaktif olarak büyütmek için uyarıları veya izleme programlarını kullanabilirsiniz. Bu, parçalanmayı önlemenize yardımcı olur ve bu bakım etkinliklerini yoğun olmayan saatlere kaydırmanıza izin verir.

  • Otomatik büyüme ve otomatik büyüme, eğitimli bir Veritabanı Yöneticisi (DBA) tarafından dikkatle değerlendirilmelidir; Yönetilmeyen bırakılmamalılar.

  • Önceki bölümde listelenen performans cezalarını önlemek için otomatik büyüme artışınızın yeterince büyük olması gerekir. Yapılandırma ayarınızda kullanılacak tam değer ve büyüme yüzdesi ile belirli bir MB boyutu büyümesi 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üme ayarınızı dosyanın boyutuna göre yaklaşık 1-8 olarak 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üme ayarı, veritabanı boyutunu dosyaların tanımlandığı sürücülerde kullanılabilir disk alanı sınırlarının dışına çıkaramaz. Bu nedenle, veritabanlarınızı boyutlandırmak için otomatik büyüme işlevselliğini kullanırsanız, kullanılabilir sabit disk alanınızı bağımsız olarak denetlemeniz gerekir. Otomatik büyüme 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ını izleyebilir SQL Server: Veritabanları Nesnesi: Veri Dosyaları Boyutu (KB) 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çmek için yeterince büyük olmalıdır. Otomatik büyüme 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 sıralama 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 veritabanlarını bulur. Bu veritabanını denetler ve gerekirse bu veritabanını küçültür. Ardından, otomatik açıklama 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 hepsini aynı anda küçültmez. Bir süre içinde yükün kademesini çıkarmak için veritabanlarında hepsini bir kez deneme şeklinde çalışı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, aslında küçülene kadar birkaç saat sürebilir.

Başvurular