2012-07-25 8 views
5

Niedawno nasz zespół patrzył na FILESTREAM, aby rozszerzyć możliwości naszej zastrzeżonej aplikacji. Głównym celem tej aplikacji jest zarządzanie różnymi plikami PDF, obrazami i dokumentami do wszystkich produkowanych przez nas części. Nasza aplikacja ASP wykorzystuje kilka narzędzi innych firm, aby umożliwić przeglądanie tych plików. Obecnie mamy 980 GB danych na serwerze plików Fileserver. Mamy około 200 GB danych binarnych w SQL Server, które chcielibyśmy wyodrębnić, ponieważ nie osiągają dobrych wyników, dlatego FILESTREAM wydaje się być dobrym kompromisem dla dwóch głównych problemów związanych z przechowywaniem danych/dostępem.FILESTREAM/FILETABLE Wyjaśnienia dotyczące implementacji

Kilka rzeczy nie są do końca jasne do nas:

  1. FILESTREAM Może lub nie może przechowywać swoje dane na dysku, który nie jest dołączony lokalnie. Mamy już serwer plików z RAIDem 10 (dyski 1,5 TB). Ten serwer przechowuje teraz wszystkie dokumenty, czy będziemy musieli przenieść te dyski do SQL Server dla FILESTREAM? Byłoby to trudne do pokonania, ponieważ serwer również podwaja się jako serwer aplikacji (dwie maszyny wirtualne na jednym serwerze fizycznym).

  2. FILETABLE zapisuje wspólne metadane dotyczące plików, ale gdzie jest przechowywana jego część Full Text, aby umożliwić wyszukiwanie plików takich jak doc/docx? Czy to jest oddzielne? Czy możesz dowolnie dodawać kryteria do tego wyszukiwania? Jeśli tak, docenione zostaną wszelkie linki do wyjaśnienia.

  3. Czy FILETABLE można odwoływać się do innej tabeli za pomocą klucza obcego?

góry dziękuję

EDIT: Dla tych, którzy mają na te pytania to Web Video pokrywa wszystko i wiele więcej w zakresie wyjaśniania filestream od 2008 do 2012 i cavets rozważyć (I poważnie rep go, czy Mógłbym): http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2270

Podsumowując, nie będziemy używać FILESTREAM, ponieważ byłby to sposób na ogromny wzrost w celu dostosowania się do inwestycji.

EDIT 2:

Aktualizacja # 1 - Po dokładnym oceny FileTable oprócz FILESTREAM mamy zwycięskiej kombinacji. Musieliśmy przenieść pliki na nowy serwer (nie było to bolesne, ponieważ były na tej samej maszynie wirtualnej). Naprawdę zajęło to więcej czasu, aby napisać narzędzie do ekstrakcji, aby zrzucić dane binarne w SQL do systemu plików.

Aktualizacja # 2 - To była oddzielna ale znowu Bob miał doskonałą webinar wyjaśniający to: http://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411

Aktualizacja # 3 - Korzystanie z dziedziczenia TFT my recyklingu tabelę Dokumenty mieliśmy (minus ogromne plamy binarne), które Wymagało bardzo niewielkich zmian w naszych starszych aplikacjach. To był duży wysiłek dla zespołu programistów.

Odpowiedz

3

Lokalizacja, w której przechowywane są pliki dla FileTables, musi być lokalna lub przynajmniej musi być widoczna dla SQL Server jako lokalna, więc sprytny sterownik san może ją oszukać. Ponieważ elementy FileTables zostały zbudowane na FILESTREAM, wyobrażam sobie, że ograniczenia są takie same.

Przeszukiwanie zliczeń odbywa się za pomocą funkcji containstable, która jest udokumentowana on MSDN kryteria wyszukiwania używają tej samej składni jak FULLTEXT przeszukując AFAIK.

Dla wszystkich celów i przeznaczenia FileTable jest typową tabelą, więc można ją połączyć, przeszukać lub cokolwiek innego.Jedyną rzeczą jest to, że musisz użyć niektórych funkcji serwera sql, aby zmienić GUID FILMU w coś bardziej użytecznego, jak ścieżka pliku.

+0

Spot na. Spotkaliśmy małe niedogodności, ponieważ używamy struktury encji. Uciekliśmy się za pomocą klawisza programowalnego (jak w przypadku żadnego ograniczenia FK) do strumienia stream_id. Projektant EF całkowicie ignoruje FileTables. Właśnie zrobiliśmy mały projekt ADO.Net w naszym głównym projekcie, aby przesłać/pobrać dokumenty. – jjhayter

Powiązane problemy