Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

3 Cara Mengembalikan Jumlah Baris di Setiap Partisi di SQL Server (T-SQL)

Jika sebelumnya Anda telah membuat tabel yang dipartisi di SQL Server, dan sekarang Anda ingin mengetahui berapa banyak baris yang disimpan di setiap partisi, berikut adalah tiga kueri yang dapat Anda gunakan.

Secara khusus, Anda dapat:

  • Kueri sys.dm_db_partition_stats lihat
  • Kueri sys.partitions lihat
  • Gunakan $PARTITION fungsi dalam kueri

Di bawah ini adalah contoh ketiganya.

sys.dm_db_partition_stats

sys.dm_db_partition_stats tampilan manajemen dinamis sistem mengembalikan informasi jumlah halaman dan baris untuk setiap partisi dalam database saat ini.

Berikut ini contoh mengembalikan jumlah baris dari tabel yang dipartisi yang disebut Movies .

SELECT
    partition_number,
    row_count
FROM sys.dm_db_partition_stats
WHERE object_id = OBJECT_ID('Movies');

Hasil:

+--------------------+-------------+
| partition_number   | row_count   |
|--------------------+-------------|
| 1                  | 0           |
| 2                  | 100         |
| 3                  | 3979        |
| 4                  | 0           |
+--------------------+-------------+

Dalam hal ini, partisi pertama dan terakhir kosong (seperti yang direkomendasikan oleh Microsoft).

sys.partitions

sys.partitions tampilan katalog sistem berisi baris untuk setiap partisi dari semua tabel dan sebagian besar jenis indeks dalam database.

Inilah cara kita dapat menggunakannya untuk mengembalikan data yang sama seperti pada contoh sebelumnya.

SELECT
    partition_number,
    rows
FROM sys.partitions
WHERE object_id = OBJECT_ID('Movies');

Hasil:

+--------------------+--------+
| partition_number   | rows   |
|--------------------+--------|
| 1                  | 0      |
| 2                  | 100    |
| 3                  | 3979   |
| 4                  | 0      |
+--------------------+--------+

Anda mungkin memperhatikan bahwa ini hampir identik dengan kueri sebelumnya. Satu-satunya perbedaan adalah yang ini menggunakan kolom yang disebut rows , sedangkan yang sebelumnya menggunakan kolom bernama row_count .

$PARTITIONS

$PARTITIONS fungsi sistem mengembalikan nomor partisi di mana satu set nilai kolom partisi akan dipetakan untuk setiap fungsi partisi yang ditentukan.

Oleh karena itu, kami dapat menggunakan info ini untuk membuat kueri yang mengembalikan data jumlah baris.

SELECT 
    $PARTITION.MoviesPartitionFunction(MovieId) AS [Partition Number],   
    COUNT(*) AS [Number of Rows] 
FROM Movies   
GROUP BY $PARTITION.MoviesPartitionFunction(MovieId)
ORDER BY [Partition Number] ASC

Hasil:

+--------------------+------------------+
| Partition Number   | Number of Rows   |
|--------------------+------------------|
| 2                  | 100              |
| 3                  | 3979             |
+--------------------+------------------+

Satu-satunya perbedaan dengan hasil dari contoh ini, adalah bahwa ia hanya mengembalikan jumlah baris yang tidak kosong.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batasi Baris yang Dikembalikan dalam SQL Server Query dengan menggunakan TOP Clause

  2. Apakah ada perbedaan antara DECIMAL dan NUMERIC di SQL Server?

  3. Menyimpan data XML di SQL Server

  4. Kapan Menggunakan Indeks Clustered atau Non-Clustered di SQL Server

  5. Bagaimana cara memasukkan karakter Arab ke dalam database SQL?