PDW_SHOWMATERIALIZEDVIEWOVERHEAD DBCC (Transact-SQL)

Berlaku untuk:Azure Synapse Analytics

Menampilkan jumlah perubahan inkremental dalam tabel dasar yang ditahan untuk tampilan materialisasi di Azure Synapse Analytics. Rasio overhead dihitung sebagai TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS).

Konvensi sintaks Transact-SQL

Sintaks

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ( "[ schema_name . ] materialized_view_name" )
[;]

Catatan

Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Argumen

nama_skema

Nama skema tempat tampilan berada.

materialized_view_name

Nama tampilan yang dimaterialisasi.

Keterangan

Untuk menjaga tampilan materialisasi tetap direfresh dengan perubahan data dalam tabel dasar, mesin gudang data menambahkan baris pelacakan ke setiap tampilan yang terpengaruh untuk mencerminkan perubahan. Memilih dari tampilan materialisasi termasuk memindai indeks penyimpan kolom berkluster tampilan dan menerapkan perubahan bertahap.  Baris pelacakan (TOTAL_ROWS - BASE_VIEW_ROWS) tidak dihilangkan sampai pengguna membangun kembali tampilan materialisasi.

overhead_ratio dihitung sebagai TOTAL_ROWS / MAX(1, BASE_VIEW_ROWS). Jika tinggi, performa SELECT akan turun. Pengguna dapat membangun kembali tampilan materialisasi untuk mengurangi rasio overhead-nya.

Izin

Memerlukan izin TAMPILKAN STATUS DATABASE .

Contoh

A. Contoh ini mengembalikan rasio overhead dari tampilan materialisasi.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Contoh output:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. Contoh ini memperlihatkan bagaimana overhead tampilan terwujud meningkat saat perubahan data dalam tabel dasar

Buat tabel:

CREATE TABLE t1 (c1 INT NOT NULL, c2 INT NOT NULL, c3 INT NOT NULL);

Sisipkan lima baris ke dalam t1:

INSERT INTO t1 VALUES (1, 1, 1);
INSERT INTO t1 VALUES (2, 2, 2);
INSERT INTO t1 VALUES (3, 3, 3);
INSERT INTO t1 VALUES (4, 4, 4);
INSERT INTO t1 VALUES (5, 5, 5);

Buat tampilan materialisasi MV1:

CREATE MATERIALIZED VIEW MV1
WITH (DISTRIBUTION = HASH(c1))
AS
SELECT c1, COUNT(*) total_number
FROM dbo.t1 WHERE c1 < 3
GROUP BY c1;

Memilih dari tampilan materialisasi mengembalikan dua baris.

c1 total_number
1 1
2 1

Periksa overhead tampilan materialisasi sebelum ada perubahan data dalam tabel dasar.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Contoh output:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

Perbarui tabel dasar. Kueri ini memperbarui kolom yang sama di baris yang sama 100 kali ke nilai yang sama. Konten tampilan materialisasi tidak berubah.

DECLARE @p INT;
SELECT @p = 1;
WHILE (@p < 101)
BEGIN
    UPDATE t1 SET c1 = 1 WHERE c1 = 1;
    SELECT @p = @p + 1;
END;

Memilih dari tampilan materialisasi mengembalikan hasil yang sama seperti sebelumnya.

c1 total_number
1 1
2 1

Di bawah ini adalah output dari DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1"). 100 baris ditambahkan ke tampilan materialisasi (total_row - base_view_rows) dan overhead_ratio nya ditingkatkan.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

Setelah membangun kembali tampilan materialisasi, semua baris pelacakan untuk perubahan data inkremental dihilangkan dan rasio overhead tampilan berkurang.

ALTER MATERIALIZED VIEW dbo.MV1 REBUILD
GO
DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Output

| OBJECT_ID | BASE_VIEW_ROWS | TOTAL_ROWS | OVERHEAD_RATIO |
| --- | --- | --- | --- |
| 587149137 | 2 | 2 | 1.00000000000000000 |

Lihat juga