Partisi di SQL Server

Database


Artikel ini menunjukkan partisi di SQL Server dan cara kerjanya.

pengantar

Basis data terus bertambah dan kemudian mulai menurun karena masalah kinerja. Pengguna mengeluh tentang kinerja, dan kemudian beberapa DBA mengutip dua kata kunci untuk memecahkan masalah kinerja: partisi dan indeks.

Indeks berada di luar cakupan artikel ini dan pahlawan zaman kita adalah Partisi. Apa itu partisi? Pada artikel ini, kita akan berbicara tentang beberapa tempat untuk menggunakan partisi di SQL Server dan memberikan definisi dan konsep.

Partisi dapat diterapkan ke tabel, tampilan, daftar, dan partisi SSAS untuk database multidimensi. Jika Anda ingin melihat katalog, kami juga memiliki artikel yang bagus untuk Anda:

Apa itu partisi di SQL Server?

Ketika kita memiliki tabel yang besar, terkadang butuh waktu lama untuk mendapatkan data dalam query. Salah satu kunci untuk mendapatkan data kueri lebih cepat adalah partisi tabel. Membagi dan memerintah atau membagi dan menaklukkan. Frasa ini dikaitkan dengan Philip II dari Makedonia (ayah Alexander Agung) menjelaskan cara kerja pembagian. Bayangkan Anda memiliki buku yang sangat panjang dan butuh waktu lama untuk menemukan halamannya. Bahkan dengan profil, daftar ini memiliki 100 halaman. Jadi, untuk memecahkan masalah, Anda membagi buku menjadi buku-buku kecil dan kemudian menemukan informasi lebih mudah.

Inilah yang kami lakukan di SQL Server (dan database lainnya). Kami memecah tabel menjadi tabel yang lebih kecil, sehingga lebih mudah untuk mendapatkan informasi.

Apa itu partisi dalam tabel?

Mari kita bicara tentang tabel yang dipartisi, kita memiliki partisi vertikal dan horizontal.

Partisi vertikal biasanya digunakan ketika Anda memiliki kolom BLOB (objek biner besar dengan gambar, suara, atau jenis file lainnya). Dalam skenario ini, Anda ingin memiliki semua kolom dalam satu tabel dan kolom Gumpalan di tabel lain. Ini karena BLOB membutuhkan banyak resource dibandingkan varchars atau kolom numerik, sehingga harus dipisahkan.

Di sisi lain, kami memiliki partisi horizontal yang lebih kompleks:

Partisi horizontal membagi data ke dalam tabel dengan nama kolom dan tipe data serupa. Skenario partisi yang umum adalah bulan. Setiap partisi menyimpan tabel data selama satu bulan dalam setahun. Untuk membuat partisi horizontal, Anda perlu membuat file data untuk setiap partisi, lalu menambahkan file ke database, membuat fungsi untuk memetakan baris tabel yang dipartisi ke partisi berdasarkan nilai. Kita juga perlu membuat layout partisi dan memetakan partisi tersebut.

Jika Anda ingin memiliki penjelasan rinci tentang cara membuat partisi tabel horizontal dan vertikal, kami memiliki artikel yang kami butuhkan di sini:

Jika Anda ingin membaca lebih lanjut tentang partisi tabel, berikut adalah artikel tentang cara mengotomatiskan partisi tabel:

Apa partisi yang diterapkan ke SQL Server Views?

SQL Server juga memiliki fitur Partitioned View. Anda dapat membuat tabel yang lebih kecil, dan tampilan akan berisi UNION ALL dari setiap tabel, sehingga tampilan akan terlihat seperti tabel besar yang digabungkan dengan beberapa tabel. Kode berikut adalah contoh dari apa yang saya maksud:

Untuk menjelaskan langkah demi langkah lebih lanjut tentang tampilan yang dipartisi, kami memiliki artikel khusus yang dapat membantu Anda dalam hal ini:

Apa partisi yang diterapkan pada kueri T-SQL?

Ada partisi SQL string di SQL Server yang tidak berhubungan dengan tampilan tabel yang dipartisi atau dipartisi. Paragraf ini digunakan untuk agregasi dan merupakan versi perbaikan dari grup demi paragraf.

Misalnya, jika saya ingin melihat SUM dan melihat jumlah OrderQty di setiap ProductID dan juga melihat SalesOrderID seperti ini, kita akan mendapatkan kesalahan:

Pesan kesalahan terlihat seperti ini:

Pesan 8120, Level 16, Status 1, Baris 1 Kolom “Sales.SalesOrderDetail.SalesOrderID” di daftar pilihan tidak valid karena tidak ada di salah satu fungsi penjumlahan atau di klausa GROUP BY.

Saat menggunakan GROUP BY, kita harus memilih semua kolom yang tidak ditumpuk. Di sisi lain, frasa OVER (PARTITION BY) lebih fleksibel dan Anda dapat mendasarkan kolom lain tanpa perlu mengelompokkan.

Seperti yang Anda lihat, OVER PARTITION BY sangat kuat dan memungkinkan kueri agregasi fleksibel dan memecahkan beberapa masalah klausa GROUP BY.


Penambahan pada partisi

Untuk artikel yang lebih rinci tentang pernyataan SQL ini, kami memiliki artikel yang sangat menarik di sini:

Apa itu partisi dalam model SSAS multidimensi?

Tipe lain dari partisi di SQL Server adalah partisi yang dibuat dalam model SQL Server Analysis Services. SQL Server menyediakan model multidimensi untuk intelijen bisnis. Definisi sederhana dari model multidimensi SSAS adalah database khusus dan cepat untuk laporan. Basis data OLTP tidak terlalu efisien untuk laporan, dan kemudian model multidimensi adalah konsep yang berbeda dari basis data yang dirancang untuk laporan.

Di SSAS, kami memiliki nilai yang merupakan nilai yang ingin kami ukur. Misalnya, kami memiliki database penjualan SSAS multidimensi dan kami ingin mengukur total penjualan dan pendapatan total. Mereka adalah tindakan di SSAS. Jika kami memiliki banyak data, kami membagi total penjualan menjadi partisi per bulan, per minggu, atau metrik lainnya untuk membagi data ke dalam partisi.

Partisi dibuat dalam kubus dalam proyek SSAS Analysis Services. Anda harus pergi ke opsi Partisi.


Apa itu Partisi SSAS

Dalam kueri, dalam pernyataan Where, kami biasanya menentukan rentang tanggal partisi. Partisi biasanya dipisahkan berdasarkan tanggal:

Partisi Ssas menggunakan frasa Where

Untuk mengajari Anda langkah demi langkah, kami telah membuat artikel bagus ini untuk Anda:

Hasil

Pada artikel ini, kami menunjukkan berbagai pertanyaan yang terkait dengan partisi di SQL Server. Ada partisi tabular di mesin database, tampilan yang dipartisi, istilah T-SQL over-partisi, dan kami juga berbicara tentang partisi SSAS. Jika tidak satu pun dari komentar ini menjawab pertanyaan Anda, silakan tulis pertanyaan Anda tentang partisi di komentar.

Daniel Kalimbonte
Postingan terbaru Daniel Calbimonte (Lihat semua)



Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *