| Termin | Definicja |
|---|---|
| Widok z klauzulą WITH VIEW_METADATA | WITH VIEW_METADATA przekazuje aplikacjom klienckim metadane widoku zamiast tabel leżących pod nim. Widok z klauzulą WITH VIEW_METADATA – czym jest ta opcjaWidok z klauzulą W typowej definicji widoku kolumny wyniku mogą być kojarzone przez silnik z tabelami, z których pochodzą. Dla użytkownika końcowego nie zawsze jest to widoczne, ale aplikacja może otrzymać informacje sugerujące, że prezentowane pola należą bezpośrednio do tabel bazowych. Dodanie Opcja bywa używana w rozwiązaniach, w których widok pełni rolę stabilnego kontraktu pomiędzy bazą a aplikacją. Program otrzymuje nazwy i właściwości kolumn związane z widokiem, co ułatwia budowanie list, formularzy, raportów oraz mechanizmów automatycznego rozpoznawania dostępnych pól. Nie oznacza to jednak, że widok staje się tabelą ani że każda operacja zapisu będzie możliwa. O możliwości modyfikowania danych nadal decydują definicja zapytania, ograniczenia widoków oraz reguły zastosowane w konkretnej bazie. WITH VIEW_METADATA a kontekst techniczny i porównanie z tabeląNajłatwiej zrozumieć działanie tej klauzuli przez porównanie trzech warstw: tabeli źródłowej, zwykłego widoku oraz widoku z włączoną prezentacją metadanych widoku. Tabela jest fizycznym miejscem przechowywania rekordów i ma własny zestaw kolumn. Zwykły widok definiuje zapytanie, które może wybierać tylko część pól, łączyć informacje z kilku tabel, zmieniać nazwy kolumn albo wyliczać wartości. W rezultacie aplikacja widzi wynik zapytania, lecz niektóre mechanizmy rozpoznawania struktury mogą nadal docierać do informacji o obiektach leżących pod widokiem. Po użyciu Nie należy mylić tej opcji z mechanizmem zabezpieczającym sam w sobie. Klauzula nie zastępuje uprawnień, nie szyfruje danych i nie usuwa informacji z wyniku. Nie gwarantuje również pełnej niezależności od definicji tabel. Jeżeli aplikacja wymaga stabilnego interfejsu, należy świadomie zaprojektować nazwy kolumn, typy danych, wartości dopuszczalne oraz zachowanie po zmianie schematu. Ważne jest także rozróżnienie pomiędzy metadanymi zwracanymi aplikacji a metadanymi odczytywanymi bezpośrednio z katalogu systemowego. Narzędzie może korzystać z różnych mechanizmów i nie każdy z nich będzie reagował na tę klauzulę w identyczny sposób. Przed wdrożeniem trzeba sprawdzić rzeczywiste zachowanie sterownika, biblioteki dostępu do danych oraz programu, który ma używać widoku. Widok WITH VIEW_METADATA i typowe problemy w aplikacjachJednym z częstszych problemów jest założenie, że sama obecność klauzuli zmieni wszystkie informacje widoczne w każdym narzędziu administracyjnym. W praktyce aplikacje mogą pobierać opis kolumn na różne sposoby. Jedna korzysta z zapytania w trybie przeglądania, inna odwołuje się do katalogu systemowego, a jeszcze inna analizuje tekst definicji widoku. Dlatego dwa programy pracujące z tym samym obiektem mogą pokazać nieco inny zakres informacji. Trudności pojawiają się również wtedy, gdy widok zawiera kolumny wyliczane, funkcje, agregacje, operacje Inny kłopot dotyczy zmian w schemacie. Jeżeli widok został zaprojektowany bez jasno określonej listy kolumn, modyfikacja tabeli bazowej może wpłynąć na opis wyniku, kolejność pól albo typy wartości. Bezpieczniejszą praktyką jest jawne wymienianie kolumn w definicji widoku i kontrolowanie zmian w procedurze wdrożeniowej. Warto też testować zapytania używane przez aplikację po każdej modyfikacji tabel, widoków i sterowników. Nie powinno się także zakładać, że zmiana metadanych zawsze poprawi wydajność. Klauzula dotyczy sposobu prezentowania informacji o wyniku, a nie planu wykonania zapytania. O szybkości decydują między innymi warunki łączenia, filtry, indeksy, statystyki, liczba zwracanych rekordów i sposób pobierania danych przez klienta. Analizowanie czasu odpowiedzi wymaga osobnego testu, niezależnie od tego, czy widok używa WITH VIEW_METADATA – praktyczne wskazówki projektowePrzed zastosowaniem klauzuli warto ustalić, jaki problem ma zostać rozwiązany. Jeżeli celem jest ukrycie zależności aplikacji od tabel bazowych, widok powinien mieć spójne, zrozumiałe nazwy kolumn i możliwie stabilny zakres danych. Jeżeli celem jest współpraca z konkretnym formularzem lub narzędziem raportowym, należy sprawdzić, w jaki sposób ten program pobiera metadane. Sama nazwa opcji nie wystarcza do przewidzenia zachowania całego łańcucha: silnik, sterownik, biblioteka i interfejs użytkownika mogą interpretować wynik w odmienny sposób. Dobrym rozwiązaniem jest utworzenie testowego widoku zawierającego kilka rodzajów pól: kolumnę pobraną bezpośrednio, alias, wyrażenie obliczeniowe oraz pole pochodzące z połączenia. Następnie należy odczytać strukturę wyniku w tym samym trybie, którego używa aplikacja. Warto porównać widok zwykły z widokiem wyposażonym w Definicję należy dokumentować razem z informacją, dla jakiego klienta wprowadzono tę opcję. Ułatwia to późniejsze utrzymanie, ponieważ osoba zmieniająca zapytanie widoku wie, że modyfikacja może wpływać nie tylko na dane, lecz także na sposób ich opisywania. Przydatne jest również wersjonowanie definicji, testowanie zapytań po zmianach oraz kontrolowanie uprawnień niezależnie od warstwy prezentacji metadanych. Jeżeli aplikacja ma wykonywać zapis przez widok, trzeba osobno potwierdzić obsługę operacji dodawania, zmiany i usuwania. Widok łączący wiele tabel lub używający agregacji może być przeznaczony wyłącznie do odczytu. W takiej sytuacji zapis powinien odbywać się przez dedykowaną procedurę albo inną, jasno opisaną warstwę dostępu. Kiedy sprawdzić widok z WITH VIEW_METADATA w serwisie komputerowymDo serwisu warto zgłosić się wtedy, gdy problem z widokiem pojawia się razem z objawami wskazującymi na kłopot po stronie środowiska pracy: aplikacja przestaje rozpoznawać kolumny, formularz pokazuje niewłaściwe pola, raport nie potrafi ustalić źródła danych albo po aktualizacji sterownika zmienia się sposób prezentowania wyników. Przed przekazaniem sprzętu można zanotować nazwę aplikacji, rodzaj używanego połączenia z bazą, moment wystąpienia problemu oraz komunikat błędu. Takie informacje pomagają odróżnić błąd definicji widoku od problemu systemowego, sterownikowego lub sprzętowego. Warszawskie Pogotowie Komputerowe 24/7 zajmuje się diagnostyką laptopa i komputerów PC, gdy nieprawidłowe działanie narzędzi bazodanowych towarzyszy niestabilności systemu, problemom z uruchamianiem aplikacji, błędom dysku, pamięci lub połączeń sieciowych. W przypadku samego kodu SQL potrzebne może być wsparcie osoby administrującej bazą, natomiast serwis komputerowy może sprawdzić środowisko, na którym działa program, jego konfigurację oraz zależności systemowe. Dzięki temu łatwiej ustalić, czy przyczyna leży w definicji Nie należy zmieniać definicji widoku na komputerze używanym produkcyjnie bez kopii poprzedniej wersji i uzgodnienia wpływu na aplikacje. Bezpieczniej jest najpierw odtworzyć problem w środowisku testowym, porównać metadane obu wariantów i dopiero potem zaplanować zmianę. Jeżeli problem dotyczy jedynie jednego programu, szczególne znaczenie ma zgodność jego sterownika i ustawień połączenia. Jeżeli podobne objawy występują w wielu aplikacjach, trzeba rozszerzyć diagnozę na system, sprzęt oraz konfigurację sieciową. |