Tidak semuanya.
Salah satu skenario yang paling umum untuk mempartisi adalah menggunakan bidang tanggal, yang sama sekali tidak terkait dengan PK Anda.
Misalnya, jika Anda memiliki tabel Orders
dengan bidang OrderDate
Anda kemungkinan besar partisi berdasarkan pada bulan dan tahun OrderDate
.
Ketika catatan usang dan tidak lagi relevan, Anda dapat memindahkan partisi tersebut ke tabel arsip atau database sehingga tidak lagi diproses.
Mempartisi akan bekerja dengan cukup banyak bidang apa pun, tetapi agar dapat berfungsi dengan baik, bidang yang Anda partisi harus digunakan di sebagian besar, jika tidak semua, dari kueri Anda. Jika Anda tidak memasukkan kunci partisi Anda maka pada dasarnya Anda akan mendapatkan pemindaian tabel mahal yang melintasi beberapa tabel (partisi).
EDIT
Untuk bagian 2, saya pikir jawabannya tidak juga. Kunci partisi digunakan untuk menentukan partisi mana yang akan ditempatkan, tetapi saya rasa indeks tidak dipertahankan. Mungkin ada statistik di bagian belakangnya.
Partition columns for a unique index must be a subset of the index key.