Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
sp_spaceused
Sistem saklı yordamı aşağıdakilerden birini görüntüler:
geçerli veritabanındaki tablo, dizinli görünüm veya Hizmet Aracısı kuyruğu tarafından kullanılan satır sayısı, ayrılmış disk alanı ve disk alanı
ayrılmış ve tüm veritabanı tarafından kullanılan disk alanı
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_spaceused
[ [ @objname = ] N'objname' ]
[ , [ @updateusage = ] 'updateusage' ]
[ , [ @mode = ] 'mode' ]
[ , [ @oneresultset = ] oneresultset ]
[ , [ @include_total_xtp_storage = ] include_total_xtp_storage ]
[ ; ]
Uyarı
Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.
Tartışmalar
Azure Synapse Analytics ve Analytics Platform Sistemi (PDW) sp_spaceused
için, parametrelerin sıralı konumuna güvenmek yerine adlandırılmış parametreleri (örneğin sp_spaceused (@objname= N'Table1');
) belirtmelidir.
[ @objname = ] N'objname'
Alan kullanımı bilgilerinin istendiği tablonun, dizinli görünümün veya kuyruğun nitelenmiş veya nitelenmemiş adı.
@objname , varsayılan değeri nvarchar(776) şeklindedir NULL
. Tırnak işaretleri yalnızca bir nitelenmiş nesne adı belirtilmişse gereklidir. Tam nesne adı (veritabanı adı dahil) sağlanmışsa, veritabanı adı geçerli veritabanının adı olmalıdır.
@objname belirtilmezse, tüm veritabanı için sonuçlar döndürülür.
Uyarı
Azure Synapse Analytics ve Analytics Platform Sistemi (PDW) yalnızca veritabanı ve tablo nesnelerini destekler.
[ @updateusage = ] 'updateusage'
Alan kullanım bilgilerini güncelleştirmek için çalıştırılması gerektiğini belirtir DBCC UPDATEUSAGE
.
@updateusage , varsayılan değeri olan varchar(5)'dir false
.
@objname belirtilmediğinde deyimi tüm veritabanında çalıştırılır. Aksi takdirde, deyimi @objname üzerinde çalıştırılır. Değerler true
veya false
olabilir.
[ @mode = ] 'mode'
Sonuçların kapsamını gösterir. Esnetilmiş tablo veya veritabanı için @mode parametresi nesnenin uzak bölümünü eklemenize veya dışlamanıza olanak tanır. Daha fazla bilgi için bkz. Stretch Database
Önemli
Stretch Database, SQL Server 2022 (16.x) ve Azure SQL Veritabanı'nda kullanım dışıdır. Bu özellik, Veritabanı Altyapısı'nın gelecekteki bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
@modevarchar(11) şeklindedir ve bu değerlerden biri olabilir.
Değer | Açıklama |
---|---|
ALL (varsayılan) |
Hem yerel bölüm hem de uzak bölüm dahil olmak üzere nesnenin veya veritabanının depolama istatistiklerini döndürür. |
LOCAL_ONLY |
Nesnenin veya veritabanının yalnızca yerel bölümünün depolama istatistiklerini döndürür. Nesne veya veritabanı Esnetme etkin değilse, @modeALL ile aynı istatistikleri döndürür. |
REMOTE_ONLY |
Nesnenin veya veritabanının yalnızca uzak bölümünün depolama istatistiklerini döndürür. Bu seçenek, aşağıdaki koşullardan biri doğru olduğunda bir hata oluşturur: Tablo Stretch için etkinleştirilmemiş. Tablo Esnetme için etkinleştirildi, ancak veri geçişini hiçbir zaman etkinleştirmediniz. Bu durumda, uzak tablonun henüz bir şeması yoktur. Kullanıcı uzak tabloyu el ile bıraktı. Uzak veri arşivinin sağlanması Başarılı durumunu döndürdü, ancak aslında başarısız oldu. |
[ @oneresultset = ] oneresultset
Tek bir sonuç kümesinin döndürülip döndürülmeyeceğini gösterir. @oneresultsetbittir ve şu değerlerden biri olabilir:
Değer | Açıklama |
---|---|
0 (varsayılan) |
@objname null olduğunda veya belirtilmediğinde iki sonuç kümesi döndürülür. |
1 |
@objname belirtildiğinde NULL veya belirtilmediğinde tek bir sonuç kümesi döndürülür. |
[ @include_total_xtp_storage = ] include_total_xtp_storage
Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri ile SQL Veritabanı
@oneresultset olarak ayarlandığında1
, bu parametre tek sonuç kümesinin depolama için MEMORY_OPTIMIZED_DATA
sütunlar içerip içermediğini belirler.
@include_total_xtp_storagebittir ve varsayılan değeridir 0
. ise 1
, XTP sütunları sonuç kümesine eklenir.
Dönüş kodu değerleri
0
(başarı) veya 1
(başarısızlık).
Sonuç kümesi
@objname atlanırsa ve @oneresultset değeri ise0
, geçerli veritabanı boyutu bilgilerini sağlamak için aşağıdaki sonuç kümeleri döndürülür.
Sütun adı | Veri türü | Açıklama |
---|---|---|
database_name |
nvarchar(128) | Geçerli veritabanının adı. |
database_size |
varchar(18) | Geçerli veritabanının megabayt cinsinden boyutu.
database_size hem veri hem de günlük dosyalarını içerir. |
unallocated space |
varchar(18) | Veritabanında veritabanı nesneleri için ayrılmamış alan. |
Sütun adı | Veri türü | Açıklama |
---|---|---|
reserved |
varchar(18) | Veritabanındaki nesneler tarafından ayrılan toplam alan miktarı. |
data |
varchar(18) | Veriler tarafından kullanılan toplam alan miktarı. |
index_size |
varchar(18) | Dizinler tarafından kullanılan toplam alan miktarı. |
unused |
varchar(18) | Veritabanındaki nesneler için ayrılan ancak henüz kullanılmayan toplam alan miktarı. |
@objname atlanırsa ve @oneresultset değeri ise1
, geçerli veritabanı boyutu bilgilerini sağlamak için aşağıdaki tek sonuç kümesi döndürülür.
Sütun adı | Veri türü | Açıklama |
---|---|---|
database_name |
nvarchar(128) | Geçerli veritabanının adı. |
database_size |
varchar(18) | Geçerli veritabanının megabayt cinsinden boyutu.
database_size hem veri hem de günlük dosyalarını içerir. |
unallocated space |
varchar(18) | Veritabanında veritabanı nesneleri için ayrılmamış alan. |
reserved |
varchar(18) | Veritabanındaki nesneler tarafından ayrılan toplam alan miktarı. |
data |
varchar(18) | Veriler tarafından kullanılan toplam alan miktarı. |
index_size |
varchar(18) | Dizinler tarafından kullanılan toplam alan miktarı. |
unused |
varchar(18) | Veritabanındaki nesneler için ayrılan ancak henüz kullanılmayan toplam alan miktarı. |
@objname belirtilirse, belirtilen nesne için aşağıdaki sonuç kümesi döndürülür.
Sütun adı | Veri türü | Açıklama |
---|---|---|
name |
nvarchar(128) | Alan kullanımı bilgilerinin istendiği nesnenin adı. Nesnenin şema adı döndürülmüyor. Şema adı gerekiyorsa, eşdeğer boyut bilgilerini almak için sys.dm_db_partition_stats veya sys.dm_db_index_physical_stats dinamik yönetim görünümlerini kullanın. |
rows |
char(20) | Tabloda var olan satır sayısı. Belirtilen nesne bir Hizmet Aracısı kuyruğuysa, bu sütun kuyruktaki iletilerin sayısını gösterir. |
reserved |
varchar(18) | @objname için toplam ayrılmış alan miktarı. |
data |
varchar(18) | @objname verileri tarafından kullanılan toplam alan miktarı. |
index_size |
varchar(18) | @objname dizinler tarafından kullanılan toplam alan miktarı. |
unused |
varchar(18) | @objname için ayrılan ancak henüz kullanılmayan toplam alan miktarı. |
Parametre belirtilmediğinde bu mod varsayılandır. Aşağıdaki sonuç kümeleri, disk üzerindeki veritabanı boyutu bilgilerini ayrıntılı olarak inceleyerek döndürülür.
Sütun adı | Veri türü | Açıklama |
---|---|---|
database_name |
nvarchar(128) | Geçerli veritabanının adı. |
database_size |
varchar(18) | Geçerli veritabanının megabayt cinsinden boyutu.
database_size hem veri hem de günlük dosyalarını içerir. Veritabanında bir MEMORY_OPTIMIZED_DATA dosya grubu varsa, bu değer dosya grubundaki tüm denetim noktası dosyalarının toplam disk içi boyutunu içerir. |
unallocated space |
varchar(18) | Veritabanında veritabanı nesneleri için ayrılmamış alan. Veritabanında bir MEMORY_OPTIMIZED_DATA dosya grubu varsa, bu değer dosya grubunda durum PRECREATED bilgisi olan denetim noktası dosyalarının toplam disk içi boyutunu içerir. |
Veritabanındaki tablolar tarafından kullanılan alan. Disk kullanımı tablo başına hesaplama olmadığından bu sonuç kümesi bellek için iyileştirilmiş tabloları yansıtmaz:
Sütun adı | Veri türü | Açıklama |
---|---|---|
reserved |
varchar(18) | Veritabanındaki nesneler tarafından ayrılan toplam alan miktarı. |
data |
varchar(18) | Veriler tarafından kullanılan toplam alan miktarı. |
index_size |
varchar(18) | Dizinler tarafından kullanılan toplam alan miktarı. |
unused |
varchar(18) | Veritabanındaki nesneler için ayrılan ancak henüz kullanılmayan toplam alan miktarı. |
Aşağıdaki sonuç kümesi yalnızca veritabanında en az bir kapsayıcısı olan bir MEMORY_OPTIMIZED_DATA
dosya grubu varsa döndürülür:
Sütun adı | Veri türü | Açıklama |
---|---|---|
xtp_precreated |
varchar(18) | Durumu PRECREATED kb olan denetim noktası dosyalarının toplam boyutu. Veritabanındaki ayrılmamış alanı bir bütün olarak sayar. Örneğin, önceden oluşturulmuş 600.000 KB denetim noktası dosyası varsa, bu sütun içerir 600000 KB . |
xtp_used |
varchar(18) | , ve MERGE TARGET durumlarının UNDER CONSTRUCTION ACTIVE KB cinsinden olduğu denetim noktası dosyalarının toplam boyutu. Bu değer, bellek için iyileştirilmiş tablolardaki veriler için etkin olarak kullanılan disk alanıdır. |
xtp_pending_truncation |
varchar(18) | Durumu WAITING_FOR_LOG_TRUNCATION kb olan denetim noktası dosyalarının toplam boyutu. Bu değer, günlük kesilmesi gerçekleştiğinde temizlemeyi bekleyen denetim noktası dosyaları için kullanılan disk alanıdır. |
@objname atlanırsa, @oneresultset değeri olur 1
ve @include_total_xtp_storage ise 1
geçerli veritabanı boyutu bilgilerini sağlamak için aşağıdaki tek sonuç kümesi döndürülür.
@include_total_xtp_storage (varsayılan) ise 0
, son üç sütun atlanır.
Sütun adı | Veri türü | Açıklama |
---|---|---|
database_name |
nvarchar(128) | Geçerli veritabanının adı. |
database_size |
varchar(18) | Geçerli veritabanının megabayt cinsinden boyutu.
database_size hem veri hem de günlük dosyalarını içerir. Veritabanında bir MEMORY_OPTIMIZED_DATA dosya grubu varsa, bu değer dosya grubundaki tüm denetim noktası dosyalarının toplam disk içi boyutunu içerir. |
unallocated space |
varchar(18) | Veritabanında veritabanı nesneleri için ayrılmamış alan. Veritabanında bir MEMORY_OPTIMIZED_DATA dosya grubu varsa, bu değer dosya grubunda durum PRECREATED bilgisi olan denetim noktası dosyalarının toplam disk içi boyutunu içerir. |
reserved |
varchar(18) | Veritabanındaki nesneler tarafından ayrılan toplam alan miktarı. |
data |
varchar(18) | Veriler tarafından kullanılan toplam alan miktarı. |
index_size |
varchar(18) | Dizinler tarafından kullanılan toplam alan miktarı. |
unused |
varchar(18) | Veritabanındaki nesneler için ayrılan ancak henüz kullanılmayan toplam alan miktarı. |
xtp_precreated
1 |
varchar(18) | Durumu PRECREATED kb olan denetim noktası dosyalarının toplam boyutu. Bu değer, veritabanındaki ayrılmamış alana bir bütün olarak sayılır. Veritabanında en az bir kapsayıcısı olan bir MEMORY_OPTIMIZED_DATA dosya grubu yoksa döndürürNULL . |
xtp_used
1 |
varchar(18) | , ve MERGE TARGET durumlarının UNDER CONSTRUCTION ACTIVE KB cinsinden olduğu denetim noktası dosyalarının toplam boyutu. Bu değer, bellek için iyileştirilmiş tablolardaki veriler için etkin olarak kullanılan disk alanıdır. Veritabanında en az bir kapsayıcısı olan bir MEMORY_OPTIMIZED_DATA dosya grubu yoksa döndürürNULL . |
xtp_pending_truncation
1 |
varchar(18) | Durumu WAITING_FOR_LOG_TRUNCATION kb olan denetim noktası dosyalarının toplam boyutu. Bu değer, günlük kesilmesi gerçekleştiğinde temizlemeyi bekleyen denetim noktası dosyaları için kullanılan disk alanıdır. Veritabanında en az bir kapsayıcısı olan bir MEMORY_OPTIMIZED_DATA dosya grubu yoksa döndürürNULL . |
1 Yalnızca @include_total_xtp_storage olarak ayarlandıysa 1
eklenir.
Açıklamalar
database_size
Günlük dosyalarının boyutunu içerdiğinden değer genellikle değerinden reserved
unallocated space
+ büyüktür, ancak reserved
unallocated_space
yalnızca veri sayfalarını dikkate alır. Azure Synapse Analytics ile ilgili bazı durumlarda bu deyim doğru olmayabilir.
XML dizinleri ve tam metin dizinleri tarafından kullanılan sayfalar her iki sonuç kümesi için de index_size
eklenir.
@objname belirtildiğinde, nesnenin XML dizinleri ve tam metin dizinleri için sayfalar da toplam reserved
ve index_size
sonuçlarda sayılır.
Bir veritabanı veya uzamsal dizin olan bir nesne için alan kullanımı hesaplanıyorsa, , reserved
ve index_size
gibi database_size
boşluk boyutu sütunları uzamsal dizinin boyutunu içerir.
@updateusage belirtildiğinde, SQL Server Veritabanı Altyapısı veritabanındaki veri sayfalarını tarar ve her tablo tarafından kullanılan depolama alanıyla ilgili ve sys.partitions
katalog görünümlerinde gerekli düzeltmeleri sys.allocation_units
yapar. Örneğin, bir dizin bırakıldıktan sonra tablonun alan bilgilerinin güncel olmayabileceği bazı durumlar vardır.
@updateusage büyük tablolarda veya veritabanlarında çalıştırılması biraz zaman alabilir.
@updateusage yalnızca yanlış değerlerin döndürülmekte olduğundan şüpheleniyorsanız ve işlemin veritabanındaki diğer kullanıcılar veya işlemler üzerinde olumsuz bir etkisi olmadığında kullanın. Tercih edilirse, DBCC UPDATEUSAGE
ayrı olarak çalıştırılabilir.
Uyarı
Büyük dizinleri bıraktığınızda veya yeniden derlediğinizde ya da büyük tabloları bıraktığınızda veya kesdiğinizde, Veritabanı Altyapısı işlem işlemeden sonraya kadar gerçek sayfa ayırmalarını ve ilişkili kilitlerini saptırıyor. Ertelenmiş bırakma işlemleri ayrılan alanı hemen serbest bırakmaz. Bu nedenle, büyük bir nesne bırakıldıktan veya kesildikten hemen sonra tarafından sp_spaceused
döndürülen değerler kullanılabilir gerçek disk alanını yansıtmayabilir.
İzinler
Yürütme sp_spaceused
izni genel role verilir.
@updateusage parametresini yalnızca db_owner sabit veritabanı rolünün üyeleri belirtebilir.
Örnekler
A. Tablo hakkındaki disk alanı bilgilerini görüntüleme
Aşağıdaki örnek, tablo ve dizinleri için Vendor
disk alanı bilgilerini raporlar.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused N'Purchasing.Vendor';
GO
B. Veritabanı hakkında güncelleştirilmiş alan bilgilerini görüntüleme
Aşağıdaki örnek, geçerli veritabanında kullanılan alanı özetler ve geçerli değerlerin döndürülmesini sağlamak için isteğe bağlı parametre @updateusage kullanır.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused @updateusage = N'TRUE';
GO
C. Esnetme özellikli bir tabloyla ilişkilendirilmiş uzak tabloyla ilgili alan kullanım bilgilerini görüntüleme
Aşağıdaki örnek, uzak hedefi belirtmek için @mode bağımsız değişkenini kullanarak Esnetme özellikli bir tabloyla ilişkilendirilmiş uzak tablo tarafından kullanılan alanı özetler. Daha fazla bilgi için bkz. Stretch Database.
USE StretchedAdventureWorks2022;
GO
EXECUTE sp_spaceused N'Purchasing.Vendor', @mode = 'REMOTE_ONLY';
D. Veritabanı için alan kullanım bilgilerini tek bir sonuç kümesinde görüntüleme
Aşağıdaki örnek, geçerli veritabanı için tek bir sonuç kümesindeki alan kullanımını özetler.
USE AdventureWorks2022;
GO
EXECUTE sp_spaceused @oneresultset = 1;
E. Tek bir sonuç kümesinde en az bir MEMORY_OPTIMIZED dosya grubuna sahip bir veritabanı için alan kullanım bilgilerini görüntüleme
Aşağıdaki örnek, tek bir sonuç kümesinde en az bir MEMORY_OPTIMIZED
dosya grubu olan geçerli veritabanı için alan kullanımını özetler.
USE WideWorldImporters;
GO
EXECUTE sp_spaceused
@updateusage = 'FALSE',
@mode = 'ALL',
@oneresultset = '1',
@include_total_xtp_storage = '1';
GO
F. Veritabanındaki MEMORY_OPTIMIZED tablo nesnesi için alan kullanım bilgilerini görüntüleme
Aşağıdaki örnek, geçerli veritabanında en az bir MEMORY_OPTIMIZED
dosya grubuna sahip bir MEMORY_OPTIMIZED
tablo nesnesi için alan kullanımını özetler.
USE WideWorldImporters;
GO
EXECUTE sp_spaceused
@objname = N'VehicleTemperatures',
@updateusage = 'FALSE',
@mode = 'ALL',
@oneresultset = '0',
@include_total_xtp_storage = '1';
GO