Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2016 (13.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Endpoint Analytics ve službě Microsoft Fabric
Warehouse ve službě Microsoft Fabric
Databá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 |