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.
Tip
Microsoft Fabric Data Warehouse geleceğe hazır mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip data lake foundation üzerinde kurumsal ölçekli ilişkisel bir ambardır. Veri ambarı konusunda yeniyseniz Fabric Data Warehouse ile başlayın. Mevcut özel SQL havuzu iş yükleri, veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltilebilir.
Bu makalede, Azure Synapse Analytics ayrılmış SQL havuzu ve sunucusuz SQL havuzu ile tablo tasarlamaya yönelik temel kavramlar açıklanmaktadır.
- Sunucusuz SQL havuzu , veri gölünüzdeki veriler üzerinde çalışan bir sorgu hizmetidir. Veri alımı için yerel depolama alanı yoktur.
- Ayrılmış SQL havuzu , Synapse SQL kullanılırken sağlanan analiz kaynaklarının bir koleksiyonunu temsil eder. Ayrılmış SQL havuzunun boyutu Veri Ambarı Birimleri (DWU) tarafından belirlenir.
Aşağıdaki konular ayrılmış SQL havuzu ve sunucusuz SQL havuzu ile ilgilidir:
| Konu | Ayrılmış SQL havuzu | Sunucusuz SQL havuzu |
|---|---|---|
| Tablo kategorisi | Yes | Hayır |
| Şema adları | Yes | Yes |
| Tablo adları | Yes | Hayır |
| Tablo kalıcılığı | Yes | Hayır |
| Normal tablo | Yes | Hayır |
| Geçici tablo | Yes | Yes |
| Dış tablo | Yes | Yes |
| Veri türleri | Yes | Yes |
| Dağıtılmış tablolar | Yes | Hayır |
| Döngüsel Tablolar | Yes | Hayır |
| Karma dağıtılmış tablolar | Yes | Hayır |
| Çoğaltılan tablolar | Yes | Hayır |
| Tablolar için yaygın dağıtım yöntemleri | Yes | Hayır |
| Bölümler | Yes | Yes |
| Columnstore dizinleri | Yes | Hayır |
| Statistics | Yes | Yes |
| Birincil anahtar ve benzersiz anahtar | Yes | Hayır |
| Tablo oluşturmaya yönelik komutlar | Yes | Hayır |
| Kaynak verileri veri ambarıyla hizalama | Yes | Hayır |
| Desteklenmeyen tablo özellikleri | Yes | Hayır |
| Tablo boyutu sorguları | Yes | Hayır |
Tablo kategorisi
Yıldız şeması verileri olgu ve boyut tabloları halinde düzenler. Bazı tablolar olgu veya boyut tablosuna geçmeden önce tümleştirme veya hazırlama verileri için kullanılır. Tablo tasarladığınızda, tablo verilerinin olgu, boyut veya tümleştirme tablosuna ait olup olmadığına karar verin. Bu karar, uygun tablo yapısını ve dağılımını bilgilendirmektedir.
Olgu tabloları , bir işlem sisteminde yaygın olarak oluşturulan ve ardından veri ambarı içine yüklenen nicel veriler içerir. Örneğin, perakende işletmesi her gün satış işlemleri oluşturur ve ardından verileri analiz için bir veri ambarı olgu tablosuna yükler.
Boyut tabloları değişebilen ancak genellikle seyrek değişen öznitelik verileri içerir. Örneğin, bir müşterinin adı ve adresi bir boyut tablosunda depolanır ve yalnızca müşterinin profili değiştiğinde güncelleştirilir. Büyük bir olgu tablosunun boyutunu en aza indirmek için müşterinin adının ve adresinin olgu tablosunun her satırında olması gerekmez. Bunun yerine olgu tablosu ve boyut tablosu müşteri kimliğini paylaşabilir. Bir sorgu, müşterinin profilini ve işlemlerini ilişkilendirmek için iki tabloyu birleştirebilir.
Tümleştirme tabloları , verileri tümleştirmek veya hazırlamak için bir yer sağlar. Tümleştirme tablosunu normal tablo, dış tablo veya geçici tablo olarak oluşturabilirsiniz. Örneğin, bir hazırlama tablosuna veri yükleyebilir, hazırlamadaki veriler üzerinde dönüştürmeler yapabilir ve ardından verileri bir üretim tablosuna ekleyebilirsiniz.
Şema adları
Şemalar, benzer şekilde kullanılan nesneleri gruplandırmak için iyi bir yoldur. Aşağıdaki kod wwi adlı kullanıcı tanımlı bir şema oluşturur.
CREATE SCHEMA wwi;
Tablo adları
Şirket içi çözümden ayrılmış SQL havuzuna birden çok veritabanı geçiriyorsanız, en iyi yöntem tüm olgu, boyut ve tümleştirme tablolarını tek bir SQL havuzu şemasına geçirmektir. Örneğin, tüm tabloları WideWorldImportersDW örnek veri ambarında wwi adlı bir şema içinde depolayabilirsiniz.
Ayrılmış SQL havuzundaki tabloların kuruluşunu göstermek için, , factve dim öğelerini tablo adlarının ön ekleri olarak kullanabilirsinizint. Aşağıdaki tabloda WideWorldImportersDW için bazı şema ve tablo adları gösterilmektedir.
| WideWorldImportersDW tablosu | Tablo türü | Ayrılmış SQL havuzu |
|---|---|---|
| Şehir | Boyut | wwi.DimCity |
| Sipariş | Gerçek | wwi.FactOrder |
Tablo kalıcılığı
Tablolar verileri kalıcı olarak Azure Depolama, geçici olarak Azure Depolama veya veri ambarı dışındaki bir veri deposunda depolar.
Standart tablo
Normal bir tablo, verileri veri ambarının bir parçası olarak Azure Depolama depolar. Oturum açık olsun veya olmasın, tablo ve veriler devam eder. Aşağıdaki örnek, iki sütunlu normal bir tablo oluşturur.
CREATE TABLE MyTable (col1 int, col2 int );
Geçici tablo
Geçici bir tablo yalnızca oturum süresi boyunca var olur. Diğer kullanıcıların geçici sonuçlar görmesini önlemek için geçici bir tablo kullanabilirsiniz. Geçici tabloların kullanılması temizleme gereksinimini de azaltır. Geçici tablolar yerel depolamayı kullanır ve ayrılmış SQL havuzlarında daha hızlı performans sunabilir.
Sunucusuz SQL havuzu geçici tabloları destekler, ancak kullanımları sınırlıdır; çünkü geçici bir tablodan seçim yapabilirsiniz, ancak depolamadaki dosyalarla birleştiremezsiniz.
Daha fazla bilgi için bkz . Geçici tablolar.
Dış tablo
Harici tablolar, Azure Depolama blob veya Azure Data Lake Storage'da bulunan verilere işaret eder.
CREATE TABLE AS SELECT (CTAS) deyimini kullanarak dış tablolardaki verileri ayrılmış SQL havuzlarına aktarabilirsiniz. Yükleme öğreticisi için bkz . New York Taxicab veri kümesini yükleme.
Sunucusuz SQL havuzu için CREATE EXTERNAL TABLE AS SELECT (CETAS) kullanarak sorgu sonucunu Azure Depolama bir dış tabloya kaydedebilirsiniz.
Veri türleri
Ayrılmış SQL havuzu en yaygın kullanılan veri türlerini destekler. Desteklenen veri türlerinin listesi için CREATE TABLE başvurusundaki veri türüne bakın. Veri türlerini kullanma hakkında daha fazla bilgi için bkz. Synapse SQL'de tablo veri türleri.
Dağıtılmış tablolar
Ayrılmış SQL havuzunun temel özelliklerinden biri , dağıtımlar arasında tablolar üzerinde depolama ve çalışma şeklidir. Ayrılmış SQL havuzu, verileri dağıtmak için üç yöntemi destekler:
- Dairesel Dağıtım Tabloları (varsayılan)
- Hash dağıtımlı tablolar
- Çoğaltılmış tablolar
Döngüsel tablolar
Round-robin tablosu, tablo satırlarını tüm dağıtımlar arasında dengeli bir şekilde dağıtır. Satırlar rastgele dağıtılır. Döner dağıtım tablosuna veri yüklemek hızlıdır, ancak sorgular diğer dağıtım yöntemlerine göre daha fazla veri taşınmasını gerektirebilir.
Daha fazla bilgi için bkz. Dağıtılmış tablolar için tasarım kılavuzu.
Hash dağıtımlı tablolar
Karma dağıtılmış tablo, dağıtım sütunundaki değere göre satırları dağıtır. Karma dağıtılmış tablo, büyük tablolardaki sorgular için yüksek performans elde etmek üzere tasarlanmıştır. Dağıtım sütunu seçerken dikkate alınması gereken birkaç faktör vardır.
Daha fazla bilgi için bkz. Dağıtılmış tablolar için tasarım kılavuzu.
Çoğaltılmış tablolar
Çoğaltılan bir tablo, her işlem düğümünde tablonun tam bir kopyasına sahiptir. Çoğaltılan tablolardaki birleştirmeler veri taşıma gerektirmediğinden sorgular çoğaltılan tablolarda hızlı çalışır. Çoğaltma için ek depolama gerekir, ancak büyük tablolar için pratik değildir.
Daha fazla bilgi için bkz . Çoğaltılan tablolar için tasarım kılavuzu.
Tablolar için yaygın dağıtım yöntemleri
Tablo kategorisi genellikle tablo dağıtımı için en uygun seçeneği belirler.
| Tablo kategorisi | Önerilen dağıtım seçeneği |
|---|---|
| Gerçek | Kümeleştirilmiş columnstore dizini ile karma dağıtımı kullanın. Aynı dağıtım sütununda iki karma tablo birleştirildiğinde performans artar. |
| Boyut | Daha küçük tablolar için replika kullanın. Tablolar her İşlem düğümünde depolamayacak kadar büyükse, karma dağıtımı kullanın. |
| Hazırlık | Hazırlama tablosu için round-robin yöntemini kullanın. CTAS ile yük hızlıdır. Veriler hazırlama tablosuna eklendikten sonra, INSERT...SELECT kullanarak verileri üretim tablolarına taşıyın. |
Bölümler
Ayrılmış SQL havuzlarında bölümlenmiş bir tablo, veri aralıklarına göre tablo satırlarında işlemleri depolar ve yürütür. Örneğin, bir tablo güne, aya veya yıla göre bölümlenebilir. Sorgu taramasını bir bölüm içindeki verilerle sınırlayan bölüm eleme yoluyla sorgu performansını geliştirebilirsiniz.
Verileri bölüm değiştirme yoluyla da koruyabilirsiniz. Ayrılmış sql havuzundaki veriler zaten dağıtılmış olduğundan, çok fazla bölüm sorgu performansını yavaşlatabilir. Daha fazla bilgi için Bölümleme kılavuzu bölümüne bakın.
Tip
Bölüm değiştirme sırasında boş olmayan tablo bölümlerine geçerken, var olan veriler silinecekse TRUNCATE_TARGET seçeneğini ALTER TABLE deyiminizde kullanmayı göz önünde bulundurun.
Aşağıdaki kod, dönüştürülmüş günlük verileri SalesFact bölümüne dönüştürür ve mevcut verilerin üzerine yazar.
ALTER TABLE SalesFact_DailyFinalLoad SWITCH PARTITION 256 TO SalesFact PARTITION 256 WITH (TRUNCATE_TARGET = ON);
Sunucusuz SQL havuzunda, sorgunuz tarafından okunan dosya veya klasörleri (bölümler) sınırlayabilirsiniz. Yola göre bölümleme, filepath ve fileinfo işlevleri kullanılarak Depolama dosyalarını Sorgulama bölümünde açıklandığı şekilde desteklenir. Aşağıdaki örnek, 2017 yılına ilişkin verileri içeren bir klasörü okur:
SELECT
nyc.filepath(1) AS [year],
payment_type,
SUM(fare_amount) AS fare_total
FROM
OPENROWSET(
BULK 'https://sqlondemandstorage.blob.core.windows.net/parquet/taxi/year=*/month=*/*.parquet',
FORMAT='PARQUET'
) AS nyc
WHERE
nyc.filepath(1) = 2017
GROUP BY
nyc.filepath(1),
payment_type
ORDER BY
nyc.filepath(1),
payment_type
Columnstore dizinleri
Varsayılan olarak, ayrılmış SQL havuzu bir tabloyu kümelenmiş columnstore dizini olarak depolar. Bu veri depolama biçimi, büyük tablolarda yüksek veri sıkıştırma ve sorgu performansı sağlar. Kümelenmiş columnstore dizini genellikle en iyi seçenektir, ancak bazı durumlarda kümelenmiş dizin veya yığın uygun depolama yapısıdır.
Tip
Yığın tablosu özellikle son tabloya dönüştürülen hazırlama tablosu gibi geçici verileri yüklemek için yararlı olabilir.
Columnstore özelliklerinin listesi için bkz. Columnstore dizinlerindeki yenilikler. Columnstore dizin performansını geliştirmek için bkz. Columnstore dizinleri için satır grubu kalitesini en üst düzeye çıkarma.
İstatistik
Sorgu iyileştiricisi, sorgu yürütme planını oluştururken sütun düzeyinde istatistikleri kullanır. Sorgu performansını geliştirmek için, özellikle sorgu birleştirmelerinde kullanılan sütunlar olmak üzere tek tek sütunlara ilişkin istatistiklerin olması önemlidir. Synapse SQL, istatistiklerin otomatik olarak oluşturulmasını destekler.
İstatistiksel güncelleştirme otomatik olarak gerçekleşmez. Önemli sayıda satır eklendikten veya değiştirildikten sonra istatistikleri güncelleştirebilirsiniz. Örneğin, bir yüklemeden sonra istatistikleri güncelleştirin. Daha fazla bilgi için bkz. Synapse SQL İstatistikleri.
Birincil anahtar ve benzersiz anahtar
Ayrılmış SQL havuzu için, PRIMARY KEY yalnızca NONCLUSTERED ve NOT ENFORCED her ikisi de kullanıldığında desteklenir.
UNIQUE kısıtlaması yalnızca kullanıldığında desteklenir NOT ENFORCED . Daha fazla bilgi için Ayrılmış SQL havuzu kullanarak birincil anahtar, yabancı anahtar ve benzersiz anahtar bölümüne bakın.
Tablo oluşturmaya yönelik komutlar
Ayrılmış SQL havuzu için yeni bir boş tablo olarak bir tablo oluşturabilirsiniz. Ayrıca bir tablo oluşturabilir ve select deyiminin sonuçlarıyla doldurabilirsiniz. Aşağıda tablo oluşturmaya yönelik T-SQL komutları yer alır.
| T-SQL deyimi | Açıklama |
|---|---|
| TABLO OLUŞTUR | Tüm tablo sütunlarını ve seçeneklerini tanımlayarak boş bir tablo oluşturur. |
| DıŞ TABLO OLUŞTURMA | Bir dış tablo oluşturur. Tablonun tanımı ayrılmış SQL havuzunda depolanır. Tablo verileri Azure Blob depolama alanında veya Azure Data Lake Storage depolanır. |
| Yeni bir tabloyu select deyiminin sonuçlarıyla doldurur. Tablo sütunları ve veri türleri select deyimi sonuçlarını temel alır. Verileri içeri aktarmak için bu deyim bir dış tablodan seçim yapabilir. | |
| SEÇİM İLE HARİCİ TABLO OLUŞTUR | Select deyiminin sonuçlarını dış konuma aktararak yeni bir dış tablo oluşturur. Konum ya Azure Blob Storage ya da Azure Data Lake Storage'dır. |
Kaynak verileri veri ambarıyla hizalama
Ayrılmış SQL havuzu tabloları, başka bir veri kaynağından veri yüklenerek doldurulur. Başarılı bir yük elde etmek için kaynak verilerdeki sütunların sayısının ve veri türlerinin veri ambarı içindeki tablo tanımıyla uyumlu olması gerekir.
Note
Verileri hizalamak, tablolarınızı tasarlamanın en zor kısmı olabilir.
Veriler birden çok veri deposundan geliyorsa, verileri veri ambarı içine taşıyabilir ve bir tümleştirme tablosunda depolayabilirsiniz. Veriler tümleştirme tablosuna eklendikten sonra, dönüştürme işlemlerini uygulamak için ayrılmış SQL havuzunun gücünü kullanabilirsiniz. Veriler hazırlandıktan sonra üretim tablolarına ekleyebilirsiniz.
Desteklenmeyen tablo özellikleri
Ayrılmış SQL havuzu, diğer veritabanları tarafından sunulan tablo özelliklerinin çoğunu destekler ancak tümünü desteklemez. Aşağıdaki listede, ayrılmış SQL havuzunda desteklenmeyen bazı tablo özellikleri gösterilmektedir.
- Yabancı anahtar, tablo kısıtlamalarını kontrol et
- Hesaplanan sütunlar
- İndeksli görünümler
- Sequence
- Seyrek sütunlar
- Vekil anahtarlar, Identity ile uygulayın
- Synonyms
- Tetikleyiciler
- Benzersiz Dizinler
- Kullanıcı tanımlı türler
Tablo boyutu sorguları
Ayrılmış SQL havuzunda, 60 dağıtımın her birinde bir tablo tarafından kullanılan alanı ve satırları tanımlamanın basit bir yolu DBCC PDW_SHOWSPACEUSED kullanmaktır.
DBCC PDW_SHOWSPACEUSED('dbo.FactInternetSales');
DBCC komutlarını kullanmanın oldukça sınırlayıcı olabileceğini unutmayın. Dinamik yönetim görünümleri (DMV'ler), DBCC komutlarından daha fazla ayrıntı gösterir. Aşağıdaki görünümü oluşturarak başlayın.
CREATE VIEW dbo.vTableSizes
AS
WITH base
AS
(
SELECT
GETDATE() AS [execution_time]
, DB_NAME() AS [database_name]
, s.name AS [schema_name]
, t.name AS [table_name]
, QUOTENAME(s.name)+'.'+QUOTENAME(t.name) AS [two_part_name]
, nt.[name] AS [node_table_name]
, ROW_NUMBER() OVER(PARTITION BY nt.[name] ORDER BY (SELECT NULL)) AS [node_table_name_seq]
, tp.[distribution_policy_desc] AS [distribution_policy_name]
, c.[name] AS [distribution_column]
, nt.[distribution_id] AS [distribution_id]
, i.[type] AS [index_type]
, i.[type_desc] AS [index_type_desc]
, nt.[pdw_node_id] AS [pdw_node_id]
, pn.[type] AS [pdw_node_type]
, pn.[name] AS [pdw_node_name]
, di.name AS [dist_name]
, di.position AS [dist_position]
, nps.[partition_number] AS [partition_nmbr]
, nps.[reserved_page_count] AS [reserved_space_page_count]
, nps.[reserved_page_count] - nps.[used_page_count] AS [unused_space_page_count]
, nps.[in_row_data_page_count]
+ nps.[row_overflow_used_page_count]
+ nps.[lob_used_page_count] AS [data_space_page_count]
, nps.[reserved_page_count]
- (nps.[reserved_page_count] - nps.[used_page_count])
- ([in_row_data_page_count]
+ [row_overflow_used_page_count]+[lob_used_page_count]) AS [index_space_page_count]
, nps.[row_count] AS [row_count]
from
sys.schemas s
INNER JOIN sys.tables t
ON s.[schema_id] = t.[schema_id]
INNER JOIN sys.indexes i
ON t.[object_id] = i.[object_id]
AND i.[index_id] <= 1
INNER JOIN sys.pdw_table_distribution_properties tp
ON t.[object_id] = tp.[object_id]
INNER JOIN sys.pdw_table_mappings tm
ON t.[object_id] = tm.[object_id]
INNER JOIN sys.pdw_nodes_tables nt
ON tm.[physical_name] = nt.[name]
INNER JOIN sys.dm_pdw_nodes pn
ON nt.[pdw_node_id] = pn.[pdw_node_id]
INNER JOIN sys.pdw_distributions di
ON nt.[distribution_id] = di.[distribution_id]
INNER JOIN sys.dm_pdw_nodes_db_partition_stats nps
ON nt.[object_id] = nps.[object_id]
AND nt.[pdw_node_id] = nps.[pdw_node_id]
AND nt.[distribution_id] = nps.[distribution_id]
LEFT OUTER JOIN (select * from sys.pdw_column_distribution_properties where distribution_ordinal = 1) cdp
ON t.[object_id] = cdp.[object_id]
LEFT OUTER JOIN sys.columns c
ON cdp.[object_id] = c.[object_id]
AND cdp.[column_id] = c.[column_id]
WHERE pn.[type] = 'COMPUTE'
)
, size
AS
(
SELECT
[execution_time]
, [database_name]
, [schema_name]
, [table_name]
, [two_part_name]
, [node_table_name]
, [node_table_name_seq]
, [distribution_policy_name]
, [distribution_column]
, [distribution_id]
, [index_type]
, [index_type_desc]
, [pdw_node_id]
, [pdw_node_type]
, [pdw_node_name]
, [dist_name]
, [dist_position]
, [partition_nmbr]
, [reserved_space_page_count]
, [unused_space_page_count]
, [data_space_page_count]
, [index_space_page_count]
, [row_count]
, ([reserved_space_page_count] * 8.0) AS [reserved_space_KB]
, ([reserved_space_page_count] * 8.0)/1000 AS [reserved_space_MB]
, ([reserved_space_page_count] * 8.0)/1000000 AS [reserved_space_GB]
, ([reserved_space_page_count] * 8.0)/1000000000 AS [reserved_space_TB]
, ([unused_space_page_count] * 8.0) AS [unused_space_KB]
, ([unused_space_page_count] * 8.0)/1000 AS [unused_space_MB]
, ([unused_space_page_count] * 8.0)/1000000 AS [unused_space_GB]
, ([unused_space_page_count] * 8.0)/1000000000 AS [unused_space_TB]
, ([data_space_page_count] * 8.0) AS [data_space_KB]
, ([data_space_page_count] * 8.0)/1000 AS [data_space_MB]
, ([data_space_page_count] * 8.0)/1000000 AS [data_space_GB]
, ([data_space_page_count] * 8.0)/1000000000 AS [data_space_TB]
, ([index_space_page_count] * 8.0) AS [index_space_KB]
, ([index_space_page_count] * 8.0)/1000 AS [index_space_MB]
, ([index_space_page_count] * 8.0)/1000000 AS [index_space_GB]
, ([index_space_page_count] * 8.0)/1000000000 AS [index_space_TB]
FROM base
)
SELECT *
FROM size
;
Tablo alanı özeti
Bu sorgu, her tabloya ait satırları ve kapladıkları alanı döndürür. Tablo alanı özeti, hangi tabloların en büyük tablolarınız olduğunu görmenizi sağlar. Bunların hepsini bir kez deneme, çoğaltılmış veya karma dağıtılmış olup olmadığını da görebilirsiniz. Karma dağıtılmış tablolar için sorgu dağıtım sütununu gösterir.
SELECT
database_name
, schema_name
, table_name
, distribution_policy_name
, distribution_column
, index_type_desc
, COUNT(distinct partition_nmbr) as nbr_partitions
, SUM(row_count) as table_row_count
, SUM(reserved_space_GB) as table_reserved_space_GB
, SUM(data_space_GB) as table_data_space_GB
, SUM(index_space_GB) as table_index_space_GB
, SUM(unused_space_GB) as table_unused_space_GB
FROM
dbo.vTableSizes
GROUP BY
database_name
, schema_name
, table_name
, distribution_policy_name
, distribution_column
, index_type_desc
ORDER BY
table_reserved_space_GB desc
;
Dağıtım türüne göre tablo alanı
SELECT
distribution_policy_name
, SUM(row_count) as table_type_row_count
, SUM(reserved_space_GB) as table_type_reserved_space_GB
, SUM(data_space_GB) as table_type_data_space_GB
, SUM(index_space_GB) as table_type_index_space_GB
, SUM(unused_space_GB) as table_type_unused_space_GB
FROM dbo.vTableSizes
GROUP BY distribution_policy_name
;
Dizin türüne göre tablo alanı
SELECT
index_type_desc
, SUM(row_count) as table_type_row_count
, SUM(reserved_space_GB) as table_type_reserved_space_GB
, SUM(data_space_GB) as table_type_data_space_GB
, SUM(index_space_GB) as table_type_index_space_GB
, SUM(unused_space_GB) as table_type_unused_space_GB
FROM dbo.vTableSizes
GROUP BY index_type_desc
;
Dağıtım alanı özeti
SELECT
distribution_id
, SUM(row_count) as total_node_distribution_row_count
, SUM(reserved_space_MB) as total_node_distribution_reserved_space_MB
, SUM(data_space_MB) as total_node_distribution_data_space_MB
, SUM(index_space_MB) as total_node_distribution_index_space_MB
, SUM(unused_space_MB) as total_node_distribution_unused_space_MB
FROM dbo.vTableSizes
GROUP BY distribution_id
ORDER BY distribution_id
;
İlgili içerik
Veri ambarınız için bir tablo oluşturduktan sonra, sonraki adım tabloya veri yüklemektir.