Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Az SQL Server 2016 (13.x) és újabb verziói
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platformrendszer (PDW)
SQL-elemzési végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
A táblák olyan adatbázis-objektumok, amelyek az adatbázis összes adatát tartalmazzák. A táblákban az adatok logikailag egy táblázathoz hasonló sor- és oszlopformátumban lesznek rendszerezve. Minden sor egyedi rekordot jelöl, az egyes oszlopok pedig a rekord egy mezőjét. Egy vállalat alkalmazotti adatait tartalmazó táblák például minden alkalmazotthoz tartalmazhatnak egy sort, az alkalmazottak adatait képviselő oszlopokat, például az alkalmazottak számát, nevét, címét, beosztását és otthoni telefonszámát.
Az adatbázisban lévő táblák számát csak az adatbázisban engedélyezett objektumok száma korlátozza (2 147 483 647). Egy szabványos, felhasználó által definiált tábla legfeljebb 1024 oszlopból áll. A tábla sorainak számát csak a kiszolgáló tárolási kapacitása korlátozza.
Tulajdonságokat rendelhet a táblához és a tábla minden oszlopához az engedélyezett adatok és egyéb tulajdonságok szabályozásához. Létrehozhat például kényszereket egy oszlopon a null értékek letiltásához, vagy alapértelmezett érték megadásához, ha nincs megadva érték, vagy hozzárendelhet egy kulcskényszert a táblához, amely egyediséget kényszerít ki, vagy kapcsolatot határoz meg a táblák között.
A táblázat adatai sor vagy oldal szerint tömöríthetők. Az adattömörítéssel több sor tárolható egy lapon. További információ: Adattömörítés.
Táblatípusok
Az alapszintű, felhasználó által definiált táblák szabványos szerepkörén kívül az SQL Server a következő típusú táblákat biztosítja, amelyek speciális célokat szolgálnak egy adatbázisban.
Particionált táblák
A particionált táblák olyan táblák, amelyek adatai vízszintesen egységekre vannak osztva, amelyek egy adatbázisban több fájlcsoportra is eloszthatók. A particionálás a nagyméretű táblákat és indexeket kezelhetőbbé teszi azáltal, hogy lehetővé teszi az adatok részhalmazainak gyors és hatékony elérését vagy kezelését, miközben fenntartja a teljes gyűjtemény integritását. Az SQL Server alapértelmezés szerint legfeljebb 15 000 partíciót támogat. További információ: Particionált táblák és indexek.
ideiglenes táblák
Az ideiglenes táblák tárolása a következő helyen tempdbtörténik: . Az ideiglenes tábláknak két típusa van: helyi és globális. A nevükben, a láthatóságukban és a rendelkezésre állásukban különböznek egymástól.
- A helyi ideiglenes táblák, más néven munkamenet-hatókörű ideiglenes táblák neveik első karaktere egyetlen számjellel (
#) rendelkeznek; csak a felhasználó aktuális kapcsolatán láthatók, és törlődnek, amikor a felhasználó leválasztja őket az SQL Server-példányról. - A globális ideiglenes táblák két számjelet (
##) tartalmaznak a nevük első karaktereként; azok a létrehozásuk után minden felhasználó számára láthatók, és törlődnek, ha a táblára hivatkozó összes felhasználó leválasztja őket az SQL Server-példányról.
A Fabric Data Warehouse-ban csak a munkamenet-hatókörű ideiglenes táblák támogatottak, és ezekre nem hatnak az időutazási utasítások.
Csökkentett újrafordítások több hatókörön belüli ideiglenes táblákat használó számítási feladatokhoz
Az SQL Server 2019 (15.x) minden adatbáziskompatibilitási szinten csökkenti a számítási feladatok újrafordítását, több hatókörre kiterjedő ideiglenes táblák használatával. Ez a funkció az Azure SQL Database-ben is engedélyezve van a 150-es adatbáziskompatibilitási szinten az összes üzemi modell esetében. A funkció előtt, amikor egy ideiglenes táblára hivatkozik egy adatmanipulációs nyelv (DML) utasítással (SELECT, INSERT, UPDATE, DELETE), ha az ideiglenes táblát külső hatókörű köteg hozta létre, az a DML-utasítás újrafordítását eredményezné minden egyes végrehajtáskor. Ezzel a fejlesztéssel az SQL Server további egyszerűsített ellenőrzéseket hajt végre a szükségtelen újrafordítások elkerülése érdekében:
- Ellenőrizze, hogy az ideiglenes tábla fordításkor történő létrehozásához használt külső hatókörű modul megegyezik-e az egymást követő végrehajtásokhoz használt modullal.
- Nyomon követheti az adatdefiníciós nyelv (DDL) kezdeti fordításkor végrehajtott módosításait, és összehasonlíthatja őket az egymást követő végrehajtások DDL-műveleteivel.
A végeredmény a felesleges újrafordítások és a cpu-többletterhelés csökkentése.
Rendszertáblák
Az SQL Server a kiszolgáló konfigurációját meghatározó adatokat és annak összes tábláját egy speciális, rendszertábláknak nevezett táblában tárolja. A felhasználók közvetlenül nem kérdezhetik le vagy nem frissíthetik a rendszertáblákat. A rendszertáblákban szereplő információk a rendszernézeteken keresztül érhetők el. A listaért lásd: Rendszertáblák (Transact-SQL).
Széles táblák
A széles táblák ritka oszlopokat használnak, a táblákban 30 000 oszlopot tartalmazó oszlopok számának növeléséhez. A ritka oszlopok olyan szokásos oszlopok, amelyek optimalizált tárolást biztosítanak a null értékek számára. A ritka oszlopok csökkentik a null értékek térkövetelményeit a nemnull értékek lekéréséhez szükséges többletköltségek árán. A széles táblázat definiált egy oszlopkészletet, amely egy nem beírt XML-reprezentáció, amely a tábla összes ritka oszlopát strukturált kimenetbe egyesíti. Az indexek és statisztikák száma szintén 1000-re, illetve 30 000-re nő. A széles táblázatsorok maximális mérete 8019 bájt. Ezért a legtöbb adatnak egy adott sorban kell lennie NULL. A nem ritka oszlopok és a számított oszlopok maximális száma egy széles táblában 1,024 marad.
A széles táblák a következő teljesítménybeli következményekkel járnak.
A széles táblák növelhetik a tábla indexeinek karbantartásának költségeit. Javasoljuk, hogy a széles táblák indexeinek száma az üzleti logika által megkövetelt indexekre korlátozódjon. Ahogy nő az indexek száma, úgy a DML fordítási ideje és a memóriaigény is. A nem klaszteresített indexeknek szűrt indexeknek kell lenniük, amelyek az adathalmaz részhalmazaira vonatkoznak. További információ: Szűrt indexek létrehozása.
Az alkalmazások dinamikusan adhatnak hozzá és távolíthatnak el oszlopokat széles táblákból. Oszlopok hozzáadásakor vagy eltávolításakor a rendszer a lefordított lekérdezési terveket is érvényteleníti. Javasoljuk, hogy a tervezett számítási feladatnak megfelelő alkalmazást tervezzen a sémamódosítások minimalizálása érdekében.
Ha adatokat adnak hozzá és távolítanak el egy széles táblából, a teljesítmény is befolyásolható. Az alkalmazásokat úgy kell megtervezni a tervezett számítási feladathoz, hogy a táblaadatok módosítása minimálisra csökkenjen.
Korlátozza a DML-utasítások végrehajtását olyan széles táblákon, amelyek egy fürtkulcs mentén több sort frissítenek. Ezek az utasítások jelentős memóriaerőforrásokat igényelhetnek a fordításhoz és a végrehajtáshoz.
A partícióváltási műveletek széles táblákon lassúak lehetnek, és nagy mennyiségű memóriát igényelhetnek a feldolgozáshoz. A teljesítmény- és memóriakövetelmények arányosak a forrás- és célpartíciók oszlopainak teljes számával.
A széles táblázat adott oszlopait frissítő frissítési kurzoroknak explicit módon kell felsorolni az oszlopokat a FOR UPDATE záradékban. Ez segít optimalizálni a teljesítményt a kurzorok használatakor.
Gyakori táblafeladatok
Az alábbi táblázat a táblák létrehozásával vagy módosításával kapcsolatos gyakori feladatokra mutató hivatkozásokat tartalmaz.
| Táblázatfeladatok | Topic |
|---|---|
| A táblázat létrehozásának módját ismerteti. | Táblák létrehozása (adatbázismotor) |
| A táblázat törlésének módját ismerteti. | Táblák törlése (adatbázismotor) |
| Azt ismerteti, hogyan hozhat létre egy új táblát, amely egy meglévő tábla néhány vagy az összes oszlopát tartalmazza. | Duplikált táblák |
| A táblázat átnevezésének módját ismerteti. | Táblák átnevezése (adatbázismotor) |
| A táblázat tulajdonságainak megtekintését ismerteti. | A tábladefiníció megtekintése |
| Azt ismerteti, hogyan állapítható meg, hogy más objektumok, például a nézet vagy a tárolt eljárás függenek-e egy táblától. | Tábla függőségeinek megtekintése |
Az alábbi táblázat a táblák oszlopainak létrehozásával vagy módosításával kapcsolatos gyakori feladatokra mutató hivatkozásokat tartalmaz.
| Oszloptevékenységek | Topic |
|---|---|
| Azt ismerteti, hogyan adhat hozzá oszlopokat egy meglévő táblához. | Oszlopok hozzáadása táblázathoz (adatbázismotor) |
| Azt ismerteti, hogyan törölhet oszlopokat egy táblából. | Oszlopok törlése táblázatból |
| Az oszlop nevének módosítását ismerteti. | Oszlopok átnevezése (adatbázismotor) |
| Azt ismerteti, hogyan másolhat oszlopokat egyik táblából a másikba, és hogyan másolhatja csak az oszlopdefiníciót, vagy a definíciót és az adatokat. | Oszlopok másolása egyik táblából a másikba (adatbázismotor) |
| Az oszlopdefiníciók módosításának módját ismerteti az adattípus vagy más tulajdonság módosításával. | Oszlopok módosítása |
| Ismerteti, hogyan módosíthatja az oszlopok megjelenési sorrendjét. | Tábla oszlopsorrendének módosítása |
| Ez a cikk azt ismerteti, hogyan hozhat létre számított oszlopot egy táblában. | Számított oszlopok megadása egy táblában |
| Az oszlop alapértelmezett értékének megadását ismerteti. Ezt az értéket akkor használja a rendszer, ha egy másik értéket nem ad meg. | Oszlopok alapértelmezett értékeinek megadása |