Najważniejsze wskazówki dotyczące FILESTREAM
Ten temat zawiera zalecane najważniejsze wskazówki dotyczące używania FILESTREAM.
Fizycznej konfiguracji i konserwacji
Gdy użytkownik zestaw up FILESTREAM woluminy magazynu, należy wziąć pod uwagę następujące wskazówki:
Wyłącz krótkich nazw plików w systemach komputerowych FILESTREAM.Krótkie nazwy plików znacznie dłużej tworzyć.Aby wyłączyć krótkie nazwy plików, użyj okna fsutil narzędzia.
Regularnie defragmentuj FILESTREAM systemów komputerowych.
Za pomocą klastrów NTFS 64 KB.Woluminy skompresowane musi być zestaw 4 KB NTFS klastrów.
Wyłącz indeksowanie na woluminach FILESTREAM i zestaw disablelastaccess do zestaw disablelastaccess, narzędzie Windows fsutil narzędzia.
Wyłącz antywirusowe skanowania FILESTREAM woluminów, gdy nie jest konieczne.Skanowanie antywirusowe jest konieczne, należy unikać ustawiania zasad, które automatycznie usunie pliki naruszającym przepisy.
Konfigurowanie i strojenie poziom macierzy RAID, odporność na uszkodzenia i wydajności, które są wymagane przez aplikację.
Poziom macierzy RAID |
Wydajność zapisu |
Wydajność odczytu |
Odporność na uszkodzenia |
Uwagi |
RAID 5 |
Normalny |
Normalny |
Doskonała |
Wydajność jest lepsze niż jeden dysk lub JBOD; i mniej niż RAID 0 lub RAID-5 z rozkładanie. |
RAID 0 |
Doskonała |
Doskonała |
Brak |
|
RAID 5 + oddzielania |
Doskonała |
Doskonała |
Doskonała |
Opcja najbardziej kosztowne. |
Projekt fizycznej bazy danych
Podczas projektowania bazy danych FILESTREAM należy wziąć pod uwagę następujące wskazówki:
FILESTREAM columns must be accompanied by a corresponding uniqueidentifier ROWGUID column.Te rodzaje tabel muszą towarzyszyć indeks unikatowy.Zazwyczaj ten indeks nie jest indeks klastrowany.Logika biznesowa baz danych wymaga indeks klastrowany, należy upewnić się, że wartości przechowywane w indeksie nie są losowe.Wartości losowe spowoduje indeksu na zmianę kolejności co czas dodawane lub usuwane z tabela Wiersz.
Ze względu na wydajność FILESTREAM aplikacjami i pojemniki powinny rezydują na woluminach innych niż system operacyjny SQL Server bazy danych, SQL Server dziennika, tempdb, lub w pliku stronicowania.
Zarządzanie miejscem i zasady nie są bezpośrednio obsługiwane przez FILESTREAM.Jednakże można zarządzać miejsca i stosowanie zasad pośrednio przypisując każda grupa plików FILESTREAM oddzielnego woluminu i za pomocą funkcji zarządzania woluminu.
Aplikacja projektowanie i wdrażanie
Podczas projektowania i wdrażania aplikacji używających FILESTREAM, należy wziąć pod uwagę następujące wskazówki:
Reprezentują kolumna FILESTREAM-zainicjowane za pomocą wartości NULL, a nie 0 x.Wartość 0 x powoduje, że plik ma zostać utworzony i nie zawiera wartości NULL.
Uniknięcie wstawiania i usuwania operacji w tabelach, które zawierają niepustych kolumn FILESTREAM.Wstawianie i usuwanie operacji można modyfikować tabele FILESTREAM, które są używane do wyrzucanie elementów bezużytecznych.Może to spowodować wydajność aplikacji zmniejszanie czas.
W aplikacjach, które używają replikacja należy użyć NEWSEQUENTIALID() zamiast NEWID().NEWSEQUENTIALID() wykonuje się lepiej niż NEWID() do generowania identyfikatora GUID w tych aplikacjach.
Interfejs API FILESTREAM jest przeznaczony dla Win32 strumieniowych dostępu do danych.Należy unikać Transact-SQL do odczytu lub zapisu FILESTREAM duże obiekty binarne (bloków BLOB) są większe niż 2 MB.Jeśli musi odczytu lub zapisu danych typu BLOB z Transact-SQL, upewnij się, że wszystkich danych typu BLOB jest zużyta, zanim spróbujesz otworzyć BLOB FILESTREAM z systemu Win32.Niepowodzenie wykorzystywać wszystkie Transact-SQL danych może powodować żadnych kolejnych FILESTREAM Otwórz lub zamknij operacje zakończą się niepowodzeniem.
Należy unikać Transact-SQL instrukcji, które aktualizacji, Dołącz lub dołączana dane do FILESTREAM BLOB.Powoduje to BLOB dane są buforowane w tempdb bazy danych, a następnie powtórz do nowego pliku fizycznego.
Należy unikać dołączane małych aktualizacje BLOB FILESTREAM BLOB.Każdy append powoduje podstawowej FILESTREAM pliki do skopiowania.Jeśli aplikacja ma dołączyć małych obiektów blob, napisz bloków BLOB w varbinary(max) kolumna, a następnie przeprowadzić operacji jednego zapisu do obiektu BLOB FILESTREAM, gdy liczba bloków BLOB osiągnie limit wstępnie.
Należy unikać pobierania długość danych partii BLOB pliki w aplikacji.Jest to czas-zużywających operacji, ponieważ rozmiar nie jest przechowywana w Aparat baz danych programu SQL Server.Jeśli trzeba określić długość pliku BLOB, Transact-SQL DATALENGTH() funkcja rozmiar obiektu BLOB, jeśli jest zamknięta.DATALENGTH() nie otwiera pliku BLOB, określić jego rozmiaru.
Jeśli aplikacja używa Block1 wiadomości protokół (SMBl) danych typu BLOB FILESTREAM powinny być odczytywane w wielokrotności 60 KB w celu zoptymalizowania wydajności.