Wycieczka od programu Access do programu SQL Server

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Po przeprowadzeniu migracji danych z programu Access do programu SQL Server masz już bazę danych klient/serwer, która może być rozwiązaniem lokalnym lub hybrydowym w chmurze platformy Azure. W każdym przypadku program Access jest teraz warstwą prezentacji, a program SQL Server jest warstwą danych. Teraz nadszedł czas na ponowne przemyślenie aspektów swojego rozwiązania, a zwłaszcza wydajności zapytań, zabezpieczeń i ciągłości działania firmy, dzięki czemu możesz ulepszyć i skalować swoje rozwiązanie bazy danych.

Dostęp lokalny i w chmurze Pierwsze spotkanie użytkownika programu Access z dokumentacją SQL Server i Azure może wydawać się trudne. Ta sytuacja aż się prosi o przewodnik, który zapozna Cię z najważniejszymi informacjami, które mają dla Ciebie znaczenie. Po zakończeniu tej wycieczki będziesz gotowy do zapoznania się z postępami w technologii baz danych i dłuższej podróży.

W tym artykule

Zarządzanie bazą danych
Zachowanie ciągłości działania
Zabezpieczenia programu SQL Server
Obsługa obaw dotyczących prywatności
Tworzenie migawek bazy danych
Kontrola współbieżności
Zapytania i powiązane tematy
Optymalizowanie wydajności zapytania
Sposoby tworzenia zapytań
Dodawanie kluczy i indeksów
Wykonywanie transakcji
Korzystanie z ograniczeń i wyzwalaczy
Typy danych
Używanie kolumn obliczanych
Sygnatura czasowa danych
Zarządzanie dużymi obiektami
Różne
Praca z danymi hierarchicznymi
Manipulowanie tekstem w formacie JSON


Zasoby

Zachowanie ciągłości działania

W przypadku rozwiązania w programie Access zadbaj o zapewnienie, że pracuje ono z minimalnymi przerwami, ale opcje dotyczące bazy danych zaplecza w programie Access są ograniczone. Tworzenie kopii zapasowej bazy danych programu Access jest bardzo istotne dla ochrony danych, ale wymaga przejścia użytkowników w tryb offline. Ponadto istnieją niezaplanowane przestoje powodowane przez modernizacje sprzętu/uaktualnienia oprogramowania podczas konserwacji, przerwy w działaniu sieci lub zasilania, awarie sprzętu, naruszenia zabezpieczeń a nawet cyberataki. W celu zminimalizowania przestojów i wpływu na działalność firmy możesz utworzyć kopię zapasową bazy danych programu SQL Server, gdy jest ona używana. Ponadto program SQL Server oferuje także strategie wysokiej dostępności (HA) i odzyskiwania po awarii (DR). Te dwie połączone technologie są nazywane HADR. Aby uzyskać więcej informacji, zobacz Ciągłość działania i odzyskiwanie bazy danych oraz Zwiększanie ciągłości działania dzięki SQL Server (e-book).

Kopia zapasowa podczas używania

Program SQL Server używa procesu tworzenia kopii zapasowej online, który może wystąpić podczas działania bazy danych. Możesz wykonać pełną kopię zapasową, częściową kopię zapasową lub kopię zapasową pliku. Kopia zapasowa kopiuje dane i dzienniki transakcji w celu zapewnienia pełnej operacji przywracania. Szczególnie w przypadku rozwiązania lokalnego należy zdawać sobie sprawę z różnic między opcjami prostego i pełnego odzyskiwania oraz z ich wpływu na przyrost dziennika transakcji. Aby uzyskać więcej informacji, zobacz Modele odzyskiwania.

Większość operacji tworzenia kopii zapasowych występuje od razu, z wyjątkiem operacji zarządzania plikami i zmniejszania bazy danych. Natomiast w przypadku próby utworzenia lub usunięcia pliku bazy danych w trakcie operacji tworzenia kopii zapasowej operacja zakończy się niepowodzeniem. Aby uzyskać więcej informacji, zobacz Omówienie kopii zapasowych.

HADR

Dwie najczęściej stosowane techniki pozwalające uzyskać wysoką dostępność i ciągłość działania firmy to klonowanie i klastrowanie. Program SQL Server integruje technologię klonowania i klastrowania za pomocą opcji „Always On Failover Cluster Instances (Zawsze włączone wystąpienia klastra trybu failover)” i „Always On Availability Groups (Zawsze włączone grupy dostępności)”.

Klonowanie to rozwiązanie zapewnienia ciągłości na poziomie bazy danych, które obsługuje prawie natychmiastowe przejście w tryb failover, utrzymując rezerwową bazę danych, pełną kopię lub kopię lustrzaną aktywnej bazy danych na osobnym sprzęcie. Może to działać w trybie synchronicznym (wysokie bezpieczeństwo), w którym transakcja przychodząca jest zatwierdzona na wszystkich serwerach w tym samym czasie, lub w trybie asynchronicznym (wysoka wydajność), w którym transakcja przychodząca jest zatwierdzona dla aktywnej bazy danych, a następnie w pewnym wstępnie określonym punkcie jest kopiowana do lustrzanej bazy danych. Klonowanie jest rozwiązaniem na poziomie bazy danych i działa tylko w przypadku baz danych, w których jest używany model pełnego odzyskiwania.

Klastrowanie jest rozwiązaniem na poziomie serwera, które łączy serwery w jeden magazyn danych, który użytkownik widzi jako jedno wystąpienie. Użytkownicy łączą się z tym wystąpieniem, ale nigdy nie muszą wiedzieć, który serwer w wystąpieniu jest obecnie aktywny. Jeśli jeden serwer nie powiedzie się lub trzeba go przełączyć do trybu offline w celu konserwacji, środowisko użytkownika nie ulegnie zmianie. Każdy serwer w klastrze jest monitorowany przez menedżera klastra przy użyciu pulsu, dzięki czemu wykrywa on, kiedy aktywny serwer w klastrze przechodzi w tryb offline, i próbuje bezproblemowo przełączać się do następnego serwera w klastrze, chociaż czas opóźnienia związany z przełączaniem jest zmienny.

Aby uzyskać więcej informacji, zobacz Zawsze włączone wystąpienia klastra trybu failover i Grupy dostępności Zawsze włączone: rozwiązanie do odzyskiwania po awarii i wysokiej dostępności.

Początek strony

Zabezpieczenia programu SQL Server

Chociaż możesz chronić bazę danych programu Access za pomocą Centrum zaufania i szyfrując bazę danych, program SQL Server ma bardziej zaawansowane funkcje zabezpieczeń. Przyjrzyjmy się trzem funkcjom wyróżniającym się dla użytkownika programu Access. Aby uzyskać więcej informacji, zobacz Zabezpieczanie SQL Server.

Uwierzytelnianie bazy danych

W programie SQL Server istnieją cztery metody uwierzytelniania baz danych, każdą z których możesz określić w parametrach połączenia ODBC. Aby uzyskać więcej informacji, zobacz Łączenie z danymi lub importowanie ich z bazy danych Azure SQL Server Database. Każda z tych metod ma swoje zalety.

Zintegrowane uwierzytelnianie systemu Windows Używaj poświadczeń systemu Windows do sprawdzania poprawności użytkowników, ról zabezpieczeń i ograniczania użytkowników do funkcji i danych. Możesz korzystać z poświadczeń domeny i łatwo zarządzać prawami użytkowników w Twojej aplikacji. Opcjonalnie wprowadź główne nazwy usług (SPN). Aby uzyskać więcej informacji, zobacz Wybieranie trybu uwierzytelniania.

SQL Server Uwierzytelnianie Użytkownicy muszą łączyć się z poświadczeniami skonfigurowanymi w bazie danych, wprowadzając identyfikator logowania i hasło po pierwszym uzyskaniu dostępu do bazy danych w sesji. Aby uzyskać więcej informacji, zobacz Wybieranie trybu uwierzytelniania.

Azure zintegrowane uwierzytelnianie usługi Active Directory Połącz się z bazą danych programu Azure SQL Server przy użyciu usługi Azure Active Directory. W przypadku skonfigurowania uwierzytelniania usługi Azure Active Directory nie jest wymagane żadne dodatkowe podanie identyfikatora logowania i hasła. Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z SQL Database przy użyciu uwierzytelniania usługi Active Directory Azure.

Uwierzytelnianie hasłem w usłudze Active Directory Połącz się przy użyciu poświadczeń skonfigurowanych w Azure active directory, wprowadzając nazwę logowania i hasło. Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z SQL Database przy użyciu uwierzytelniania usługi Active Directory Azure.

Wskazówka Funkcja wykrywania zagrożeń umożliwia otrzymywanie alertów dotyczących nietypowych działań w bazie danych wskazujących potencjalne zagrożenia bezpieczeństwa w bazie danych programu Azure SQL Server. Aby uzyskać więcej informacji, zobacz SQL Database Wykrywanie zagrożeń.

Zabezpieczenia aplikacji

Program SQL Server ma dwie funkcje zabezpieczeń na poziomie aplikacji, z których można korzystać w programie Access.

Dynamiczne maskowanie danych Ukrywanie poufnych informacji przez maskowanie ich przed użytkownikami nieuprzywilejającymi się. Na przykład możesz maskować numer PESEL (częściowo lub w całości).

Częściowa maska danych Częściowa maska danych Pełna maska danych Maska pełnych danych

Maskę danych można zdefiniować na kilka sposobów i można je stosować do różnych typów danych. Maskowanie danych jest oparte na zasadach na poziomie tabel i kolumn dla określonego zestawu użytkowników i jest stosowane w czasie rzeczywistym do zapytania. Aby uzyskać więcej informacji, zobacz Dynamiczne maskowanie danych.

Zabezpieczenia na poziomie wiersza Dostęp do określonych wierszy bazy danych z poufnymi informacjami można kontrolować na podstawie cech użytkownika przy użyciu Row-Level Security. System bazy danych zastosuje te ograniczenia dostępu, co spowoduje, że system zabezpieczeń jest bardziej niezawodny i wydajny.

SQL Server zabezpieczenia wierszy Istnieją dwa typy predykatów zabezpieczeń:

  • Predykat filtru filtruje wiersze z zapytania. Filtr jest przezroczysty, a użytkownik końcowy nie zauważa żadnego filtrowania.
  • Orzeczenie blokowe zapobiega nieautoryzowanym działaniom i zgłasza wyjątek, jeśli nie można wykonać akcji.

Aby uzyskać więcej informacji, zobacz Zabezpieczenia na poziomie wierszy.

Ochrona danych za pomocą szyfrowania

Zabezpieczanie danych magazynowanych, przesyłanych i danych podczas użytkowania bez wpływu na wydajność bazy danych. Aby uzyskać więcej informacji, zobacz szyfrowanie SQL Server.

Szyfrowanie w spoczynku Aby zabezpieczyć dane osobowe przed atakami multimediów w trybie offline na warstwie magazynu fizycznego, użyj szyfrowania w spoczynku, nazywanego również przezroczystym szyfrowaniem danych (TDE). Oznacza to, że Twoje dane są chronione nawet w przypadku kradzieży lub nieprawidłowej utylizacji nośnika fizycznego. TDE wykonuje w czasie rzeczywistym szyfrowanie i odszyfrowywanie baz danych, kopii zapasowych i dzienników transakcji bez konieczności wprowadzania jakichkolwiek zmian w Twojej aplikacji.

Szyfrowanie podczas przesyłania Aby chronić przed szpiegowaniem i "atakami typu "man-in-the-middle", możesz szyfrować dane przesyłane przez sieć. Program SQL Server obsługuje standard TLS (Transport Layer Security) 1.2 w celu zapewnienia wysokiego poziomu bezpieczeństwa komunikacji. Protokół strumienia danych tabelarycznych (TDS) jest używany również do ochrony komunikacji za pośrednictwem niezaufanych sieci.

Szyfrowanie używane na kliencie Aby chronić dane osobowe podczas ich używania, "Always Encrypted" to żądana funkcja. Dane osobowe są szyfrowane i odszyfrowywane przez sterownik na komputerze klienckim bez ujawniania kluczy szyfrowania w aparacie bazy danych. W związku z tym zaszyfrowane dane są widoczne tylko dla osób odpowiedzialnych za zarządzanie nimi, a nie dla innych użytkowników o wysokich uprawnieniach, którzy nie powinni mieć dostępu. W zależności od wybranego typu szyfrowania funkcja Always Encrypted może ograniczać niektóre funkcje bazy danych, takie jak wyszukiwanie, grupowanie i indeksowanie zaszyfrowanych kolumn.

Początek strony

Obsługa obaw dotyczących prywatności

Zagadnienia związane z ochroną prywatności są na tyle powszechne, że Unia Europejska określiła wymagania prawne, wprowadzając Ogólne Rozporządzenie o Ochronie Danych (RODO). Na szczęście zaplecze programu SQL Server jest dobrze przystosowane do odpowiadania na te wymagania. Zastanów się nad wdrożeniem RODO w trzech krokach.

RODO to proces trzyetapowy Krok 1. Ocena ryzyka zgodności i zarządzanie nimi

RODO wymaga identyfikowania i inwentaryzacji informacji osobistych znajdujących się w tabelach i plikach. Te informacje mogą być dowolne, poczynając od nazwy, zdjęcia, adresu e-mail, szczegółów dotyczących banku, wpisów w witrynach internetowych sieci społecznościowych, informacji medycznych, a nawet adresu IP.

Nowe narzędzie, odnajdowanie i klasyfikacja danych SQL, wbudowane w SQL Server Management Studio ułatwia odnajdowanie, klasyfikowanie, etykietowanie i raportowanie dane poufne przez zastosowanie dwóch atrybutów metadanych do kolumn:

  • Etykiety Aby zdefiniować czułość danych.
  • Typy informacji Aby zapewnić dodatkowy poziom szczegółowości typów danych przechowywanych w kolumnie.

Innym mechanizmem odnajdowania, którego można używać, jest wyszukiwanie pełnotekstowe, które obejmuje stosowanie predykatów CONTAINS i FREETEXT oraz funkcji zwracających zestaw wierszy, takich jak CONTAINSTABLE i FREETEXTTABLE do użycia z instrukcją SELECT. Za pomocą wyszukiwania pełnotekstowego możesz przeszukiwać tabele w celu odnalezienia wyrazów, kombinacji wyrazów lub odmian wyrazów, takich jak synonimy lub formy fleksyjne. Aby uzyskać więcej informacji, zobacz Wyszukiwanie pełnoekranowe.

Krok 2. Ochrona informacji osobistych

RODO wymaga zabezpieczania danych osobowych i ograniczania do nich dostępu. Oprócz standardowych czynności, jakie należy wykonać w celu zarządzania dostępem do sieci i zasobów, takich jak ustawienia zapory, można użyć funkcji zabezpieczeń programu SQL Server, aby ułatwić kontrolę dostępu do danych:

  • Uwierzytelnianie programu SQL Server pozwala zarządzać tożsamością użytkownika i zapobiegać nieautoryzowanemu dostępowi.
  • Zabezpieczenia na poziomie wiersza w celu ograniczenia dostępu do wierszy w tabeli jest oparte na relacji między użytkownikiem a tymi danymi.
  • Dynamiczne maskowanie danych umożliwia ograniczenie ujawnienia danych osobowych przez ich maskowanie przed nieuprawnionymi użytkownikami.
  • Szyfrowanie pozwalające zapewnić, że dane osobowe są chronione podczas przesyłania i magazynowania oraz są chronione przed naruszeniem, w tym po stronie serwera.

Aby uzyskać więcej informacji, zobacz Zabezpieczenia programu SQL Server.

Krok 3. Skuteczne odpowiadanie na żądania

RODO wymaga utrzymywania rejestrów związanych z przetwarzaniem danych osobowych i udostępniania tych rejestrów organom nadzorczym na żądanie. Jeśli wystąpią problemy, a w tym z przypadkowym uwolnieniem danych, mechanizmy kontroli ochrony pozwalają szybko zareagować. Jeśli potrzebne są raporty, dane muszą być szybko dostępne. Na przykład RODO wymaga zgłoszenia naruszenia danych osobowych organowi nadzoru "nie później niż w ciągu 72 godzin od momentu, gdy zostanie o tym powiadomiony".

Program SQL Server 2017 pomaga Ci w raportowaniu zadań na kilka sposobów:

  • SQL Server Inspekcja pomaga zapewnić istnienie trwałych rekordów dostępu do bazy danych i działań przetwarzania. Wykonuje on szczegółowy audyt, który śledzi działania wykonywane w bazie danych, co ułatwia zrozumienie i zidentyfikowanie potencjalnych zagrożeń, podejrzeń o nadużycie i naruszeń zabezpieczeń. Możesz łatwo przeprowadzać dochodzenia dotyczące danych.
  • Tabele danych czasowych programu SQL Server to tabele użytkownika z wersjami systemowymi zaprojektowane w taki sposób, aby zachować pełną historię zmian danych. Umożliwiają one łatwe raportowanie i analizę punktu w czasie.
  • Narzędzie SQL Vulnerability Assessment ułatwia wykrywanie problemów z zabezpieczeniami i uprawnieniami. W przypadku wykrycia problemu możesz również przejść do szczegółów raportów skanowania bazy danych, aby znaleźć działania mające na celu rozwiązanie problemu.

Aby uzyskać więcej informacji, zobacz Tworzenie platformy zaufania (książki elektronicznej) i Podróż do zgodności z RODO.

Początek strony

Tworzenie migawek bazy danych

Migawka bazy danych to statyczny widok bazy danych programu SQL Server w danym momencie, który jest dostępny tylko do odczytu. Chociaż możesz skopiować plik bazy danych programu Access w celu skutecznego utworzenia migawki bazy danych, program Access nie ma wbudowanej metodologii, jak program SQL Server. Migawkę bazy danych można stosować do pisania raportów na podstawie danych z chwili tworzenia migawki bazy danych. Migawkę bazy danych można również stosować do przechowywania danych historycznych, na przykład dla każdego kwartału obrachunkowego używanego do sporządzania raportów na koniec okresu. Zalecamy stosowanie następujących najważniejszych wskazówek:

  • Nadaj migawki nazwę Każda migawka bazy danych wymaga unikatowej nazwy bazy danych. Dodaj przeznaczenie i przedział czasu do nazwy, aby ułatwić identyfikację. Na przykład, aby uzyskać migawkę bazy danych firmy AdventureWorks trzy razy dziennie w odstępach 6 godzinnych od godziny 6:00 do 18:00, na podstawie zegara w formacie 24-godzinnym, nadaj im nazwę AdventureWorks_migawka_0600, AdventureWorks_migawka_1200 i AdventureWorks_migawka_1800.
  • Ograniczanie liczby migawek Każda migawka bazy danych jest zachowywana do momentu jej jawnego upuszczenia. Ponieważ każda migawka będzie coraz większa, może być konieczne zaoszczędzenie przestrzeni dyskowej przez usunięcie starszej migawki po utworzeniu nowej. Jeśli na przykład sporządzasz codzienne raporty, przechowuj migawkę bazy danych przez 24 godziny, a następnie usuń ją i zastąp nową.
  • Nawiązywanie połączenia z właściwą migawką Aby użyć migawki bazy danych, front end programu Access musi znać właściwą lokalizację. Po podstawianiu nowej migawki zamiast istniejącej musisz przekierować program Access do nowej migawki. Dodaj logikę do frontonu programu Access, aby upewnić się, że łączysz się z właściwą migawką bazy danych.

Oto jak utworzyć migawkę bazy danych:


CREATE DATABASE AdventureWorks_dbss1800 ON 
( NAME = AdventureWorks_Data, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks_snapshot_0600' ) 
AS SNAPSHOT OF AdventureWorks; 

Aby uzyskać więcej informacji, zobacz Migawki bazy danych (SQL Server).

Początek strony

Kontrola współbieżności

Jeśli wiele osób jednocześnie próbuje zmodyfikować dane w bazie danych, jest potrzebny system kontrolek, aby zmiany wprowadzone przez jedną osobę nie miały negatywnego wpływu na zmiany innej osoby. Nazywa się to kontrolą współbieżności i istnieją dwie podstawowe strategie blokowania: pesymistyczna i optymistyczna. Blokowanie może zapobiec modyfikowaniu danych przez użytkowników w sposób, który ma wpływ na innych użytkowników. Blokowanie pomaga także zapewnić integralność bazy danych, zwłaszcza w przypadku zapytań, które w przeciwnym przypadku mogą dawać nieoczekiwane wyniki. Występują istotne różnice w sposobie, w jaki programy Access i SQL Server wdrażają te strategie kontroli współbieżności.

W programie Access domyślna strategia blokowania jest optymistyczna i udziela własności blokady pierwszej osobie próbującej dokonać zapisu do rekordu. Inna osoba próbująca dokonać zapisu w tym samym rekordzie w tym samym czasie zobaczy w programie Access okno dialogowe Konflikt zapisu. Aby rozwiązać konflikt, inna osoba może zapisać rekord, skopiować go do Schowka lub zrezygnować z wprowadzonych zmian.

Za pomocą właściwości RecordLocks można również zmienić strategię kontroli współbieżności. Ta właściwość ma wpływ na formularze, raporty i kwerendy oraz ma trzy ustawienia:

  • Bez blokowania W formularzu użytkownicy mogą próbować edytować ten sam rekord jednocześnie, ale może zostać wyświetlone okno dialogowe Konflikt zapisu . W przypadku raportów rekordy nie są blokowane podczas przeglądania lub drukowania raportów. W przypadku zapytań rekordy nie są blokowane, gdy działa zapytanie. Jest to sposób programu Access na implementację optymistycznego blokowania.
  • Wszystkie rekordy Wszystkie rekordy w tabeli lub zapytaniu źródłowym są blokowane, gdy formularz jest otwarty w widoku formularza lub arkusza danych, podczas wyświetlania podglądu lub drukowania raportu albo podczas uruchamiania zapytania. Użytkownicy mogą odczytywać rekordy podczas zablokowania.
  • Edytowany rekord W przypadku formularzy i zapytań strona rekordów jest blokowana zaraz po rozpoczęciu edytowania dowolnego pola w rekordzie przez użytkownika i pozostaje zablokowana do momentu przeniesienia użytkownika do innego rekordu. Zatem rekord w danym momencie może być edytowany tylko przez jednego użytkownika. Jest to sposób programu Access na implementację pesymistycznego blokowania.

Aby uzyskać więcej informacji, zobacz Okno dialogowe Konflikt zapisu i Właściwość RecordLocks.

W programie SQL Server kontrola współbieżności działa w następujący sposób:

  • Pesymistyczne Po wykonaniu przez użytkownika akcji powodującej zastosowanie blokady inni użytkownicy nie mogą wykonywać akcji powodujących konflikt z blokadą, dopóki właściciel jej nie zwolni. Ta kontrola współbieżności jest używana głównie w środowiskach, w których istnieje duża rywalizacja o dane.
  • Optymistycznej W przypadku optymistycznej kontroli współbieżności użytkownicy nie blokują danych podczas ich odczytywania. Gdy użytkownik zaktualizuje dane, system sprawdzi, czy dane zostały zmienione przez innego użytkownika po ich przeczytaniu. Jeśli dane zostały zaktualizowane przez innego użytkownika, zostanie zgłoszony błąd. Zwykle użytkownik, który zobaczył komunikat o błędzie, wycofuje transakcję i rozpoczyna pracę od nowa. Ta kontrola współbieżności jest używana głównie w środowiskach, w których występuje małą rywalizacja o dane.

Typ kontroli współbieżności możesz określić, wybierając kilka poziomów izolacji transakcji, które określają poziom ochrony transakcji przed modyfikacjami wprowadzonymi przez inne transakcje za pomocą instrukcji SET TRANSACTION:


 SET TRANSACTION ISOLATION LEVEL
 { READ UNCOMMITTED
 | READ COMMITTED
 | REPEATABLE READ 
 | SNAPSHOT
 | SERIALIZABLE
 }
Poziom izolacji Opis
Odczyt niezatwierdzony Transakcje są izolowane jedynie na tyle, aby zapewnić, że fizycznie uszkodzone dane nie są odczytywane.
Odczyt zatwierdzony Transakcje mogą odczytywać dane wcześniej odczytane przez inną transakcję, nie czekając na ukończenie pierwszej transakcji.
Odczyt powtarzalny Blokada odczytu i zapisu występuje dla wybranych danych do końca transakcji, ale mogą wystąpić odczyty fantomów.
Migawka Używa wersji wiersza w celu zapewnienia spójności odczytu na poziomie transakcji.
Możliwe do serializacji Transakcje są całkowicie izolowane od siebie.

Aby uzyskać więcej informacji, zobacz Blokowanie transakcji i Przewodnik po wersjach wierszy.

Początek strony

Optymalizowanie wydajności zapytania

Gdy działa zapytanie przekazujące programu Access, możesz skorzystać z zaawansowanych metod, za pomocą których program SQL Server spowoduje, że będzie ono działać skuteczniej.

W przeciwieństwie do bazy danych programu Access w programie SQL Server są dostępne zapytania równoległe służące do optymalizowania wykonywania zapytania i operacji indeksowania dla komputerów mających więcej niż jeden mikroprocesor (CPU). Ponieważ program SQL Server może równolegle wykonywać zapytanie lub operację indeksowania przy użyciu kilku wątków roboczych systemu, można szybko i wydajnie wykonać operację.

Zapytania są najważniejszym elementem ulepszania ogólnej wydajności Twojego rozwiązania bazy danych. Złe zapytania działają w nieskończoność, przekraczają limit czasu i zużywają zasoby, na przykład procesory CPU, pamięć i przepustowość sieci. To pogarsza dostępność krytycznych informacji biznesowych. Nawet jedno złe zapytanie może być przyczyną poważnych problemów z wydajnością Twojej bazy danych.

Aby uzyskać więcej informacji, zobacz Szybsze wykonywanie zapytań za pomocą SQL Server (książka e-book).

Optymalizacja zapytania

Kilka narzędzi współpracuje ze sobą, aby ułatwić analizowanie wydajności zapytania i ulepszanie go: Optymalizator zapytań, plany wykonywania i Magazyn zapytań.

jak działa optymalizacja zapytań Optymalizator zapytań

Optymalizator kwerend jest jednym z najważniejszych składników programu SQL Server. Optymalizator zapytań służy do analizowania zapytania i określenia najbardziej efektywnego sposobu uzyskiwania dostępu do wymaganych danych. Dane wprowadzane do optymalizatora zapytań składają się z zapytania, schematu bazy danych (definicje tabel i indeksu) i statystyki bazy danych. Dane wyjściowe optymalizatora zapytań to plan wykonywania.

Aby uzyskać więcej informacji, zobacz Optymalizator zapytań SQL Server.

Plan wykonywania

Plan wykonywania jest definicją, która pozwala uporządkować tabele źródłowe, do których należy uzyskać dostęp, i metody używane do wyodrębniania danych z poszczególnych tabel. Optymalizacja to proces wybierania jednego planu wykonywania z potencjalnie wielu możliwych planów. Każdy możliwy plan wykonywania ma skojarzony koszt jako ilość użytych zasobów obliczeniowych, zaś optymalizator zapytań wybiera ten, który ma najniższy szacowany koszt.

Program SQL Server musi także dynamicznie dostosowywać się do zmieniających się warunków w bazie danych. Regresje planów wykonywania zapytań mogą mieć znaczny wpływ na wydajność. Pewne zmiany w bazie danych mogą powodować, że plan wykonywania będzie niewydajny albo nieprawidłowy w stosunku do nowego stanu bazy danych. Program SQL Server wykrywa zmiany, które unieważniają plan wykonywania, i oznacza plan jako nieważny.

Następnie należy ponownie skompilować nowy plan dla następnego połączenia, które wykona zapytanie. Do warunków unieważniających plan należą:

  • Zmiany wprowadzone w tabeli lub widoku, do których odwołuje się zapytanie (ALTER TABLE i ALTER VIEW).
  • Zmiany indeksów używanych przez plan wykonywania.
  • Aktualizacje dotyczące statystyk używanych w ramach planu wykonywania generowane jawnie na podstawie instrukcji, takich jak UPDATE STATISTICS, albo automatycznie.

Aby uzyskać więcej informacji, zobacz Plany wykonywania.

Magazyn zapytań

Magazyn zapytań zapewnia dokładniejsze informacje na temat wyboru planu wykonywania i jego wydajności. Ułatwia on rozwiązywanie problemów z wydajnością, pomagając szybko znaleźć różnice w wydajności spowodowane zmianami planu wykonywania. Magazyn zapytań zbiera dane telemetryczne, takie jak historia zapytań, plany, statystyki czasu wykonania i statystyki oczekiwania. Zaimplementuj magazyn zapytań przy użyciu instrukcji ALTER DATABASE:


ALTER DATABASE AdventureWorks2012 SET QUERY_STORE = ON;

Aby uzyskać więcej informacji, zobacz Monitorowanie wydajności za pomocą Magazynu zapytań.

Automatyczna korekta planu

Najłatwiejszym sposobem poprawienia wydajności zapytania jest prawdopodobnie automatyczna korekta planu, która jest funkcją dostępną w usłudze Azure SQL Database. Wystarczy ją włączyć i pozwolić jej działać. Nieustannie przeprowadza ona monitorowanie planu wykonywania i jego analizowanie, wykrywa niepoprawne plany wykonywania i automatycznie naprawia problemy z wydajnością. W tle automatyczna korekta planu wykorzystuje strategię czterech etapów: uczenia się, adaptacji, weryfikacji i powtarzania.

Aby uzyskać więcej informacji, zobacz Automatyczne dostosowywanie.

Adaptacyjne przetwarzanie zapytań

Możesz także szybciej wykonywać zapytania, przeprowadzając uaktualnienie do programu SQL Server 2017, który zawiera nową funkcję o nazwie adaptacyjne przetwarzanie zapytań. Program SQL Server dopasowuje wybór planu zapytania na podstawie charakterystyk środowiska uruchomieniowego.

Oszacowanie kardynalności przybliża liczbę przetworzonych wierszy na każdym kroku planu wykonywania. Niedokładne oszacowania mogą skutkować długim czasem reakcji na zapytanie, niepotrzebnym wykorzystywaniem zasobów (pamięci, procesora CPU i We/Wy) oraz ograniczoną przepływnością i współbieżnością. W celu dostosowania charakterystyk obciążenia aplikacji stosowane są trzy techniki:

  • Tryb wsadowy — opinia o udzieleniu pamięci Słabe oszacowania kardynalności mogą spowodować, że zapytania "rozleją się na dysk" lub zajmą za dużo pamięci. Program SQL Server 2017 dopasowuje przyznaną pamięć na podstawie opinii o wykonaniu, usuwa rozlanie na dysk i ulepsza współbieżność powtarzających się zapytań.
  • Sprzężenia adaptacyjne trybu wsadowego Sprzężenia adaptacyjne dynamicznie wybierają lepszy typ sprzężenia wewnętrznego (sprzężenia pętli zagnieżdżonej, sprzężenia scalania lub sprzężenia skrótu) w czasie wykonywania na podstawie rzeczywistych wierszy wejściowych. W efekcie plan może dynamicznie przełączać się na lepszą strategię dołączania podczas wykonywania.
  • Interleaved execution Funkcje wartości tabeli wieloskładniowej tradycyjnie były traktowane jako czarne pole przez przetwarzanie zapytań. Program SQL Server 2017 może lepiej oszacować liczbę wierszy w celu ulepszenia działań podrzędnych.

Możesz automatycznie spowodować, że obciążenia będą uprawnione do adaptacyjnego przetwarzania zapytań po włączeniu poziomu kompatybilności równego 140 dla bazy danych:


ALTER DATABASE [YourDatabaseName] SET COMPATIBILITY_LEVEL = 140;

Aby uzyskać więcej informacji, zobacz Inteligentne przetwarzanie zapytań w bazach danych SQL.

Początek strony

Sposoby tworzenia zapytań

Program SQL Server pozwala na wykonywanie zapytań na kilka sposobów, z których każdy ma swoje zalety. Chcesz się dowiedzieć, jakie one są, więc możesz dokonać prawidłowego wyboru dla swojego rozwiązania w programie Access. Najlepszym sposobem tworzenia zapytań TSQL jest ich interakcyjne edytowanie i testowanie przy użyciu edytora SQL Server Management Studio Transact-SQL (SSMS) transact-SQL, który ma funkcję intellisense, która ułatwia wybieranie właściwych słów kluczowych i sprawdzanie błędów składni.

Widoki

W programie SQL Server widok przypomina wirtualną tabelę, w której dane pochodzą przynajmniej z jednej tabeli lub innego widoku. Jednak odwołania do widoków są takie jak do tabel w zapytaniach. Widok może ukrywać złożoność zapytań i pomaga zabezpieczać dane, ograniczając zestaw wierszy i kolumn. Oto przykładowy widok prosty:


CREATE VIEW HumanResources.EmployeeHireDate AS 
SELECT p.FirstName, p.LastName, e.HireDate 
FROM HumanResources.Employee AS e JOIN Person.Person AS p 
ON e.BusinessEntityID = p.BusinessEntityID;

W celu zapewnienia optymalnej wydajności i edytowania wyników widoków należy utworzyć widok indeksowany, który będzie trwale istniał w bazie danych, jak tabela, będzie miał przydzieloną pamięć masową i można będzie utworzyć do niego zapytanie, jak do każdej innej tabeli. Aby korzystać z niego w programie Access, utwórz link do widoku w ten sam sposób, jak w przypadku linku do tabeli. Oto przykładowy widok indeksowany:


CREATE VIEW Sales.vOrders 
WITH SCHEMABINDING 
AS 
 SELECT SUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount)) AS Revenue, 
 OrderDate, ProductID, COUNT_BIG(*) AS COUNT 
 FROM Sales.SalesOrderDetail AS od, Sales.SalesOrderHeader AS o 
 WHERE od.SalesOrderID = o.SalesOrderID 
 GROUP BY OrderDate, ProductID; 

CREATE UNIQUE CLUSTERED INDEX IDX_V1 
 ON Sales.vOrders (OrderDate, ProductID); 

Istnieją jednak ograniczenia. Nie można aktualizować danych, jeśli występuje problem z więcej niż jedną tabelą podstawową lub widok zawiera funkcje agregujące lub klauzulę DISTINCT. Jeśli program SQL Server zwróci komunikat o błędzie informujący o tym, że nie wiadomo, który rekord usunąć, może być konieczne dodanie wyzwalacza usuwania w tym widoku. Wreszcie nie możesz użyć klauzuli ORDER BY jak w przypadku zapytania programu Access.

Aby uzyskać więcej informacji, zobacz Widoki i Tworzenie widoków indeksowanych.

Procedury składowane

Procedura składowana to grupa zawierająca przynajmniej jedną instrukcję języka TSQL, która pobiera parametry wejściowe, zwraca parametry wyjściowe i wskazuje powodzenie lub niepowodzenie za pomocą wartości stanu. Działają one jako warstwa pośrednia między frontonem programu Access a zapleczem programu SQL Server. Procedury składowane mogą być proste, jak instrukcja SELECT, lub złożone jak dowolny program. Oto przykład:


CREATE PROCEDURE HumanResources.uspGetEmployees 
 @LastName nvarchar(50), 
 @FirstName nvarchar(50) 
AS 
 SET NOCOUNT ON; 
 SELECT FirstName, LastName, Department 
 FROM HumanResources.vEmployeeDepartmentHistory 
 WHERE FirstName = @FirstName AND LastName = @LastName 
 AND EndDate IS NULL; 

W przypadku użycia procedury składowanej w programie Access zwykle zwraca ona zestaw wyników z powrotem do formularza lub raportu. Może jednak wykonywać inne akcje, które nie zwracają wyników, takie jak instrukcje DDL lub DML. W przypadku użycia zapytania przekazującego należy się upewnić, że właściwość Zwraca rekordy jest odpowiednio ustawiona.

Aby uzyskać więcej informacji, zobacz Procedury składowane.

Typowe wyrażenia używane w tabelach

Typowe wyrażenia używane w tabelach (CTE) przypominają tabelę tymczasową generującą nazwany zestaw wyników. Istnieje on tylko w przypadku wykonywania jednego zapytania lub instrukcji DML. CTE są utworzone na tym samym wierszu kodu, co instrukcja SELECT lub instrukcja DML, która go używa, zaś tworzenie i używanie tymczasowej tabeli lub widoku jest zwykle procesem dwuetapowym. Oto przykład:


-- Define the CTE expression name and column list. 
WITH Sales_CTE (SalesPersonID, SalesOrderID, SalesYear) 
AS 
-- Define the CTE query. 
( 
 SELECT SalesPersonID, SalesOrderID, YEAR(OrderDate) AS SalesYear 
 FROM Sales.SalesOrderHeader 
 WHERE SalesPersonID IS NOT NULL 
) 
-- Define the outer query referencing the CTE name. 
SELECT SalesPersonID, COUNT(SalesOrderID) AS TotalSales, SalesYear 
FROM Sales_CTE 
GROUP BY SalesYear, SalesPersonID 
ORDER BY SalesPersonID, SalesYear;

Wyrażenia CTE mają kilka zalet, a w tym:

  • Ponieważ cte są przejściowe, nie trzeba tworzyć ich jako trwałych obiektów bazy danych, takich jak widoki.
  • W zapytaniu lub instrukcji DML można odwołać się do tego samego wyrażenia CTE więcej niż raz, ulepszając zarządzanie swoim kodem.
  • Za pomocą zapytań, które odwołują się do wyrażenia CTE, możesz zdefiniować kursor.

Aby uzyskać więcej informacji, zobacz WITH common_table_expression.

Funkcje zdefiniowane przez użytkownika

Funkcja zdefiniowana przez użytkownika (UDF) może wykonywać zapytania i obliczenia oraz zwracać wartości skalarne albo zestawy wyników danych. Są one podobne do funkcji w językach programowania akceptujących parametry, wykonujących akcję, taką jak złożone obliczenia, i zwracających wynik tej akcji jako wartość. Oto przykład:


CREATE FUNCTION dbo.ISOweek (@DATE datetime) 
RETURNS int WITH SCHEMABINDING -- Helps improve performance
WITH EXECUTE AS CALLER 
AS 
BEGIN 
 DECLARE @ISOweek int; 
 SET @ISOweek= DATEPART(wk,@DATE)+1 
 -DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104'); 
-- Special cases: Jan 1-3 may belong to the previous year 
 IF (@ISOweek=0) 
 SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1 
 AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1; 
-- Special case: Dec 29-31 may belong to the next year 
 IF ((DATEPART(mm,@DATE)=12) AND 
 ((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28)) 
 SET @ISOweek=1; 
 RETURN(@ISOweek); 
END; 
GO 
SET DATEFIRST 1; 
SELECT dbo.ISOweek(CONVERT(DATETIME,'12/26/2004',101)) AS 'ISO Week'; 

Format UDF ma pewne ograniczenia. Na przykład nie mogą używać pewnych nondeterministycznych funkcji systemowych, wykonywać instrukcji DML lub DDL ani wykonywać dynamicznych zapytań SQL.

Aby uzyskać więcej informacji, zobacz Funkcje zdefiniowane przez użytkownika.

Początek strony

Dodawanie kluczy i indeksów

W dowolnym używanym systemie bazy danych klucze i indeksy idą ręka w rękę.

Klawisze

W programie SQL Server należy pamiętać o utworzeniu kluczy podstawowych dla każdej tabeli i kluczy obcych dla poszczególnych powiązanych tabel. Funkcją w programie SQL Server równoważną typowi danych AutoNumber w programie Access jest właściwość IDENTITY, której można użyć do tworzenia wartości kluczy. Po zastosowaniu tej właściwości do dowolnej kolumny numerycznej stanie się ona tylko do odczytu i będzie utrzymywana przez system bazy danych. Po wstawieniu rekordu do tabeli zawierającej kolumnę IDENTITY system automatycznie zwiększa wartość kolumny IDENTITY o 1, rozpoczynając od wartości 1, ale możesz kontrolować te wartości za pomocą argumentów.

Aby uzyskać więcej informacji, zobacz TWORZENIE TABELI, TOŻSAMOŚĆ (właściwość).

Indeksy

Jak zwykle dobór indeksów to proces utrzymania równowagi między szybkością zapytania a kosztem aktualizacji. W programie Access istnieje jeden typ indeksu, ale w programie SQL Server jest ich dwanaście. Na szczęście możesz użyć optymalizatora zapytań, który pomoże Ci pewnie wybrać najbardziej efektywny indeks. W bazie danych SQL Azure możesz używać funkcji automatycznego zarządzania indeksami, funkcji automatycznego dostosowywania, która zaleca dodawanie lub usuwanie indeksów. W odróżnieniu od programu Access, w programie SQL Server musisz utworzyć własne indeksy dla kluczy obcych. W widoku indeksowanym można także tworzyć indeksy, aby zwiększyć wydajność zapytania. Wadą widoku indeksowanego jest zwiększone obciążenie podczas modyfikowania danych w tabelach podstawowych widoku, ponieważ widok musi być również aktualizowany. Aby uzyskać więcej informacji, zobacz SQL Server Przewodnik po architekturze indeksu i projektowaniu oraz indeksy.

Początek strony

Wykonywanie transakcji

Realizowanie procesu OLTP jest trudne podczas korzystania z programu Access, ale stosunkowo łatwe w programie SQL Server. Transakcja to jedna jednostka pracy, która potwierdza wszystkie zmiany danych, jeśli kończy się pomyślnie, ale wycofuje te zmiany, jeśli się nie powiedzie. Transakcja musi mieć cztery właściwości, często określane jako ACID:

  • Niepodzielność Transakcja musi być atomową jednostką pracy; wszystkie modyfikacje danych są wykonywane lub nie są wykonywane żadne.
  • Spójności Po zakończeniu transakcja musi pozostawić wszystkie dane w spójnym stanie. Oznacza to, że były zastosowane wszystkie reguły integralności danych.
  • Izolacji Zmiany wprowadzone przez jednoczesne transakcje są odizolowane od bieżącej transakcji.
  • Trwałość Po zakończeniu transakcji zmiany są trwałe nawet w przypadku awarii systemu.

Transakcja służy do zapewniania gwarantowanej integralności danych, na przykład podczas pobierania gotówki z bankomatu lub automatycznego deponowania wypłaty. Możliwe jest wykonywanie transakcji jawnych, niejawnych lub transakcji w zakresie wsadu. Oto dwa przykłady w języku TSQL:


-- Using an explicit transaction

BEGIN TRANSACTION; 
DELETE FROM HumanResources.JobCandidate 
 WHERE JobCandidateID = 13; 
COMMIT; 

-- the ROLLBACK statement rolls back the INSERT statement, but the created table still exists.

CREATE TABLE ValueTable (id int); 
BEGIN TRANSACTION; 
 INSERT INTO ValueTable VALUES(1); 
 INSERT INTO ValueTable VALUES(2); 
ROLLBACK;

Aby uzyskać więcej informacji, zobacz Transakcje.

Początek strony

Korzystanie z ograniczeń i wyzwalaczy

We wszystkich bazach danych istnieją metody zapewniające integralność danych.

Ograniczenia

W programie Access więzy integralności są wymuszane w relacji między tabelami za pomocą par klucz podstawowy-klucz obcy, aktualizacji i usuwania kaskadowego oraz reguł walidacji. Aby uzyskać więcej informacji, zobacz Przewodnik po relacjach między tabelami i Ograniczanie wprowadzania danych przy użyciu reguł walidacji.

W programie SQL Server używasz ograniczeń typu UNIQUE i CHECK, czyli obiektów bazy danych, które wymuszają integralność danych w tabelach programu SQL Server. W celu walidacji, czy wartość jest prawidłowa w innej tabeli, należy zastosować ograniczenie klucza obcego. W celu walidacji, czy wartość w kolumnie mieści się w określonym zakresie, należy zastosować ograniczenie sprawdzania. Te obiekty stanowią pierwszą linię obrony i są zaprojektowane do wydajnej pracy. Aby uzyskać więcej informacji, zobacz Ograniczenia unikatowe i Sprawdź ograniczenia.

Wyzwalacze

W programie Access nie są dostępne wyzwalacze bazy danych. W programie SQL Server możesz używać wyzwalaczy, aby wymuszać złożone reguły integralności danych i uruchamiać tę logikę biznesową na serwerze. Wyzwalacz bazy danych to procedura składowana uruchamiana w przypadku wystąpienia określonych akcji w bazie danych. Wyzwalacz to zdarzenie, takie jak dodanie lub usunięcie rekordu tabeli, które uruchamia się, a następnie wykonuje procedurę składowaną. Chociaż baza danych programu Access może zagwarantować więzy integralności podczas próby aktualizacji lub usunięcia danych przez użytkownika, program SQL Server ma zaawansowany zestaw wyzwalaczy. Na przykład możesz zaprogramować wyzwalacz w celu usunięcia rekordów zbiorczo, aby zapewnić integralność danych. Możesz nawet dodać wyzwalacze do tabel i widoków.

Aby uzyskać więcej informacji, zobacz Wyzwalacze — DML, Wyzwalacze — DDL i Projektowanie wyzwalacza T-SQL.

Początek strony

Używanie kolumn obliczanych

W programie Access możesz utworzyć kolumnę obliczeniową, dodając ją do zapytania i tworząc wyrażenie, takie jak:


Extended Price: [Quantity] * [Unit Price]

W programie SQL Server odpowiadająca jej funkcja jest nazywana kolumną obliczaną, która jest wirtualną kolumną, która nie jest fizycznie przechowywana w tabeli, o ile kolumna nie jest oznaczona jako PERSISTED. Podobnie jak w przypadku kolumny obliczeniowej, kolumna obliczana używa danych z innych kolumn w wyrażeniu. Aby utworzyć kolumnę obliczaną, należy ją dodać do tabeli. Przykłady:


CREATE TABLE dbo.Products 
( 
 ProductID int IDENTITY (1,1) NOT NULL 
 , QtyAvailable smallint 
 , UnitPrice money 
 , InventoryValue AS QtyAvailable * UnitPrice 
); 

Aby uzyskać więcej informacji, zobacz Określanie kolumn obliczanych w tabeli.

Początek strony

Sygnatura czasowa danych

Czasami podczas tworzenia rekordu należy dodać pole tabeli w celu zarejestrowania sygnatury czasowej, aby można było dodać wpis danych do dziennika. W programie Access możesz po prostu utworzyć kolumnę daty z wartością domyślną =Now(). Aby zarejestrować datę lub godzinę w SQL Server, użyj typu danych datetime2 z wartością domyślną SYSDATETIME().

Uwaga Unikaj mylenia rowversion z dodawaniem sygnatury czasowej do danych. Słowo kluczowe timestamp jest synonimem dla słowa rowversion w programie SQL Server, ale należy stosować słowo kluczowe rowversion. W programie SQL Server słowo kluczowe rowversion to typ danych, który ujawnia automatycznie generowane, unikatowe liczby binarne w bazie danych, i jest powszechnie używane jako mechanizm oznaczania wersją wierszy tabeli. Jednak typ danych rowversion to po prostu zwiększana liczba i nie zachowuje on daty ani godziny oraz nie jest przeznaczony do oznaczania wiersza sygnaturą czasową.

Aby uzyskać więcej informacji, zobacz rowversion. Aby uzyskać więcej informacji na temat używania typu danych rowversion do zminimalizowania konfliktów rekordów, zobacz Migrowanie bazy danych programu Access do programu SQL Server.

Początek strony

Zarządzanie dużymi obiektami

W programie Access możesz zarządzać danymi bez struktury, takimi jak pliki, zdjęcia i obrazy, przy użyciu typu danych Załącznik. W terminologii programu SQL Server dane bez struktury są określane mianem obiektu BLOB (duży obiekt binarny) i istnieje kilka sposobów pracy z nimi:

FILESTREAM Używa typu danych varbinary(max) do przechowywania danych niestrukturalnych w systemie plików, a nie w bazie danych. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do danych FILESTREAM za pomocą języka Transact-SQL.

Filetable Przechowuje obiekty blob w specjalnych tabelach zwanych tabelami plików i zapewnia zgodność z aplikacjami systemu Windows tak, jakby były przechowywane w systemie plików i nie wprowadzały żadnych zmian w aplikacjach klienckich. Tabela FileTable wymaga użycia typu FILESTREAM. Aby uzyskać więcej informacji, zobacz Tabele plików.

Zdalny magazyn obiektów BLOB (RBS) Przechowuje binarne duże obiekty (BLOB) w rozwiązaniach magazynu towarów zamiast bezpośrednio na serwerze. Powoduje to oszczędność miejsca i zmniejsza zasoby sprzętowe. Aby uzyskać więcej informacji, zobacz Dane obiektu Blob (Binary Large Object).

Początek strony

Praca z danymi hierarchicznymi

Chociaż relacyjne bazy danych, takie jak Access, są bardzo elastyczne, praca z relacjami hierarchicznymi jest wyjątkiem i często wymaga złożonych instrukcji SQL lub kodu. Do przykładów danych hierarchicznych należą: struktura organizacyjna, system plików, taksonomia pojęć językowych i wykres połączeń między stronami internetowymi. Program SQL Server ma wbudowany typ danych hierarchyid i zestaw funkcji hierarchicznych, które ułatwiają zapisywanie danych hierarchicznych i zarządzanie nimi oraz wykonywanie zapytań.

Typowa hierarchia Aby uzyskać więcej informacji, zobacz Dane hierarchiczne i Samouczek: używanie typu danych hierarchicznych.

Początek strony

Manipulowanie tekstem w formacie JSON

Notacja JSON to usługa internetowa, która używa tekstu czytelnego dla człowieka do przesyłania danych w postaci par atrybut-wartość w asynchronicznej komunikacji przeglądarka-serwer. Przykłady:


{
"firstName": "Mary",
"lastName": "Contrary",
"spouse": null,
"age": 27
}

Program Access nie ma żadnych wbudowanych sposobów zarządzania danymi JSON, ale w programie SQL Server można płynnie przechowywać, indeksować, wysyłać zapytania i wyodrębniać dane JSON. Możesz przekonwertować tekst JSON i przechować go w tabeli lub sformatować dane jako tekst JSON. Na przykład możesz chcieć sformatować wyniki zapytania jako JSON dla aplikacji internetowej lub dodać struktury danych JSON do wierszy i kolumn.

Uwaga JSON nie jest obsługiwany w języku VBA. Alternatywnym rozwiązaniem jest skorzystanie z języka XML w języku VBA przy użyciu biblioteki MSXML.

Aby uzyskać więcej informacji, zobacz Dane JSON w SQL Server.

Początek strony

Zasoby

Teraz jest najwyższy czas, aby dowiedzieć się więcej na temat programu SQL Server i języka Transact SQL (TSQL). Jak już widzisz, istnieje wiele funkcji, takich jak program Access, ale także funkcje, których program Access po prostu nie ma. Aby przenieść naszą wycieczkę na następny poziom, oto kilka zasobów szkoleniowych:

Zasób Opis
Wykonywanie zapytań za pomocą języka Transact-SQL Kurs oparty na klipie wideo
Samouczki aparatu bazy danych Samouczki dotyczące programu SQL Server 2017
Microsoft Learn Praktyczna nauka dla platformy Azure
SQL Server szkoleń i certyfikatów Zostań ekspertem
SQL Server 2017 Główna strona docelowa
dokumentacja SQL Server Informacje pomocy
Dokumentacja bazy danych Azure SQL Informacje pomocy
Podstawowy przewodnik po danych w chmurze (książka e-book) Omówienie chmury
SQL Server 2017 — arkusz danych Wizualne podsumowanie nowych funkcji
Porównanie wersji microsoft SQL Server Podsumowanie funkcji wg wersji
Wersje Microsoft SQL Server Express Pobierz program SQL Server Express 2017
Przykładowe bazy danych SQL Pobierz przykładowe bazy danych

Początek strony