FILESTREAM en iyi yöntemler
Bu konu, FILESTREAM kullanmak için önerilen en iyi yöntemleri sağlar.
Fiziksel yapılandırma ve Bakım
Zaman, küme FILESTREAM Depolama birimleri, aşağıdaki yönergeleri dikkate alın:
Kısa dosya adlarını FILESTREAM bilgisayar sistemlerinde kapatın.Kısa dosya adları oluşturma önemli ölçüde uzun zaman alır.Kısa dosya adlarını devre dışı bırakmak için , Windows kullanın. fsutil yardımcı programı.
Düzenli olarak bilgisayar sistemleri FILESTREAM birleştirin.
NTFS kümeler 64 KB'ı kullanın.Sıkıştırılmış birim NTFS kümeleri 4 KB küme olması gerekir.
FILESTREAM birimlerde dizin oluşturma devre dışı bırakmak ve küme disablelastaccess Ayarlamak içindisablelastaccess, Windows kullanın.fsutil yardımcı programı.
Gereksiz değilse, 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.
Kurma ve hataya dayanıklılık ve bir uygulama tarafından gerekli olan performans RAID düzey ayarlamak.
RAID düzey |
Performans yazma |
Performans'ı okuyun |
Hataya dayanıklılık |
Açıklamalar |
RAID 5 |
Normal |
Normal |
Mükemmel |
Performans şeritleme ile daha iyi bir disk veya JBOD; RAID 0 ya da RAID-5'den daha az ise. |
RAID 0 |
Mükemmel |
Mükemmel |
None |
|
RAID 5 + stripping |
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:
Ilgili bir FILESTREAM sütunları birlikte gerekir uniqueidentifier ROWGUID sütun. Bu tür bir tablo benzersiz dizin de eşlik gerekir.Genellikle bu dizini kümelenmiş dizin değil.Veritabanlarının iş mantığı, kümelenmiş dizin gerektiriyorsa, dizinde depolanan değerleri rasgele olduğundan emin olmak vardır.Rasgele değerleri bir satır eklendiğinde veya tablodan kaldırmış oluşunuzda yeniden dizin neden olur.
Performansı düşürmemek için işletim sistemi dışındaki birimlerde bulunmalıdır FILESTREAM dosya gruplarını ve kapsayıcılar SQL Server Veritabanı SQL Server Günlük, tempdb veya disk belleği dosyası.
Doğrudan alan yönetimi ve ilkeleri FILESTREAM tarafından desteklenmiyor.Ancak, alan yönetebilir ve dolaylı olarak ayrı bir birime her FILESTREAM dosya grubu atama ve birim yönetimi özellikleri'ni kullanarak ilkeleri uygulanır.
Uygulama tasarım ve uygulama
Ne zaman tasarlıyorsanız ve FILESTREAM, kullanan uygulamalar için uygulama, aşağıdaki yönergeleri dikkate alın:
NULL, 0 x yerine olmayan başlatıldı FILESTREAM sütun göstermek için kullanın.0 X değeri oluşturulacak dosya neden olur ve NULL ile başlamıyor.
Ekleme önlemek ve işlemleri nonnull FILESTREAM sütunları içeren tabloları silin.Ekleme ve silme işlemlerine atık koleksiyon için kullanılan FILESTREAM tabloları değiştirebilirsiniz.Bu, bir uygulamanın performans saat içinde düşmesine neden olabilir.
Çoğaltma kullanan uygulamalarda, NEWSEQUENTIALID() NEWID() yerine kullanın.Bu uygulamalarda GUID oluşturma için NEWSEQUENTIALID() NEWID() daha iyi yapar.
FILESTREAM API, Win32 akış veri erişimi için tasarlanmıştır.Kullanmaktan kaçının Transact-SQL Okuma veya 2 MB'DEN büyük olan FILESTREAM ikili büyük nesne (BLOB'lar) yazmak için kullanın. Okuma veya BLOB verileri yazma Transact-SQL, tüm BLOB verileri tüketilen, bir Win32 FILESTREAM DAMLA açmaya çalışmadan önce olduğundan emin olun. Tüm tüketmek için hata Transact-SQL veri birbirini izleyen her FILESTREAM açık neden veya başarısız işlemleri kapatın.
Kaçının Transact-SQL Güncelleştirme, ekleme veya verileri FILESTREAM BLOB önüne deyimleri. Bu, BLOB verileri tempdb veritabanına biriktirilmesine ve sonra da yeni bir fiziksel dosyasına geri neden olur.
Küçük bir BLOB güncelleştirmeleri için bir FILESTREAM BLOB ekleme kaçının.Her ekleme, kopyalanacak temel FILESTREAM dosyaları neden olur.Bir uygulama küçük BLOB'lar eklemek, içine BLOB'lar yazma bir varbinary(max) sütun ve BLOB'lar sayıda önceden belirlenmiş bir sınır ulaştığında FILESTREAM DAMLA tek bir yazma işlemi sonra gerçekleştirin.
Veri uzunluğu çok sayıda uygulama BLOB dosyaları alınıyor kaçının.Boyut içinde depolanan bu saat alan bir işlem olduğundan SQL Server Database Engine. BLOB dosyasının uzunluğu belirlemelisiniz kullanın Transact-SQL DATALENGTH() işlev kapalı ise, DAMLA boyutu belirlenemiyor. DATALENGTH() boyutunu belirlemek için BLOB dosyasını açın.
Bir uygulama ileti Block1 kullanıyorsa (SMB1) protokol, FILESTREAM BLOB verileri performansını en iyi duruma getirmek için 60 KB katları okunması.