FILESTREAM genel bakış

Ne kadar veri, metin belgeleri, resimleri ve videoları gibi yapılandırılmamış.Bu yapılandırılmamış veriler genellikle kendi yapılandırılmış veri ayrı veritabanı dışında depolanır.Bu ayrım, veri yönetimi karmaşıklık neden olabilir.Veya verileri yapılandırılmış depolama ile ilişkili ise, dosya akış yeteneklerini ve performans sınırlı olabilir.

FILESTREAM tümleştirir SQL Server Veritabanı Altyapısı ile bir ntfs dosya sistemi depolayarak varbinary(max) bir ikili büyük nesne (blob) veri dosyaları dosya sistemi. Transact-SQL ifadeleri eklemek, güncelleştirmek, sorgulayabilen, aramak ve yedeklemek FILESTREAM veri.Win32 dosya sistem arabirimleri veri akış erişim sağlar.

FILESTREAM, dosya veri önbelleğe alma için nt sistem önbelleği kullanır.Bu olabilecek FILESTREAM veri üzerinde herhangi bir etkisi azaltılmasına yardımcı olur Veritabanı Altyapısı Performans.The SQL Server buffer pool is not used; therefore, this memory is available for query processing.

Not

FILESTREAM veri saydam olduğunda bile şifreli verileri değil şifreleme etkindir.

İzlenecek FILESTREAM nasıl gösteren bir yol için bkz: FILESTREAM depolama ile Başlarken.

FILESTREAM kullanıldığı durumlar

De SQL Server, BLOB standart olabilir varbinary(max) veri tabloları veya FILESTREAM verileri depolayan varbinary(max) nesneleri depolamak verilerde dosya sistemi.Veri kullanımı ve boyutu, veritabanı depolama veya dosya sistemi depolama kullanması gerekip gerekmediğini belirler.Aşağıdaki koşullar doğruysa, FILESTREAM kullanarak düşünmelisiniz:

  • Depolanmış olan, ortalama olarak 1 MB'den daha büyük nesneleridir.

  • Hızlı Okuma erişimi önemlidir.

  • Orta katman uygulama mantığı için kullanan uygulamalar geliştirmektedir.

Daha küçük nesneleri depolamak için varbinary(max) BLOB'lar genellikle veritabanındaki sağlar akış daha iyi performans.

FILESTREAM depolama

FILESTREAM depolama olarak gerçekleştirilir bir varbinary(max) sütun , hangi verileri BLOB dosya sisteminde depolanır.Dosya sistemi birimin boyutuna göre yalnızca BLOB'lar boyutları sınırlıdır.Standart varbinary(max) 2 gb dosya boyutu sınırlaması uygulanmaz BLOB, depolanmış olan dosya sistemi.

Bir sütun, üzerindeki dosya sistemini veri depolamanız gerekir belirtmek için FILESTREAM öznitelik belirtin bir varbinary(max) sütun.Bu neden olur Veritabanı Altyapısı , dosya sisteminde, ancak o sütun için tüm verileri depolamak içinveritabanı dosyası.

FILESTREAM dosya FILESTREAM veri depolanması gerekir.FILESTREAM dosya grubu dosyaların kendileri yerine dosya sistemi dizinleri içeren özel bir dosya grubu olur.Bu dosya sistemi dizinleri adlı veri konteyneri.Veri kaplardır arasındaki arabirim Veritabanı Altyapısı Depolama ve dosya sistemi depolama.

FILESTREAM depolama kullandığınızda, aşağıdakileri göz önünde bulundurun:

  • FILESTREAM sütun bir tablo içeriyorsa, her satır bir null olmayan benzersiz satır kimliği olması gerekir.

  • FILESTREAM veri kapsayıcıları iç içe olamaz.

  • Yük devretme kullanırken kümeleme, paylaşılan disk kaynaklarında FILESTREAM filegroups olmalıdır.

  • FILESTREAM filegroups sıkıştırılmış birimlerde olabilir.

Tümleşik güvenlik

De SQL Server, yalnızca diğer veri güvenliği gibi FILESTREAM veri güvenliği: Tablo izinleri verme tarafından veya sütun düzeyleri.Bir kullanıcının FILESTREAM sütununa izin sahip olup bir tablo, kullanıcı ilişkili dosyaları açabilirsiniz.

Not

FILESTREAM verilerini şifreleme desteklenir.

Yalnızca altında çalışacağı hesabın SQL Server hizmet hesabı çalışır FILESTREAM için ntfs izinleri verilmiş kapsayıcı.Başka bir hesap verileri izin verilmemesini öneririz kapsayıcı.

Tümleşik Yönetim

FILESTREAM olarak uygulanır, çünkü bir varbinary(max) sütun ve doğrudan tümleşik Veritabanı Altyapısı, çoğu SQL Server Yönetim araçlarını ve işlevlerini çalışma yapılmaksızın FILESTREAM veri.Örneğin, tüm yedek ve kurtarma modelleri FILESTREAM verilerle kullanabilir ve yapılandırılmış veri veritabanı ile FILESTREAM veriler yedeklenir.FILESTREAM verileri ilişkisel veri yedekk istemiyorsanız, kullanabileceğiniz bir kısmi yedek FILESTREAM filegroups dışlamak için.

Access blob verileri için çift programlama modeli

Bir FILESTREAM içinde veri depolamak sonra sütun, dosyaları kullanarak erişebileceğiniz Transact-SQL hareketleri veya kullanarak Win32 API'leri.

Transact-sql erişim

Kullanarak Transact-SQL, Ekle, güncelleştir ve FILESTREAM verileri silme:

  • Satır içi veri görece kısa veya null değer, null değer içeren alan FILESTREAM önceden doldurmak için bir ekleme işlemi kullanın.Ancak, büyük miktarda veri daha verimli bir şekilde Win32 arabirimleri kullanan bir dosyaya akış.

  • Bir FILESTREAM güncelleştirdiğinizde alan, dosya sisteminde temel blob verileri değiştirin.FILESTREAM alanı olduğunda küme , boş alanla ilişkilendirilmiş blob verileri silinir.Kullanamazsınız bir Transact-SQL yığın güncelleştirme uygulanan güncelleştirme olarak**.**Veri kısmi güncelleştirmeleri gerçekleştirmek için Write(),.

  • Bir satırı silmek veya silmek veya FILESTREAM verileri içeren tablo kesmek, dosya sisteminde temel blob verileri silin.

Akış dosya sistem erişimi

Win32 akış desteği bağlamında çalışan bir SQL Server hareket.Bir hareket içinde FILESTREAM işlevlerini mantıksal bir unc dosya sistemi edinmek için kullanabileceğiniz yol dosyası.Daha sonra OpenSqlFilestream API elde bir dosya tanıtıcısı.Bu tanıtıcı, arabirimleri gibi akış Win32 dosya tarafından kullanılabilir ReadFile() ve **WriteFile()**için erişim ve güncelleştirme dosyası tarafından yoluyla dosya sistemi.

Dosya işlemleri işlem olduğundan, silemez veya dosya sistemi üzerinden FILESTREAM dosyalarını yeniden adlandırın.

Deyimi modeli

FILESTREAM dosya sistemi erişim modelleri bir Transact-SQL deyim dosyasını kullanarak açın ve kapatın.Deyim bir dosya tanıtıcı açılır ve tanıtıcı kapalı olduğunda biter başlar.Örneğin, yazma tanıtıcı bir update deyim gibi tamamlanırsa, tablo geçirilir üzerinde kayıtlı tetikleyici sonra kapalı, her mümkün olduğunda.

Depolama Namespace

FILESTREAM, de Veritabanı Altyapısı denetler blob fiziksel dosya sistemi ad alanı.Yeni bir iç işlev yol, her FILESTREAM için karşılık gelen DAMLA mantıksal unc yolunu sağlar hücre tablo.Bu mantıksal uygulamanın kullandığı yol Win32 işleyicisi elde edilir ve düzenli Win32 dosya sistem arabirimleri kullanarak blob verileri üzerinde çalışır.işlev null döndürür FILESTREAM değerini sütun null olur.

İşlem temelli dosya sistem erişimi

Yeni bir iç işlev GET_FILESTREAM_TRANSACTION_CONTEXT(), geçerli oturum ile ilişkili hareket temsil eden simge sağlar.Hareket başladı ve henüz tamamlanmış ya da iptal edilmiş olmalıdır.Uygulama, bir belirteç elde ederek FILESTREAM dosya sistemi akış işlemleri başlatılan bir hareket ile bağlar.işlev null verir durum açıkça başlatılan hareket yok.

Hareketi tamamlar veya iptal eder önce tüm dosya tanıtıcıları kapatılmalıdır.Bir tanıtıcı işlem kapsam dışında açık bırakılırsa tutamacını karşı ek okuma bir hatasına neden olur; Ek yazma tutamacını karşı başarılı olur, ancak gerçek veri yazılmış diske.Benzer şekilde, veritabanı veya örnek , Veritabanı Altyapısı kapatan tüm açık işleyicileri geçersiz kılınır, kapalı.

İşlem dayanıklılık

Hareket yürütme sırasında FILESTREAM ile Veritabanı Altyapısı dosya sistemi akış erişimi değişiklik FILESTREAM blob verileri için hareket dayanıklılık sağlar

Uzak istemcilerden gelen yazma

Sunucu İleti Bloğu (smb) üzerinden uzak dosya sistemi FILESTREAM verilere erişimi etkin protokol.İstemci uzak ise, hiçbir yazma işlemi istemci tarafından önbelleğe alınır.Yazma işlemleri her zaman sunucuya gönderilir.Verileri sunucu tarafında önbelleğe alınabilir.Uzak istemciler üzerinde çalışan uygulamalar küçük birleştirmek öneririz daha az yapmak için yazma işlemleri daha büyük veri boyutu kullanarak yazın.

FILESTREAM tutamacını kullanarak (bellek eşleştirilmiş g/Ç) bellekle eşlenen görünümleri oluşturma desteklenmiyor.Bellek eşleme FILESTREAM veri için kullanılıyorsa, Veritabanı Altyapısı tutarlılığı ve veri dayanıklılığı garanti edemez veya bütünlük veritabanı.

Windows Logo sertifika

FILESTREAM RsFx sürücü için sertifikalı Windows Server 2008 R2.Katalog dosyasını karşıdan yükleme ve daha fazla bilgi için bkz: sql Server 2008 R2 FileStream sürücüsü Windows Logo sertifika Microsoft Yükleme Merkezi'nde.