Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowszych
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w usłudze Microsoft Fabric
Tabele to obiekty bazy danych zawierające wszystkie dane w bazie danych. W tabelach dane są logicznie zorganizowane w formacie wierszy i kolumn podobnych do arkusza kalkulacyjnego. Każdy wiersz reprezentuje unikatowy rekord, a każda kolumna reprezentuje pole w rekordzie. Na przykład tabela zawierająca dane pracowników dla firmy może zawierać wiersz dla każdego pracownika i kolumny reprezentujące informacje o pracownikach, takie jak numer pracownika, nazwa, adres, stanowisko i numer telefonu domowego.
Liczba tabel w bazie danych jest ograniczona tylko przez liczbę obiektów dozwolonych w bazie danych (2147 483 647). Tabela zdefiniowana przez użytkownika standardowego może zawierać maksymalnie 1024 kolumny. Liczba wierszy w tabeli jest ograniczona tylko przez pojemność magazynu serwera.
Właściwości można przypisać do tabeli i do każdej kolumny w tabeli, aby kontrolować dozwolone dane i inne właściwości. Można na przykład utworzyć ograniczenia dla kolumny, aby uniemożliwić wartości null lub podać wartość domyślną, jeśli wartość nie została określona, lub można przypisać ograniczenie klucza w tabeli, która wymusza unikatowość lub definiuje relację między tabelami.
Dane w tabeli można skompresować według wiersza lub strony. Kompresja danych może zezwalać na przechowywanie większej liczby wierszy na stronie. Aby uzyskać więcej informacji, zobacz Kompresja danych.
Typy tabel
Oprócz standardowej roli podstawowych tabel zdefiniowanych przez użytkownika program SQL Server udostępnia następujące typy tabel, które służą specjalnym celom w bazie danych.
Tabele partycjonowane
Tabele partycjonowane to tabele, których dane są podzielone w poziomie na jednostki, które mogą być rozłożone na więcej niż jedną grupę plików w bazie danych. Partycjonowanie sprawia, że duże tabele lub indeksy są bardziej zarządzane, umożliwiając szybki i wydajny dostęp do podzestawów danych lub zarządzanie nimi przy zachowaniu integralności ogólnej kolekcji. Domyślnie program SQL Server obsługuje maksymalnie 15 000 partycji. Aby uzyskać więcej informacji, zobacz Partycjonowane tabele i indeksy.
Tabele tymczasowe
Tabele tymczasowe są przechowywane w tempdb. Istnieją dwa typy tabel tymczasowych: lokalne i globalne. Różnią się one od siebie nazwami, ich widocznością i dostępnością. Lokalne tabele tymczasowe mają znak hash (#) jako pierwszy znak w swoich nazwach; są one widoczne tylko dla bieżącego połączenia użytkownika i są usuwane, gdy użytkownik rozłącza się z instancją SQL Server. Globalne tabele tymczasowe mają dwa znaki liczbowe (##) jako pierwsze znaki ich nazw; Są one widoczne dla każdego użytkownika po ich utworzeniu i są usuwane, gdy wszyscy użytkownicy odwołując się do tabeli odłączają się od wystąpienia programu SQL Server.
Zmniejszone ponowne kompilacje obciążeń przy użyciu tabel tymczasowych w wielu zakresach
Program SQL Server 2019 (15.x) na wszystkich poziomach zgodności bazy danych zmniejsza ponowną kompilację obciążeń przy użyciu tabel tymczasowych w wielu zakresach. Ta funkcja jest również włączona w usłudze Azure SQL Database na poziomie zgodności bazy danych 150 dla wszystkich modeli wdrażania. Przed dodaniem tej funkcjonalności, podczas odwoływania się do tabeli tymczasowej za pomocą instrukcji języka manipulacji danymi (SELECT
, INSERT
, UPDATE
, DELETE
), jeśli tabela tymczasowa została utworzona przez zewnętrzne wywołanie, powodowało to ponowne kompilowanie instrukcji DML za każdym razem, gdy była wykonywana. Dzięki temu ulepszeniu program SQL Server wykonuje dodatkowe uproszczone kontrole, aby uniknąć niepotrzebnych ponownych kompilacji:
- Sprawdź, czy moduł zakresu zewnętrznego używany do tworzenia tabeli tymczasowej w czasie kompilacji jest taki sam, jak w przypadku kolejnych wykonań.
- Śledź wszelkie zmiany języka definicji danych (DDL) wprowadzone podczas początkowej kompilacji i porównaj je z operacjami DDL na potrzeby kolejnych wykonań.
Wynikiem końcowym jest zmniejszenie nadmiarowych ponownych kompilacji i obciążenia procesora CPU.
Tabele systemowe
Program SQL Server przechowuje dane definiujące konfigurację serwera i wszystkie jego tabele w specjalnym zestawie tabel nazywanych tabelami systemowymi. Użytkownicy nie mogą bezpośrednio wykonywać zapytań ani aktualizować tabel systemowych. Informacje w tabelach systemowych są udostępniane za pośrednictwem widoków systemowych. Aby uzyskać więcej informacji, zobacz Widoki systemu (Transact-SQL).
Szerokie tabele
Szerokie tabele używają rozrzednych kolumn, aby zwiększyć sumę kolumn, które tabela może mieć do 30 000. Kolumny rzadkie to zwykłe kolumny, które mają zoptymalizowane przechowywanie dla wartości null. Kolumny rozrzedne zmniejszają wymagania dotyczące miejsca dla wartości null kosztem większego obciążenia w celu pobrania wartości innych niż null. W szerokiej tabeli zdefiniowano zestaw kolumn , który jest nietypową reprezentacją XML, która łączy wszystkie rozrzedzone kolumny tabeli w dane wyjściowe ze strukturą. Liczba indeksów i statystyk jest również zwiększana odpowiednio do 1000 i 30 000. Maksymalny rozmiar szerokiego wiersza tabeli wynosi 8019 bajtów. W związku z tym większość danych w każdym konkretnym wierszu powinna mieć wartość NULL. Maksymalna liczba kolumn innych niż kolumny nieparzystowe oraz obliczone kolumny w szerokiej tabeli pozostaje 1024.
Szerokie tabele mają następujące implikacje dotyczące wydajności.
Szerokie tabele mogą zwiększyć koszt utrzymania indeksów w tabeli. Zalecamy, aby liczba indeksów w szerokiej tabeli ograniczała się do indeksów wymaganych przez logikę biznesową. Gdy liczba indeksów rośnie, zwiększają się także wymagania dotyczące czasu kompilacji i pamięci DML. Indeksy nieklastrowane powinny być indeksami filtrowanymi, które są stosowane do podzestawów danych. Aby uzyskać więcej informacji, zobacz Tworzenie filtrowanych indeksów.
Aplikacje mogą dynamicznie dodawać i usuwać kolumny z szerokich tabel. Po dodaniu lub usunięciu kolumn skompilowane plany zapytań również zostaną unieważnione. Zalecamy zaprojektowanie aplikacji tak, aby odpowiadała przewidywanemu obciążeniu, aby zminimalizować zmiany schematu.
Gdy dane zostaną dodane i usunięte z szerokiej tabeli, może to mieć wpływ na wydajność. Aplikacje muszą być zaprojektowane dla przewidywanego obciążenia, aby zminimalizować zmiany w danych tabeli.
Ogranicz wykonywanie instrukcji DML w szerokiej tabeli, która aktualizuje wiele wierszy klucza klastrowania. Te instrukcje mogą wymagać znacznej ilości zasobów pamięci do skompilowania i wykonania.
Operacje przełączania partycji na szerokich tabelach mogą być powolne i mogą wymagać dużej ilości pamięci do przetworzenia. Wymagania dotyczące wydajności i pamięci są proporcjonalne do całkowitej liczby kolumn w partycjach źródłowych i docelowych.
Zaktualizuj kursory, które modyfikują określone kolumny w szerokiej tabeli. Te kolumny powinny być jawnie wymienione w klauzuli FOR UPDATE. Pomoże to zoptymalizować wydajność podczas korzystania z kursorów.
Typowe czynności przy stole
Poniższa tabela zawiera linki do typowych zadań skojarzonych z tworzeniem lub modyfikowaniem tabeli.
Zadania tabeli | Temat |
---|---|
Opisuje sposób tworzenia tabeli. | Tworzenie tabel (Silnik bazy danych) |
Opisuje sposób usuwania tabeli. | Usuwanie tabel (mechanizm bazy danych) |
Opisuje sposób tworzenia nowej tabeli zawierającej niektóre lub wszystkie kolumny w istniejącej tabeli. | Zduplikowane Tabele |
Opisuje sposób zmieniania nazwy tabeli. | Zmienianie Nazw Tabel (Silnik Bazy Danych) |
Opisuje sposób wyświetlania właściwości tabeli. | Pokaż definicję tabeli |
Opisuje sposób określania, czy inne obiekty, takie jak widok lub procedura składowana, zależą od tabeli. | Wyświetl zależności tabeli |
Poniższa tabela zawiera linki do typowych zadań związanych z tworzeniem lub modyfikowaniem kolumn w tabeli.
Zadania dla kolumn | Temat |
---|---|
Opisuje sposób dodawania kolumn do istniejącej tabeli. | dodawanie kolumn do tabeli (aparatu bazy danych) |
Opisuje sposób usuwania kolumn z tabeli. | Usuń kolumny z tabeli |
Opisuje sposób zmiany nazwy kolumny. | Zmienianie Nazwy Kolumn (Silnik Bazy Danych) |
Opisuje sposób kopiowania kolumn z jednej tabeli do innej, kopiowania tylko definicji kolumny lub definicji i danych. | kopiowanie kolumn z jednej tabeli do innej (aparat bazy danych) |
Opisuje sposób modyfikowania definicji kolumny przez zmianę typu danych lub innej właściwości. | Modyfikowanie Kolumn (Silnika Bazy Danych) |
Opisuje sposób zmiany kolejności wyświetlania kolumn. | zmień kolejność kolumn w tabeli |
Opisuje sposób tworzenia obliczonej kolumny w tabeli. | Specyfikacja kolumn obliczeniowych w tabeli |
Opisuje sposób określania wartości domyślnej dla kolumny. Ta wartość jest używana, jeśli nie podano innej wartości. | określanie wartości domyślnych dla kolumn |
Zobacz też
ograniczenia klucza podstawowego i obcegoograniczenia unikalne i ograniczenia sprawdzające