Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Tabela zewnętrzna

Termin Definicja
Tabela zewnętrzna

Tabela zewnętrzna odwołuje się do danych przechowywanych poza bieżącą bazą, np. przez PolyBase lub Linked Server.

Rola tabeli zewnętrznej w SQL Server

Tabela zewnętrzna w SQL Server jest obiektem opisującym strukturę danych znajdujących się poza bieżącą bazą danych. W lokalnej bazie zapisuje się metadane, takie jak nazwa obiektu, kolumny i typy danych, natomiast właściwe rekordy pozostają w zewnętrznym źródle. Dzięki temu zapytanie wykonywane w SQL Server może odwoływać się do danych przechowywanych poza standardowymi tabelami użytkownika, bez kopiowania całego zbioru do lokalnych stron danych.

Sam obiekt tabeli zewnętrznej nie oznacza jednej, uniwersalnej technologii dostępu. Sposób odczytu zależy od użytego mechanizmu, konfiguracji źródła oraz sterownika lub konektora. W środowisku SQL Server pojęcie to może być związane między innymi z PolyBase, które pozwala definiować obiekty dla danych zewnętrznych, oraz z dostępem do zdalnych źródeł przez Linked Server. Są to jednak odmienne mechanizmy i nie należy zakładać, że każda tabela zewnętrzna korzysta z identycznego sposobu uwierzytelniania, optymalizacji i zapisu danych.

PolyBase i Linked Server: dwa różne sposoby dostępu

PolyBase służy do integracji SQL Server z wybranymi zewnętrznymi źródłami danych. W zależności od wersji SQL Server i użytej konfiguracji może obsługiwać między innymi pliki w magazynach obiektowych, dane Hadoop lub inne źródła dostępne przez właściwe konektory. Definicja tabeli zewnętrznej określa kolumny oraz wskazuje obiekt zewnętrzny, taki jak źródło danych i format pliku. SQL Server może następnie wykonać zapytanie bez wcześniejszego zaimportowania wszystkich danych do tabeli lokalnej.

Linked Server tworzy logiczne połączenie między instancją SQL Server a zdalnym serwerem lub dostawcą danych. Do odwołania można użyć nazwy serwera połączonego, katalogu, schematu i obiektu, na przykład w czteroczęściowej nazwie obiektu. W tym przypadku dostęp do danych zależy od providera OLE DB, ustawień poświadczeń oraz możliwości zdalnego systemu. Linked Server nie jest tym samym co tabela zewnętrzna PolyBase: oba rozwiązania umożliwiają pracę z danymi poza bieżącą bazą, ale realizują ją przez inne warstwy dostępu.

Plan wykonania, typy danych i ograniczenia zapytań

Zapytanie dotyczące tabeli zewnętrznej może mieć inną charakterystykę wydajnościową niż zapytanie do tabeli lokalnej. SQL Server musi uwzględnić koszt przesłania danych, dostępność predykatów w zewnętrznym źródle oraz możliwość wykonania części operacji poza bieżącą instancją. Jeżeli filtr nie zostanie przekazany do źródła, system może pobrać większy zakres danych i dopiero później odrzucić niepotrzebne wiersze. Takie zachowanie zwiększa czas odpowiedzi i zużycie przepustowości.

Istotne jest dokładne odwzorowanie typów danych. Różnice w długości tekstu, precyzji liczb dziesiętnych, obsłudze wartości NULL, kodowaniu znaków lub strefach czasowych mogą powodować konwersje i błędy podczas wykonywania zapytania. Nieprawidłowy typ kolumny może także zmienić sposób porównywania wartości albo doprowadzić do utraty części informacji. Przy projektowaniu definicji należy więc sprawdzić schemat źródłowy, format danych i zasady konwersji obowiązujące w konkretnym konektorze.

Tabela zewnętrzna nie zawsze zapewnia taki sam zestaw operacji jak tabela lokalna. Możliwość wykonywania INSERT, UPDATE lub DELETE zależy od mechanizmu dostępu, źródła i jego uprawnień. W przypadku plików zewnętrznych często podstawowym zastosowaniem jest odczyt, natomiast modyfikacja może być niedostępna albo wymagać osobnego procesu. Ograniczenia mogą dotyczyć również indeksów, kluczy głównych, transakcji, blokad i gwarancji spójności. Te właściwości trzeba zweryfikować dla konkretnej wersji SQL Server oraz wybranego źródła danych.

Diagnostyka niedostępnej tabeli zewnętrznej

Problemy z tabelą zewnętrzną należy rozdzielić na błędy definicji, połączenia, uprawnień i danych. Najpierw sprawdza się, czy obiekt istnieje w oczekiwanej bazie, schemacie i nazwie. Następnie analizuje się konfigurację zewnętrznego źródła, lokalizację pliku lub adres zdalnego systemu oraz sposób uwierzytelniania. Komunikat o braku obiektu może oznaczać zarówno błędną nazwę, jak i brak dostępu do źródła, dlatego sama treść błędu nie zawsze wskazuje bezpośrednią przyczynę.

W przypadku Linked Server należy sprawdzić dostępność zdalnego serwera, konfigurację providera oraz mapowanie lokalnego użytkownika na konto zdalne. Przy PolyBase trzeba dodatkowo zweryfikować definicję źródła danych, format zewnętrzny i zgodność lokalizacji z używanym konektorem. Jeżeli odczyt działa dla małego zakresu, ale pełne zapytanie kończy się przekroczeniem czasu, przyczyną może być brak filtrowania po stronie źródła, duża liczba rekordów albo nieefektywna konwersja typów.

Diagnostyka i naprawa komputera, na którym występują problemy z klientem SQL Server, sterownikiem lub konfiguracją połączenia, powinna obejmować sprawdzenie systemu, sieci, zainstalowanych komponentów i ustawień aplikacji. Należy także rozróżnić usterkę sprzętową od błędu konfiguracji bazy lub zdalnego źródła, ponieważ wymiana podzespołu nie naprawi nieprawidłowej definicji tabeli zewnętrznej.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę