SharePoint, Power Platform Blog STRONA GŁÓWNA

SharePoint i Windows Internal Database znany jako SQL Server Embedded Edition vs SQL Express

Czy wiecie, że darmowa wersja MS SQL nie musi mieć limitu na wielkość bazy?

Jeżeli tego nie wiecie, to zacznijmy od początku.

Znanym powszechnie jest fakt, że SharePoint potrzebuje do działania bazy danych MS SQL. Tutaj jednak otwiera się przed nami pełna gama równych możliwości od darmowej wersji bazy danych poprzez wersje płatne.

W dalszej części skupimy się wyłącznie na wersji darmowej.

Najczęściej podczas instalacji chęć kierowania się 'najlepszymi praktykami' sprawia, że tworzymy, nawet instalując wszystko na jednym serwerze, oddzielną instalację SQL Express i następnie instalujemy program SharePoint, który korzysta z zainstalowanej wcześniej bazy. Takie podejście jak najbardziej poprawne sprawia jednak, że w niedługim czasie napotykamy problem dotyczący limitu zawartości bazy

Rozwiązania są trzy:

Rozwiązanie nr 1 - zakup wersji komercyjnej i zmiana bazy SharePoint na pełną wersję SQL-a.
O ile to rozwiązanie technicznie jest najbardziej słuszne, o tyle trzeba mieć na nie przygotowane w budżecie niemałe pieniądze. Jak rozumiem, skoro na początku sięgnęliśmy po wersję darmową, to pewnie z budżetem na wersję komercyjną mogą być problemy.

Rozwiązanie nr 2 - zmiana architektury SharePoint'a. Ograniczenie wielkości bazy dotyczy ... pojedynczej bazy a nie programu SQL Express. Może warto więc rozdzielić naszą instancję SharePoint'a na różne bazy zawartości, np. oddzielny zbiór witryn na dokumenty firmowe, oddzielny zbiór witryn na część komunikacyjną, oddzielny zbiór witryn na witryny projektowe, itp. Podział wykonujemy w ten sposób, żeby każdy nowy zbiór witryn miał jednocześnie nową bazę zawartości. W tym podejściu uzyskujemy zwielokrotnienie limitu całej instalacji naszego SharePoint'a.

Rozwiązanie nr 3 - 'ręka na pulsie' czyli ciągłe czyszczenie naszego portalu z niepotrzebnych informacji i dokumentów. Ciekawą opcją, aczkolwiek dość ryzykowną, jest wyłączenie Kosza w opcjach witryny administracyjnej, dzięki czemu przez uzyskujemy od razu dodatkową przestrzeń. To rozwiązanie, mimo swojej skuteczności wymaga jednak sporego zaangażowania w codzienny serwis.

Rozwiązanie 'zero' to zapobieganie powyższej sytuacji, poprzez zastosowanie zamiast SQL Express bazy Windows Internal Database (SQL Server Embedded) - która również jest darmowa!. Warto natomiast wiedzieć, że baza Windows Internal Database w odróżnieniu do SQL Express nie posiada wbudowanego ograniczenia wielkości bazy. Oczywiście są też drobne utrudnienia, takie jak sposób połączenia z taką bazą czy też sposób tworzenia backupów, ale i ten element łatwo obejść.

Poniżej przedstawiam krótką tabelę podsumowującą podobieństwa i różnice obu baz

  SQL Express SQL Server Embedded
Ograniczenie wielkości bazy

Tak, w zależności od wersji:

  • 4 GB - SQL Server Express 2005 i 2008
  • 10GB -SQL Server Express 2008 R2 i 2012
 Bez ograniczenia wielkości bazy!
 Sposób instalacji  Podobnie jak w przypadku wersji komercyjnej Nie ma potrzeby oddzielnego instalowania bazy. Jest ona częścią instalatora SharePoint
Instalacja na kontrolerze domeny  Podobnie jak w przypadku wersji komercyjnej Na kontrolerze domeny nie można zainstalować SharePoint'a z tym rodzajem bazy
Architektura programu SharePoint Podobnie jak w przypadku wersji komercyjnej Możliwość wykorzystania Windows Internal Database jedynie w przypadku, gdy baza danych jest na tej samej maszynie co program SharePoint.
Sposób połączenia z bazą
poprzez SQL Server Management Studio
Podobnie jak w przypadku wersji komercyjnej

SQL Server Management Studio Express umożliwia połączenie z bazą Windows Internal Database, ale wymaga to użycia w polu 'Server name' wpisu:

  • \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query (dla wersji: 2003-2008)
  • \\.\pipe\MICROSOFT##WID\tsql\query (dla wersji: 2012)

Pamiętajmy jednak poprzednie uwarunkowanie. To połączenie działa jedynie lokalnie. SQL Server Management Studio Express musi być na tej samej maszynie.

Jak w polu lookup filtrować wyświetlane elementy

Opis sytuacji: 

Prowadzimy wypożyczalnie książek i chcemy mieć listę wszystkich rezerwacji

Mamy dwie listy,

1. Pierwsza z nich to ta na której mamy spis wszystkich książek

undefined

2. Druga zawiera formularz rezerwacji pokoju, przy czym jednym z pól formularza jest odnośnik (pole typu lookup) do listy książek

undefined

Konkretne zadanie brzmi więc tak: Jak zrobić, żeby w tym polu, w liście rozwijanej pojawiały się tylko te książki, które nie są wypożyczone ?.

Krok 1 - Na liście zawierającej nasz spis, tworzymy kolumnę obliczeniową, która będzie zawierała odpowiednią treść w zależności od statusu książki

undefined

w polu definiowania warunku wpisujemy:

=JEŻELI(Status="Dostępna";Tytuł;"")

 Dzięki temu warunkowi kolumna będzie pusta dla książek wypożyczonych.

 

Krok 2 - Na liście wypożyczeń, w kolumnie  zamieniamy mapowanie pola z 'Tytuł' na 'Dostępne książki'

undefined

Od tej chwili w polu wyboru książki, na formularzu wypożyczenia, będą widoczne tylko te pozycje, których status jest równy "Dostępna".

Żeby aplikacja miała większy sens funkcjonalny, pozostaje opracowanie procesów worfklow, które w tle aktualizują statusy książek, w przypadku wpisania rezerwacji bądź w przypadku zwrotu książki. 

Home