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.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
A sp_spaceused rendszer által tárolt eljárás a következőket jeleníti meg:
a tábla, indexelt nézet vagy Service Broker-üzenetsor által használt sorok, fenntartott lemezterület és lemezterület száma az aktuális adatbázisban
a teljes adatbázis által fenntartott és felhasznált lemezterület
Transact-SQL szintaxis konvenciók
Szemantika
sp_spaceused
[ [ @objname = ] N'objname' ]
[ , [ @updateusage = ] 'updateusage' ]
[ , [ @mode = ] 'mode' ]
[ , [ @oneresultset = ] oneresultset ]
[ , [ @include_total_xtp_storage = ] include_total_xtp_storage ]
[ ; ]
Megjegyzés:
Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.
Érvek
Az Azure Synapse Analytics and Analytics Platform System (PDW) sp_spaceused esetében az elnevezett paramétereket (például sp_spaceused (@objname= N'Table1');) kell megadnia, nem pedig a paraméterek sorrendi pozíciójára kell támaszkodnia.
[ @objname = ] N'objname'
Annak a táblának, indexelt nézetnek vagy üzenetsornak a minősített vagy nem minősített neve, amelyhez a területhasználati adatokat kérik.
@objnamenvarchar(776), alapértelmezett értéke NULL. Idézőjelek csak minősített objektumnév megadása esetén szükségesek. Ha egy teljesen minősített objektumnév (beleértve az adatbázisnevet) van megadva, az adatbázis nevének az aktuális adatbázis nevének kell lennie.
Ha @objname nincs megadva, a rendszer a teljes adatbázis eredményeit adja vissza.
Megjegyzés:
Az Azure Synapse Analytics and Analytics Platform System (PDW) csak az adatbázis- és táblaobjektumokat támogatja.
[ @updateusage = ] 'updateusage'
Azt jelzi, DBCC UPDATEUSAGE hogy a helyhasználati adatok frissítéséhez futtatni kell.
@updateusagea varchar(5), alapértelmezés szerint false. Ha nincs megadva @objname, az utasítás a teljes adatbázisban fut. Ellenkező esetben az utasítás @objname fut. Az értékek lehetnek true vagy false.
[ @mode = ] 'mód'
Az eredmények hatókörét jelzi. Egy kifeszített tábla vagy adatbázis esetében a @mode paraméter lehetővé teszi az objektum távoli részének belefoglalását vagy kizárását. További információ: Stretch Database.
Fontos
A Stretch Database elavult az SQL Server 2022 -ben (16.x) és az Azure SQL Database-ben. Ez a funkció az adatbázismotor egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását.
@modevarchar(11), és ezek egyike lehet.
| Érték | Leírás |
|---|---|
ALL (alapértelmezett) |
Az objektum vagy adatbázis tárolási statisztikáit adja vissza, beleértve a helyi és a távoli részt is. |
LOCAL_ONLY |
Csak az objektum vagy adatbázis helyi részének tárolási statisztikáit adja vissza. Ha az objektum vagy adatbázis nem stretch-kompatibilis, ugyanazokat a statisztikákat adja vissza, mint @modeALLesetén. |
REMOTE_ONLY |
Csak az objektum vagy adatbázis távoli részének tárolási statisztikáit adja vissza. Ez a beállítás hibát jelez, ha az alábbi feltételek egyike teljesül: A tábla nincs engedélyezve a Stretch esetében. A tábla engedélyezve van a Stretch esetében, de még soha nem engedélyezte az adatmigrálást. Ebben az esetben a távoli tábla még nem rendelkezik sémával. A felhasználó manuálisan elvetette a távoli táblát. A távoli adatarchívum kiépítése sikeres állapotot adott vissza, de valójában nem sikerült. |
[ @oneresultset = ] oneresultset
Azt jelzi, hogy egyetlen eredményhalmazt szeretne-e visszaadni. @oneresultsetbit, és az alábbi értékek egyike lehet:
| Érték | Leírás |
|---|---|
0 (alapértelmezett) |
Ha @objname null értékű, vagy nincs megadva, a rendszer két eredményhalmazt ad vissza. |
1 |
Ha @objname van NULL megadva, vagy nincs megadva, a rendszer egyetlen eredményhalmazt ad vissza. |
[ @include_total_xtp_storage = ] include_total_xtp_storage
A következőkre vonatkozik: AZ SQL Server 2017 (14.x) és újabb verziói, valamint az SQL Database
Ha @oneresultset értékre 1van állítva, ez a paraméter határozza meg, hogy az egyetlen eredményhalmaz tartalmaz-e tároszlopokat MEMORY_OPTIMIZED_DATA .
@include_total_xtp_storagebit, alapértelmezés szerint 0. Ha 1az eredményhalmaz XTP-oszlopokat tartalmaz.
Kódértékek visszaadása
0 (sikeres) vagy 1 (hiba).
Eredményhalmaz
Ha @objname nincs megadva, és a @oneresultset értéke az 0, a rendszer az alábbi eredményhalmazokat adja vissza az adatbázis aktuális méretadatainak megadásához.
| Oszlop név | Adattípus | Leírás |
|---|---|---|
database_name |
nvarchar(128) | Az aktuális adatbázis neve. |
database_size |
varchar(18) | Az aktuális adatbázis mérete megabájtban.
database_size adat- és naplófájlokat is tartalmaz. |
unallocated space |
varchar(18) | Az adatbázis-objektumok számára nem fenntartott hely az adatbázisban. |
| Oszlop név | Adattípus | Leírás |
|---|---|---|
reserved |
varchar(18) | Az adatbázisban lévő objektumok által lefoglalt terület teljes mennyisége. |
data |
varchar(18) | Az adatok által felhasznált terület teljes mennyisége. |
index_size |
varchar(18) | Az indexek által felhasznált terület teljes mennyisége. |
unused |
varchar(18) | Az adatbázisban lévő objektumok számára fenntartott, de még nem használt terület teljes mennyisége. |
Ha @objname nincs megadva, és a @oneresultset értéke az 1, a rendszer az alábbi eredményhalmazt adja vissza az adatbázis aktuális méretadatainak megadásához.
| Oszlop név | Adattípus | Leírás |
|---|---|---|
database_name |
nvarchar(128) | Az aktuális adatbázis neve. |
database_size |
varchar(18) | Az aktuális adatbázis mérete megabájtban.
database_size adat- és naplófájlokat is tartalmaz. |
unallocated space |
varchar(18) | Az adatbázis-objektumok számára nem fenntartott hely az adatbázisban. |
reserved |
varchar(18) | Az adatbázisban lévő objektumok által lefoglalt terület teljes mennyisége. |
data |
varchar(18) | Az adatok által felhasznált terület teljes mennyisége. |
index_size |
varchar(18) | Az indexek által felhasznált terület teljes mennyisége. |
unused |
varchar(18) | Az adatbázisban lévő objektumok számára fenntartott, de még nem használt terület teljes mennyisége. |
Ha @objname van megadva, a rendszer a következő eredményhalmazt adja vissza a megadott objektumhoz.
| Oszlop név | Adattípus | Leírás |
|---|---|---|
name |
nvarchar(128) | Annak az objektumnak a neve, amelyhez a területhasználati adatokat kérték. Az objektum sémaneve nem lesz visszaadva. Ha a sémanév megadása kötelező, használja a sys.dm_db_partition_stats vagy sys.dm_db_index_physical_stats dinamikus felügyeleti nézeteket az egyenértékű méretadatok beszerzéséhez. |
rows |
char(20) | A táblázatban meglévő sorok száma. Ha a megadott objektum egy Service Broker-üzenetsor, ez az oszlop az üzenetsorban lévő üzenetek számát jelzi. |
reserved |
varchar(18) | Fenntartott terület teljes mennyisége @objname számára. |
data |
varchar(18) | A @objname adatai által felhasznált teljes terület. |
index_size |
varchar(18) | Az indexek által a @objname használt teljes terület. |
unused |
varchar(18) | A @objname számára fenntartott, de még nem használt terület teljes mennyisége. |
Ez az alapértelmezett mód, ha nincsenek megadva paraméterek. A rendszer a következő eredményhalmazokat adja vissza a lemezen lévő adatbázis méretadatainak részletezésével.
| Oszlop név | Adattípus | Leírás |
|---|---|---|
database_name |
nvarchar(128) | Az aktuális adatbázis neve. |
database_size |
varchar(18) | Az aktuális adatbázis mérete megabájtban.
database_size adat- és naplófájlokat is tartalmaz. Ha az adatbázis rendelkezik fájlcsoporttal MEMORY_OPTIMIZED_DATA , ez az érték tartalmazza a fájlcsoportban lévő összes ellenőrzőpont-fájl teljes lemezméretét. |
unallocated space |
varchar(18) | Az adatbázis-objektumok számára nem fenntartott hely az adatbázisban. Ha az adatbázis rendelkezik MEMORY_OPTIMIZED_DATA fájlcsoporttal, ez az érték tartalmazza a fájlcsoport állapotú PRECREATED ellenőrzőpont-fájljainak lemezen belüli teljes méretét. |
Az adatbázis táblái által használt terület. Ez az eredményhalmaz nem tükrözi a memóriaoptimalizált táblákat, mivel a lemezhasználat táblánkénti könyvelése nem történt meg:
| Oszlop név | Adattípus | Leírás |
|---|---|---|
reserved |
varchar(18) | Az adatbázisban lévő objektumok által lefoglalt terület teljes mennyisége. |
data |
varchar(18) | Az adatok által felhasznált terület teljes mennyisége. |
index_size |
varchar(18) | Az indexek által felhasznált terület teljes mennyisége. |
unused |
varchar(18) | Az adatbázisban lévő objektumok számára fenntartott, de még nem használt terület teljes mennyisége. |
A következő eredményhalmaz csak akkor lesz visszaadva , ha az adatbázis rendelkezik MEMORY_OPTIMIZED_DATA legalább egy tárolóval rendelkező fájlcsoporttal:
| Oszlop név | Adattípus | Leírás |
|---|---|---|
xtp_precreated |
varchar(18) | Állapotú PRECREATEDellenőrzőpontfájlok teljes mérete kb-ban. Az adatbázis teljes felszabadított területére számít. Ha például 600 000 KB előre létrehozott ellenőrzőpont-fájl található, az oszlop tartalmazza 600000 KBa fájlt. |
xtp_used |
varchar(18) | Az ellenőrzőpont-fájlok teljes mérete a UNDER CONSTRUCTIONKB-ban lévő állapotokkal ACTIVEés MERGE TARGETállapotokkal. Ez az érték a memóriaoptimalizált táblák adataihoz aktívan használt lemezterület. |
xtp_pending_truncation |
varchar(18) | Állapotú WAITING_FOR_LOG_TRUNCATIONellenőrzőpontfájlok teljes mérete kb-ban. Ez az érték a napló csonkolását követően a törlésre váró ellenőrzőpont-fájlok lemezterülete. |
Ha @objname nincs megadva, a @oneresultset1értéke és @include_total_xtp_storage értéke, 1a rendszer az alábbi egyetlen eredménykészletet adja vissza az adatbázis aktuális méretadatainak megadásához. Ha @include_total_xtp_storage ( 0 alapértelmezett), az utolsó három oszlop hiányzik.
| Oszlop név | Adattípus | Leírás |
|---|---|---|
database_name |
nvarchar(128) | Az aktuális adatbázis neve. |
database_size |
varchar(18) | Az aktuális adatbázis mérete megabájtban.
database_size adat- és naplófájlokat is tartalmaz. Ha az adatbázis rendelkezik fájlcsoporttal MEMORY_OPTIMIZED_DATA , ez az érték tartalmazza a fájlcsoportban lévő összes ellenőrzőpont-fájl teljes lemezméretét. |
unallocated space |
varchar(18) | Az adatbázis-objektumok számára nem fenntartott hely az adatbázisban. Ha az adatbázis rendelkezik MEMORY_OPTIMIZED_DATA fájlcsoporttal, ez az érték tartalmazza a fájlcsoport állapotú PRECREATED ellenőrzőpont-fájljainak lemezen belüli teljes méretét. |
reserved |
varchar(18) | Az adatbázisban lévő objektumok által lefoglalt terület teljes mennyisége. |
data |
varchar(18) | Az adatok által felhasznált terület teljes mennyisége. |
index_size |
varchar(18) | Az indexek által felhasznált terület teljes mennyisége. |
unused |
varchar(18) | Az adatbázisban lévő objektumok számára fenntartott, de még nem használt terület teljes mennyisége. |
xtp_precreated
1 |
varchar(18) | Állapotú PRECREATEDellenőrzőpontfájlok teljes mérete kb-ban. Ez az érték az adatbázis teljes felszabadított területére számít. Akkor adja NULL vissza, ha az adatbázis nem rendelkezik MEMORY_OPTIMIZED_DATA legalább egy tárolóval rendelkező fájlcsoporttal. |
xtp_used
1 |
varchar(18) | Az ellenőrzőpont-fájlok teljes mérete a UNDER CONSTRUCTIONKB-ban lévő állapotokkal ACTIVEés MERGE TARGETállapotokkal. Ez az érték a memóriaoptimalizált táblák adataihoz aktívan használt lemezterület. Akkor adja NULL vissza, ha az adatbázis nem rendelkezik MEMORY_OPTIMIZED_DATA legalább egy tárolóval rendelkező fájlcsoporttal. |
xtp_pending_truncation
1 |
varchar(18) | Állapotú WAITING_FOR_LOG_TRUNCATIONellenőrzőpontfájlok teljes mérete kb-ban. Ez az érték a napló csonkolását követően a törlésre váró ellenőrzőpont-fájlok lemezterülete. Akkor adja NULL vissza, ha az adatbázis nem rendelkezik MEMORY_OPTIMIZED_DATA legalább egy tárolóval rendelkező fájlcsoporttal. |
1 Csak akkor tartalmazza, ha @include_total_xtp_storage értékre 1van állítva.
Megjegyzések
Az database_size érték általában nagyobb, mint a reserved + unallocated spacenaplófájlok mérete, és reservedunallocated_space csak az adatoldalakat veszi figyelembe. Előfordulhat, hogy az Azure Synapse Analytics esetében ez az állítás nem igaz.
Az XML-indexek és a teljes szöveges indexek által használt lapok mindkét eredményhalmazban index_size megtalálhatók. Ha @objname van megadva, a rendszer az objektum XML-indexeinek és teljes szöveges indexeinek lapjait is beleszámítja az összegbe reserved és index_size az eredményekbe.
Ha térbeli indexet tartalmazó adatbázisra vagy objektumra számítják ki a térbeli használatot, akkor a térméretű oszlopok( például database_sizea térbeli reservedindex mérete) index_sizetartalmazzák a térbeli index méretét.
Ha @updateusage van megadva, az SQL Server adatbázismotorja megvizsgálja az adatbázis adatlapjait, és minden szükséges javítást végrehajt az sys.allocation_units egyes táblák által használt tárhely és sys.partitions katalógusnézetek tekintetében. Vannak olyan helyzetek, például az index elvetése után, amikor a tábla helyadatai nem aktuálisak.
@updateusage nagy táblákon vagy adatbázisokon való futtatás eltarthat egy ideig. Csak akkor használja @updateusage , ha gyanítja, hogy helytelen értékeket adnak vissza, és ha a folyamat nem befolyásolja hátrányosan az adatbázis többi felhasználóját vagy folyamatát. Tetszés szerint DBCC UPDATEUSAGE külön futtatható.
Megjegyzés:
Nagy indexek elvetése vagy újraépítése, illetve nagy táblák elvetése vagy csonkolása esetén az adatbázismotor a tényleges oldaleltéréseket és a hozzájuk tartozó zárolásokat a tranzakció véglegesítéséig hatástalanítja. A késleltetett dobási műveletek nem szabadítják fel azonnal a lefoglalt területet. Ezért előfordulhat, hogy egy nagy objektum elvetése vagy csonkolása után azonnal visszaadott sp_spaceused értékek nem tükrözik a tényleges rendelkezésre álló lemezterületet.
Engedélyek
A végrehajtásra sp_spaceused vonatkozó engedélyt a nyilvános szerepkör kapja meg. A @updateusage paramétert csak a db_owner rögzített adatbázis-szerepkör tagjai adhatja meg.
Példák
Egy. Lemezterület adatainak megjelenítése egy tábláról
Az alábbi példa a tábla és indexei Vendor lemezterület-adatait jelenti.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused N'Purchasing.Vendor';
GO
B. Adatbázis frissített helyadatainak megjelenítése
Az alábbi példa az aktuális adatbázisban használt területet foglalja össze, és a választható @updateusage paramétert használja az aktuális értékek visszaadásához.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused @updateusage = N'TRUE';
GO
C. Területhasználati információk megjelenítése a Stretch-kompatibilis táblához társított távoli tábláról
Az alábbi példa a Stretch-kompatibilis táblához társított távoli tábla által használt területet foglalja össze a távoli cél megadásához használt @mode argumentummal. További információ: Stretch Database.
USE StretchedAdventureWorks2022;
GO
EXECUTE sp_spaceused N'Purchasing.Vendor', @mode = 'REMOTE_ONLY';
D. Egy adatbázis helyhasználati adatainak megjelenítése egyetlen eredményhalmazban
Az alábbi példa egyetlen eredményhalmazban foglalja össze az aktuális adatbázis helyhasználatát.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused @oneresultset = 1;
E. Helyhasználati adatok megjelenítése egy olyan adatbázishoz, amely legalább egy MEMORY_OPTIMIZED fájlcsoportot tartalmaz egyetlen eredményhalmazban
Az alábbi példa az aktuális adatbázis helyhasználatát foglalja össze, és egyetlen eredményhalmazban legalább egy MEMORY_OPTIMIZED fájlcsoporttal rendelkezik.
USE WideWorldImporters;
GO
EXECUTE sp_spaceused
@updateusage = 'FALSE',
@mode = 'ALL',
@oneresultset = '1',
@include_total_xtp_storage = '1';
GO
F. Egy MEMORY_OPTIMIZED táblaobjektum helyhasználati adatainak megjelenítése egy adatbázisban
Az alábbi példa az aktuális adatbázisban lévő, legalább egy MEMORY_OPTIMIZED fájlcsoporttal rendelkező táblaobjektum helyhasználatát MEMORY_OPTIMIZED foglalja össze.
USE WideWorldImporters;
GO
EXECUTE sp_spaceused
@objname = N'VehicleTemperatures',
@updateusage = 'FALSE',
@mode = 'ALL',
@oneresultset = '0',
@include_total_xtp_storage = '1';
GO
Kapcsolódó tartalom
- INDEX LÉTREHOZÁSA (Transact-SQL)
- CREATE TABLE (Transact-SQL)
- DBCC UPDATEUSAGE (Transact-SQL)
- Szolgáltatásközvetítő
- sys.allocation_units (Transact-SQL)
- sys.indexes (Transact-SQL)
- sys.index_columns (Transact-SQL)
- sys.objects (Transact-SQL)
- sys.partitions (Transact-SQL)
- rendszer által tárolt eljárások (Transact-SQL)