Sdílet prostřednictvím


Tables

Platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Endpoint Analytics ve službě Microsoft FabricWarehouse ve službě Microsoft FabricDatabáze SQL ve verzi Microsoft Fabric Preview

Tabulky jsou databázové objekty, které obsahují všechna data v databázi. V tabulkách jsou data logicky uspořádaná ve formátu řádku a sloupce podobné tabulce. Každý řádek představuje jedinečný záznam a každý sloupec představuje pole v záznamu. Například tabulka, která obsahuje data o zaměstnancích pro společnost, může obsahovat řádek pro každého zaměstnance a sloupce představující informace o zaměstnancích, jako je číslo zaměstnance, jméno, adresa, pracovní pozice a telefonní číslo domů.

  • Počet tabulek v databázi je omezen pouze počtem objektů povolených v databázi (2 147 483 647). Standardní uživatelsky definovaná tabulka může mít až 1 024 sloupců. Počet řádků v tabulce je omezen pouze kapacitou úložiště serveru.

  • K tabulce a ke každému sloupci v tabulce můžete přiřadit vlastnosti, abyste mohli řídit data, která jsou povolená, a další vlastnosti. Můžete například vytvořit omezení pro sloupec, která zakáže hodnoty null, nebo zadat výchozí hodnotu, pokud není zadaná hodnota, nebo můžete přiřadit omezení klíče v tabulce, která vynucuje jedinečnost nebo definuje relaci mezi tabulkami.

  • Data v tabulce lze komprimovat buď podle řádku, nebo podle stránky. Komprese dat může umožnit uložení více řádků na stránce. Další informace najdete v tématu Komprese dat.

Typy tabulek

Kromě standardní role základních uživatelsky definovaných tabulek poskytuje SQL Server následující typy tabulek, které obsluhují speciální účely v databázi.

Dělené tabulky

Dělené tabulky jsou tabulky, jejichž data jsou horizontálně rozdělena do jednotek, které mohou být rozloženy do více než jedné skupiny souborů v databázi. Dělení usnadňuje správu velkých tabulek nebo indexů tím, že umožňuje rychle a efektivně přistupovat k podmnožinám dat a současně udržovat integritu celkové kolekce. SQL Server ve výchozím nastavení podporuje až 15 000 oddílů. Další informace najdete v tématu Dělené tabulky a indexy.

Dočasné tabulky

Dočasné tabulky jsou uloženy v tempdb. Existují dva typy dočasných tabulek: místní a globální. Liší se od sebe v jejich jménech, jejich viditelnosti a dostupnosti.

  • Místní dočasné tabulky, označované také jako dočasné tabulky s oborem relace, mají jako první znak svých názvů jedno znaménko#, jsou viditelné pouze pro aktuální připojení uživatele a jsou odstraněny, jakmile se uživatel odpojí od instance SQL Serveru.
  • Globální dočasné tabulky mají jako první znaky jejich názvů dva znaky.## Jsou viditelné pro každého uživatele po vytvoření a odstraní se, když se všichni uživatelé odkazující na tabulku odpojí od instance SQL Serveru.

Ve službě Fabric Data Warehouse jsou podporovány pouze dočasné tabulky s rozsahem relace a nejsou jimi ovlivněny pokyny pro cestování časem.

Omezené rekompilace pro úlohy využívající dočasné tabulky napříč několika obory

SQL Server 2019 (15.x) ve všech úrovních kompatibility databáze snižuje rekompilace úloh pomocí dočasných tabulek napříč několika obory. Tato funkce je také povolená ve službě Azure SQL Database v rámci úrovně kompatibility databáze 150 pro všechny modely nasazení. Před zavedením této funkce způsobilo odkazování na dočasnou tabulku pomocí příkazu jazyka pro manipulaci s daty (DML) (SELECT, INSERT, UPDATE, DELETE) opětovnou kompilaci příkazu DML pokaždé, když byla dočasná tabulka vytvořena dávkou z vnějšího oboru. Díky tomuto vylepšení SQL Server provádí další odlehčené kontroly, aby se zabránilo zbytečným rekompilacem:

  • Zkontrolujte, zda je modul použitý při kompilaci k vytvoření dočasné tabulky ve vnějším oboru stejný jako ten použitý během po sobě jdoucích spuštění.
  • Sledujte všechny změny jazyka DDL (Data Definition Language) provedené při počáteční kompilaci a porovnejte je s operacemi DDL při po sobě jdoucích spuštěních.

Konečným výsledkem je snížení nadbytečných rekompilace a režijních nákladů na procesor.

Systémové tabulky

SQL Server ukládá data, která definují konfiguraci serveru a všech jejích tabulek ve speciální sadě tabulek označovaných jako systémové tabulky. Uživatelé nemůžou systémové tabulky dotazovat ani aktualizovat přímo. Informace v systémových tabulkách jsou zpřístupněny prostřednictvím systémových zobrazení. Seznam naleznete v tématu Systémové tabulky (Transact-SQL).

Široké tabulky

Široké tabulky používají řídké sloupce ke zvýšení celkového počtu sloupců, které tabulka může mít na 30 000. Řídké sloupce jsou běžné sloupce, které mají optimalizované úložiště pro nulové hodnoty. Řídké sloupce snižují požadavky na místo pro nulové hodnoty za cenu větších nákladů na načtení nenulových hodnot. Široká tabulka definovala sadu sloupců , což je netypová reprezentace XML, která kombinuje všechny řídké sloupce tabulky do strukturovaného výstupu. Počet indexů a statistik se také zvýší na 1 000 a 30 000. Maximální velikost širokého řádku tabulky je 8 019 bajtů. Proto by většina dat v každém konkrétním řádku měla být NULL. Maximální počet neparsparsních sloupců a počítaných sloupců v široké tabulce zůstává 1 024.

Široké tabulky mají následující důsledky z hlediska výkonu.

  • Široké tabulky můžou zvýšit náklady na údržbu indexů v tabulce. Doporučujeme omezit počet indexů v široké tabulce na indexy, které vyžadují obchodní logika. S rostoucím počtem indexů se zvyšuje doba kompilace DML a požadavek na paměť. Neclusterované indexy by měly být filtrované indexy, které se použijí na podmnožinu dat. Další informace naleznete v tématu Vytvoření filtrovaných indexů.

  • Aplikace můžou dynamicky přidávat a odebírat sloupce ze širokých tabulek. Když se sloupce přidají nebo odeberou, zkompilované plány dotazů se také zneplatní. Doporučujeme navrhnout aplikaci tak, aby odpovídala projektované úloze, aby se minimalizovaly změny schématu.

  • Když se data přidají a odeberou ze široké tabulky, může to mít vliv na výkon. Aplikace musí být navržené pro projektovanou úlohu, aby se minimalizovaly změny dat tabulky.

  • Omezte provádění příkazů DML v široké tabulce, které aktualizují více řádků klíče clusteringu. Tyto příkazy mohou vyžadovat významné paměťové prostředky ke kompilaci a spuštění.

  • Operace přepínání oddílů na širokých tabulkách můžou být pomalé a můžou vyžadovat velké množství paměti ke zpracování. Požadavky na výkon a paměť jsou úměrné celkovému počtu sloupců ve zdrojovém i cílovém oddílu.

  • Kurzory, které aktualizují konkrétní sloupce v široké tabulce, by měly obsahovat tyto sloupce explicitně uvedeny v klauzuli FOR UPDATE. To vám pomůže optimalizovat výkon při použití kurzorů.

Běžné úkoly tabulek

Následující tabulka obsahuje odkazy na běžné úlohy spojené s vytvořením nebo úpravou tabulky.

Úkoly tabulky Topic
Popisuje, jak vytvořit tabulku. Vytváření tabulek (databázový stroj)
Popisuje, jak odstranit tabulku. Odstranit tabulky (Databázový stroj)
Popisuje, jak vytvořit novou tabulku, která obsahuje některé nebo všechny sloupce v existující tabulce. Duplicitní tabulky
Popisuje, jak přejmenovat tabulku. Přejmenování tabulek (databázový stroj)
Popisuje, jak zobrazit vlastnosti tabulky. Zobrazit definici tabulky
Popisuje, jak určit, zda jiné objekty, jako je zobrazení nebo uložená procedura, závisí na tabulce. Zobrazení závislostí tabulky

Následující tabulka obsahuje odkazy na běžné úlohy spojené s vytvářením nebo úpravou sloupců v tabulce.

Úkoly sloupce Topic
Popisuje, jak přidat sloupce do existující tabulky. Přidání sloupců do tabulky (databázového systému)
Popisuje, jak odstranit sloupce z tabulky. Odstranění sloupců z tabulky
Popisuje, jak změnit název sloupce. Přejmenování sloupců (databázový stroj)
Popisuje, jak kopírovat sloupce z jedné tabulky do druhé, kopírovat buď jenom definici sloupce, nebo definici a data. kopírování sloupců z jedné tabulky do jiného (databázového stroje)
Popisuje, jak upravit definici sloupce změnou datového typu nebo jiné vlastnosti. Úpravy sloupců
Popisuje, jak změnit pořadí, ve kterém se sloupce zobrazují. Změnit pořadí sloupců v tabulce
Popisuje, jak vytvořit počítaný sloupec v tabulce. Určení počítaných sloupců v tabulce
Popisuje, jak zadat výchozí hodnotu sloupce. Tato hodnota se používá, pokud není zadána jiná hodnota. Zadání výchozích hodnot pro sloupce