Aracılığıyla paylaş


FILESTREAM en iyi yöntemler

Bu konuda FILESTREAM kullanmak için önerilen en iyi uygulamaları sağlar.

Fiziksel yapılandırma ve Bakım

Zaman, küme FILESTREAM depolama birimleri, aşağıdaki yönergeleri dikkate alın:

  • FILESTREAM bilgisayar sistemlerinde kısa dosya adlarını devre dışı bırakın.Kısa dosya adlarını oluşturmak için hissedilir.Kısa dosya adlarını devre dışı bırakma Windows kullanmak fsutil yardımcı programı.

  • FILESTREAM bilgisayar sistemleri düzenli olarak birleştirin.

  • 64 kb ntfs kümeleri kullanın.Sıkıştırılmış birimler 4 kb ntfs kümeler için küme olması gerekir.

  • FILESTREAM birimlerde dizin oluşturma devre dışı bırakın ve küme disablelastaccess ayarlamak için disablelastaccess, Windows kullanan fsutil yardımcı programı.

  • Gereksiz olmadığı zaman virüsten koruma FILESTREAM birimlerini tarama devre dışı bırakın.Virüsten koruma tarama gerekiyorsa, soruna neden olan dosyaları otomatik olarak silecek ilkeleri ayarlama kaçının.

  • Ayarlayabilir ve hataya dayanıklılık ve bir uygulama tarafından istenen performans için RAID düzey ayarlayın.

RAID düzey

Yazma performansı

Okuma performansı

Hataya dayanıklılık

Açıklamalar

RAID 5

Normal

Normal

Mükemmel

Performans bir disk veya jbod iyidir; küçük ve RAID 0 ya da RAID 5 şeritleme ile.

RAID 0

Mükemmel

Mükemmel

Hiçbiri

RAID 5 + şeridi

Mükemmel

Mükemmel

Mükemmel

En ucuz seçeneği.

Fiziksel veritabanı Tasarım

FILESTREAM veritabanı tasarlarken, aşağıdaki yönergeleri dikkate alın:

  • FILESTREAM columns must be accompanied by a corresponding uniqueidentifier ROWGUID column.Bu tür bir tablo benzersiz dizin tarafından de eşlik gerekir.Genellikle bu dizini kümelenmiş dizin değil.Veritabanları iş mantığı kümelenmiş dizin gerektiriyorsa, dizinde depolanan değerleri rastgele emin olmalısınız.Rasgele değerleri dizini yeniden sipariş edilmesi neden olur her saat , bir satır eklendiğinde veya tablodan kaldırmış.

  • Performansla ilgili nedenlerden dolayı FILESTREAM filegroups ve kapsayıcılar, işletim sistemi dışındaki birimlerde bulunması gereken SQL Server veritabanı, SQL Server , günlük tempdb, veya disk belleği dosyası.

  • Doğrudan alan yönetimi ve ilkeleri FILESTREAM tarafından desteklenmez.Ancak alanını yönetmek ve dolaylı olarak FILESTREAM dosya grubu her atama için ayrı bir birim ve birim yönetimi özelliklerini kullanarak ilkeleri uygulanır.

Uygulama tasarımı ve uygulaması

  • Ne zaman tasarımı ve FILESTREAM, kullanan uygulamalar uygulama aşağıdaki yönergeleri dikkate alın:

  • null yerine 0 x başlatıldı FILESTREAM sütun göstermek için kullanın.Oluşturulacak dosya 0 x değeri olur ve null desteklemez.

  • Kaçının ekleme ve silme işlemleri geçirecektir FILESTREAM sütunları içeren tablolar.Ekleme ve silme işlemleri için kullanılan FILESTREAM tabloları değiştirebilirsiniz atık koleksiyon.Bu, bir uygulamanın performans saat içinde azaltmak neden olabilir.

  • Çoğaltma kullanan uygulamalarda, NEWID() yerine NEWSEQUENTIALID() kullanın.NEWSEQUENTIALID(), bu uygulamalardan GUID üretimi için NEWID() daha iyi yapar.

  • FILESTREAM API Win32 akış verilere erişim için tasarlanmıştır.Kullanmaktan kaçının Transact-SQL için okuma veya yazma FILESTREAM ikili büyük nesneleri (BLOB) büyük2 mb.'den Okuma veya yazma blob verileri Transact-SQL, emin olun, tüm blob verileri etmelerini FILESTREAM BİRİMDEN açmaya çalışmadan önceWin32. Tüm tüketmeyi hata Transact-SQL veri neden hiçbir art arda FILESTREAM Aç veya kapatma işlemleri başarısız olur.

  • Kaçının Transact-SQL ifadeleri, güncelleştirme, ekleme veya önüne veriler için FILESTREAM DAMLA.Bu blob verileri içine biriktirilmesine neden olur tempdb veritabanı ve sonra tekrar bir yeni fiziksel dosya.

  • FILESTREAM BLOB'a küçük DAMLA güncelleştirmeleri ekleme kaçının.Her ekleme temel FILESTREAM dosyaların kopyalanmasını sağlar.Küçük BLOB'lar eklemek bir uygulama varsa, içine BLOB yazma bir varbinary(max) , sütun ve BLOB Sayısı önceden belirlenmiş bir sınırı. ulaştığında FILESTREAM DAMLA tek yazma işlemi gerçekleştirin

  • Bir uygulamada blob dosyaları çok sayıda veri uzunluğunu alınıyor kaçının.Boyut içinde saklanan bu saat alıcı bir işlem çünkü SQL Server Veritabanı Altyapısı.blob dosya uzunluğunu belirlemek gerekir kullanın Transact-SQL datalength() işlev kapalıysa DAMLA boyutunu belirlemek için.datalength() boyutunu belirlemek için blob dosya açılmaz.

  • Uygulama ileti Block1 kullanıyorsa (SMB1) protokol, FILESTREAM blob verileri okuma performansı en iyi duruma getirmek için 60 kb çarpan.

Ayrıca bkz.

Kavramlar