Blog

Partition Table SQL Server

Partition Table là gì?

Partition Table trong SQL Server là gì?

Partition Table là kỹ thuật phân chia bảng thành từng đoạn nhằm quản lý hiệu quả cơ sở dữ liệu với dung lượng lớn, cung cấp 1 phương pháp khác để chia dữ liệu những bảng lớn và trỏ tới những vùng nhỏ hơn. Bằng phương pháp đó, nó tạo ra một phiên bản quản trị cơ sở dữ liệu dễ dàng hơn khi back up ( sao lưu), loading (nạp dữ liệu), phục hồi (recovery) và truy vấn dữ liệu (query data)

Partition Table là gì?
Partition Table là kỹ thuật phân chia bảng thành từng đoạn

Bảng được phân đoạn dựa vào giá trị một trường của nó (trường được chọn gọi là partition key). Kỹ thuật này làm tăng khả năng mở rộng của SQL Server lên rất nhiều, và giúp cho việc quản trị các cơ sở dữ liệu lớn trở nên dễ dàng hơn. Với những bảng dữ liệu chứa vài trăm triệu bản ghi thường xuyên được cập nhật, các tác vụ như backup/restore, hoặc create/rebuild index đều rất tốn kém thời gian.

Những lợi ích của Partition Table trong SQL Server

1. Tiện lợi về quản trị

  • Backup/restore một đoạn mà không ảnh hưởng đến các đoạn còn lại
  • REBUILD lại index trên từng phân đoạn thay vì trên toàn bộ bảng.
  • Cho phép nhanh chóng loại bỏ dữ liệu nguyên một đoạn ra khỏi bảng thay vì phải dùng lệnh DELETE (SWITCH-OUT). Tương tự nó cũng cho phép nạp dữ liệu từ một bảng khác vào thành một đoạn mới (SWITCH-IN)

2. Cải tiến về hiệu năng

  • Lấy dữ liệu ở một đoạn nào đó chỉ cần truy nhập vào đoạn đó và bỏ qua các đoạn còn lại
  • Dữ liệu được lưu trữ ở các vùng vật lý khác nhau, giảm tranh chấp in/out giữa các câu lệnh. Ví dụ hai câu lệnh SELECT và UPDATE hoạt động trên cùng một bảng nhưng ở hai đoạn khác nhau có thể thực hiện hoàn toàn song song với nhau. Việc phân đoạn bảng dựa trên hai khái niệm mới sau đây :
  • Partition function: Qui định giá trị biên cho các đoạn. Hệ thống dựa vào hàm này để xác định đoạn mà mỗi bản ghi thuộc vào.
  • Partition scheme: Ánh xạ các đoạn khai báo trong partition function vào các filegroup (mỗi đoạn được lưu trữ tại một filegroup).

Partition Table Function

Đầu tiên bạn cần tạo partition function để định nghĩa giá trị biên của các đoạn. Partition function không giống với các hàm UDF thông thường (bạn không thể gọi trực tiếp), mà chỉ dùng vào mục đích phân đoạn. Nó định nghĩa logic mỗi đoạn chứa dải giá trị từ đâu đến đâu chứ không qui định các đoạn được lưu trữ như thế nào, cũng như tên trường dùng để phân đoạn là gì.

Ví dụ 1: Phân đoạn dựa vào dãy số

CREATE DATABASE PartDB
GO
USE PartDB
GO
CREATE PARTITION FUNCTION PartFunc_1(INT) AS RANGE LEFT FOR VALUES (1000, 2000, 3000)
Partition Table
Phân đoạn dựa vào dãy số

Ví dụ 2: phân đoạn theo năm

CREATE PARTITION FUNCTION PartFunc_2(DATETIME) 
AS RANGE RIGHT FOR VALUES ('2010-01-01', '2011-01-01')
Partition Table
phân đoạn theo năm

Partition Scheme

Sau khi định nghĩa dải giá trị cho các đoạn, việc tiếp theo là tạo partition scheme để định nghĩa không gian lưu trữ. Partition scheme ánh xạ từng đoạn đã được định nghĩa trong partition function vào các filegroup

CREATE PARTITION SCHEME MyPartScheme_1 
AS PARTITION MyPartFunc_1 TO (FG1, FG2, FG3, FG4)
Partition Table
Partition Scheme

Filegroup

Filegroup tương tự như folder trong windows, chỉ là một tên logic để nhóm các data file chứ không bản thân nó chứa dữ liệu. Filegroup chứa một hoặc nhiều data file và các data file này mới thực chứa dữ liệu. Khi mới tạo database, một filegroup có tên PRIMARY tự động được tạo và chứa data file chính (.mdf). Tuy nhiên bạn không nên dùng PRIMARY filegroup vào việc phân đoạn mà nên tạo filegroup mới.

-- tạo filegroup
ALTER DATABASE PartDB ADD FILEGROUP FG1
ALTER DATABASE PartDB ADD FILEGROUP FG2
ALTER DATABASE PartDB ADD FILEGROUP FG3
ALTER DATABASE PartDB ADD FILEGROUP FG4
  
-- thêm data file vào mỗi filegroup
  
ALTER DATABASE PartDB ADD FILE (NAME = N'F1', FILENAME = N'D:\DATA\PartDB_F1.ndf') TO FILEGROUP FG1
ALTER DATABASE PartDB ADD FILE (NAME = N'F2', FILENAME = N'D:\DATA\PartDB_F2.ndf') TO FILEGROUP FG2
ALTER DATABASE PartDB ADD FILE (NAME = N'F3', FILENAME = N'D:\DATA\PartDB_F3.ndf') TO FILEGROUP FG3
ALTER DATABASE PartDB ADD FILE (NAME = N'F4', FILENAME = N'D:\DATA\PartDB_F4.ndf') TO FILEGROUP FG4

Phân đoạn bảng 

Sau khi các bước trên hoàn tất, giờ bạn có thể tạo bảng và đồng thời phân đoạn nó:

CREATE TABLE dbo.TablePart( PartId INT IDENTITY PRIMARY KEY, PartData VARCHAR(100) ) ON PartScheme_1(PartId)

Việc phân đoạn được gói gọn ở mệnh đề “ON PartScheme_1(PartId)”, và bảng được phân đoạn thông qua partition scheme PartScheme_1 dựa vào trường PartId. Khi đó trường PartId được gọi là partition key.

Lưu ý:

  • Trong một Database bạn có thể tạo nhiều partition function. Mỗi partition function có thể được dùng cho nhiều partition scheme. Đến lượt mỗi partition scheme lại được dùng cho nhiều bảng.
  • Việc phân đoạn chỉ có thể được thực hiện trên một dải giá trị duy nhất. Có những trường hợp bạn muốn phân đoạn dựa vào 2 hoặc nhiều trường, ví dụ phân đoạn hóa đơn bán hàng theo năm và trong mỗi năm tiếp tục phân chia các đơn hàng có trị giá hơn 1 triệu vào một đoạn và nhỏ hơn 1 triệu vào một đoạn. Khi đó bạn cần tạo một computed field đại diện cho hai trường kia và phân đoạn dựa vào computed field này.

>> Đọc thêm:

KHÓA HỌC DATA WAREHOUSE : TỔNG HỢP, CHUẨN HÓA VÀ XÂY DỰNG KHO DỮ LIỆU TRONG DOANH NGHIỆP

KHÓA HỌC DATA MODEL – THIẾT KẾ MÔ HÌNH DỮ LIỆU TRONG DOANH NGHIỆP

LỘ TRÌNH TRỞ THÀNH DATA ENGINEER CHO NGƯỜI MỚI BẮT ĐẦU

DATA ENGINEER LÀ GÌ? CÔNG VIỆC CHÍNH CỦA DE? CÁC KỸ NĂNG CẦN THIẾT

    Xin vui lòng điền vào form dưới đây. Chúng tôi sẽ liên hệ lại ngay cho bạn khi nhận được thông tin:


    Leave a Reply

    Your email address will not be published. Required fields are marked *

    suarairama pestanada beritabandar rumahjurnal podiumnews dailyinfo wikiberita zonamusiktop musicpromote bengkelpintar liburanyuk jelajahhijau carimobilindonesia jalanjalan-indonesia otomotifmotorindo ngobrol olahraga mabar dapurkuliner radarbandung indosiar radarjawa medianews infowarkop kalbarnews ketapangnews beritabumi kabarsantai outfit faktagosip beritagram lagupopuler seputardigital updatecepat marihidupsehat baliutama hotviralnews cctvjalanan beritajalan beritapembangunan pontianaknews monitorberita koronovirus museros iklanjualbeli festajunina capoeiravadiacao georgegordonfirstnation 1reservoir revisednews petanimal footballinfo

    Pendekatan Dinamis Lucky Neko Menata Struktur Pola Permainan Stabilitas Dalam Baccarat Rahasia Indikator Scatter Mahjong Wins 3 Sebagai Penyesuaian Pola Dalam Menentukan Arah Keuntungan Baccarat Formulasi RTP PG Soft Mengarahkan Momentum Putaran Kartu Pada Keuntungan Pemain Baccarat Habanero Menerapkan Sistem Pola Efisien Yang Menopang Irama Kemenangan Baccarat Beruntun Kajian Habanero: Menyelaraskan Pola Aztec Gems Pada Fase Lonjakan Baccarat Mengulas Mekanisme Lucky Neko Sebagai Kunci Utama Kemenangan Baccarat Profesional Pelajari Adaptasi Mahjong Wins 3 Memaksimalkan Pola Scatter Agar Keputusan Baccarat Lebih Optimal Rotasi Pola Sweet Bonanza Memahami RTP Pragmatic Melalui Evolusi Desain Kartu Baccarat Teknik Mahjong Ways Mengatur Pola Megaways Bertingkat Agar Tempo Menang Baccarat Terjaga Analisis Aztec Gems: Memanfaatkan RTP Habanero Untuk Efek Stabilitas Keuntungan Baccarat Panduan Simulasi Mahjong Wins 3 Membaca Fenomena Scatter Yang Muncul Setiap Hasil Kartu Baccarat Terbuka Pengaturan Responsif: Sitem RTP Lucky Neko Lebih Ringan Menggunakan Teknologi Kasino Baccarat Digital Teknik Presisi Harbanero Mengatur Jeda Setiap Putaran Aztec Gems Supaya Pengeluaran Kartu Baccarat Terkendali Langkah Bijak: Peran Besar Mahjong Ways 2 Terhadap Perubahan Taktik Permainan Baccarat Online Pahami Teori Sicbo Megaways Mempertahankan Pola Kemenangan Sejak Awal Bermain di Meja Baccarat Mengatur Tempo Scatter Harbanero Melalui Hasil Kemenagan Maksimal Pada Putaran Baccarat Mengenal Kontribusi Aztec Gems: Tujuan Profit Optimal Hasil Kemenangan Blackjack dan Baccarat Review Jujur: Strategi Sweet Bonanza Menguasai Teknik Tersembunyi Dari Permainan Kartu Baccarat Formulasi Waktu: Pendekatan Mahjong Wins 3 Menyusun Rangkaian Gerak Pola Baccarat Inovasi Digital: Mempelajari RTP Lucky Neko Lewat Dasar Pemahaman Pola Visual Meja Baccarat Analisis Harbanero: Pelajari Menyusun Pola Aztec Gems Setiap Lonjakan Kemenangan Baccarat Sebelumnya Menyusun RTP PG Soft Mempengaruhi Putaran Optimal Menuju Arah Kemenangan Kartu Baccarat Pengamat: Cara Pahami Mahjong Wins 3 Mengarahkan Prospek Stabil Ke Wilayah Kasino Baccarat Sigma Boy: Aturan Teruji Mahjong Ways Mengatur Pola Megaways Harian Lewat Tempo Kemenangan Baccarat Strategi Baru Lucky Neko Membuka Ruang Konsistensi Scatter Berlapis Pada Keuntungan Kasino Baccarat Rahasia Lucky Neko Mengatur Sinkronisasi Pola Modern Setiap Putaran Baccarat yang Lebih Terkontrol Strategi Kompetitif Koi Gate Dalam Melakukan Rotasi Pola Sederhana Mega Sicbo Hingga Kasino Baccarat Cara Habanero Menyederhanakan Pola Megaways Berhasil Menjaga Ritme Kemenangan Baccarat Peran Scatter Mahjong Wins 3 Merubah Algoritma Pola Hijau Pada Keputusan Pemilihan Kartu Baccarat Pertajam Pola Aztec Gems Menguatkan Sistem Penyeimbang Variansi Pada Siklus Keuntungan Baccarat Peluang Optimasi Perputaran Kartu Baccarat Agar Pemain Menang di Meja Lounge Megah Pada Live Casino Suhubet Panduan Paling Akurat Dalam Mengoptimasikan Dadu Mega Sicbo Dengan Hadirkan Pola X Baccarat Fusion Bagi Pemain Setia Metode Paling Produktif Pada Mega Sicbo Dan MegaWheel Suhubet Dengan Hadirkan Pola Anti Turun Yang Selalu Digemari Pemain Suhubet Uji Coba Pola Suhubet Berhasil, Mega Sicbo Akhirnya Terpecahkan Jangan Sampai Kelewatan Bocoran Pola Pada RTP Live Suhubet Instagram Reels Suhubet Banyak Dibicaran Member Karena Memberikan Pola Genius Baccarat Yang Sangat Menguntungkan Pada Pemain Setia Mahjong Wins 3 Merancang Model Evaluasi Berbasis Simulasi Multi-Variabel Mahjong Ways 2 Menguji Pola Interaksi Pengguna melalui Pendekatan Behavioral Computing Aztec Gems Mengembangkan Visual Analytics untuk Interpretasi Data Sistem Game Mega Sicbo Mengkaji Pendekatan Probabilistik dalam Arsitektur Game Digital Habanero Mendorong Pendekatan Berbasis Insight dalam Pengembangan Teknologi Mahjong Wins 3 Mengkaji Efisiensi Sistem melalui Pendekatan Computational Thinking Mahjong Ways 2 Merancang Model Adaptif untuk Analisis Pola Penggunaan Aztec Gems Mengkaji Efektivitas Representasi Visual pada Lingkungan Virtual Habanero Merancang Strategi Transformasi Digital untuk Platform Interaktif Mahjong Ways 2 Mengimplementasikan Framework Iteratif untuk Penyempurnaan Sistem Mahjong Wins 3 Terapkan Kerangka Etika AI dalam Pengembangan Simulasi Digital Mega Sicbo Rancang Skema Adaptif untuk Membaca Dinamika Pasar Virtual Aztec Gems Manfaatkan Elemen Visual Scatter dalam Studi Ketahanan Ekonomi Digital Mahjong Ways 2 Hadirkan Metode Iteratif untuk Meningkatkan Efisiensi Sistem Interaktif Habanero Integrasikan Evaluasi Dinamis pada Manajemen Kinerja Platform Digital Mahjong Wins 3 Kembangkan Model Interaksi Digital Berbasis Lingkungan Simulasi Mahjong Ways 2 Terapkan Strategi Eksperimental dalam Analisis Perilaku Pengguna Aztec Gems Rancang Kerangka Visualisasi untuk Pemodelan Keputusan Berbasis Data Habanero Dorong Pendekatan Data-Driven dalam Optimalisasi Proses Sistem Mahjong Ways 2 Rancang Metodologi Agile dalam Pengembangan Sistem Interaktif Habanero Kembangkan Tips Prediktif untuk Analisis Pola Konsumsi Energi Rumah Tangga Mahjong Wins 3 Terapkan Tips Kontekstual dalam Sistem Evaluasi Pembelajaran Daring Mega Sicbo Rancang Scatter Adaptif untuk Pemodelan Arus Lalu Lintas Perkotaan Aztec Gems Manfaatkan Scatter sebagai Kerangka Analisis Ketahanan Struktur Bangunan Mahjong Ways 2 Hadirkan Tips Heuristik untuk Simulasi Strategi Manajemen Waktu Koi Gate Integrasikan Scatter pada Sistem Deteksi Kualitas Udara Dalam Ruangan Habanero Sajikan Tips Berbasis Data untuk Optimalisasi Rantai Pasok Digital Mahjong Wins 3 Kembangkan Tips Responsif dalam Studi Interaksi Manusia dan Mesin Mahjong Ways 2 Terapkan Tips Eksperimental pada Riset Perilaku Pengguna Aplikasi Mahjong Wins 3 Perkenalkan Tips Adaptasi dalam Simulasi Pengambilan Keputusan Kolektif Mahjong Ways 2 Kembangkan Tips Modular untuk Desain Kurikulum Digital Habanero Rancang Tips Dinamis untuk Evaluasi Kinerja Algoritma AI Mahjong Wins 3 Gunakan Tips Naratif dalam Pengembangan Media Pembelajaran Interaktif Aztec Gems Kembangkan Scatter untuk Analisis Dampak Urbanisasi Berkelanjutan Habanero Terapkan Tips Komputasional dalam Studi Optimasi Proses Industri Mahjong Wins 3 Kembangkan Model Interaksi Digital dalam Lingkungan Simulasi Baccarat Mahjong Ways 2 Terapkan Strategi Eksperimental pada Analisis Perilaku Pengguna Baccarat Aztec Gems Rancang Kerangka Visualisasi untuk Pemodelan Keputusan Baccarat Mega Sicbo Kembangkan Sistem Probabilistik untuk Evaluasi Stabilitas Pola Baccarat Habanero Dorong Metodologi Data-Driven dalam Optimasi Proses Baccarat repository.tdjpublisher.com