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:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
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 = ] 'mode'
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 @modeALL eseté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 1
van á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 1
az 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ú PRECREATED ellenő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 KB a fájlt. |
xtp_used |
varchar(18) | Az ellenőrzőpont-fájlok teljes mérete a ACTIVE KB-ban lévő állapotokkal UNDER CONSTRUCTION é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_TRUNCATION ellenő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, 1
a 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ú PRECREATED ellenő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 ACTIVE KB-ban lévő állapotokkal UNDER CONSTRUCTION é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_TRUNCATION ellenő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 1
van állítva.
Megjegyzések
Az database_size
érték általában nagyobb, mint a reserved
unallocated space
+ naplófájlok mérete, és reserved
unallocated_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_size
a térbeli reserved
index mérete) index_size
tartalmazzá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)