Hasil (
Bahasa Indonesia) 1:
[Salinan]Disalin!
baris secara fisik disimpan pada disk. Karena ini, kita dapat memiliki hanya satu indeks berkerumun disetiap meja.Dimensi tabel berisi kolom atribut, biasanya memiliki tipe data karakter.Atribut kolom yang sering digunakan di mana klausa kueri perlu ditetapkan sebagaiIndeks nonclustered- tetapi hanya jika selektivitas tinggi. Jika atribut kolom memiliki banyaknilai-nilai duplikat, itu mungkin tidak patut pengindeksan.Untuk fakta tabel SQL Server data pergudangan, kita memiliki dua pendekatan dari segimenentukan primary key dan indeks berkerumun. Catatan bahwa ini adalah khusus untuk SQLServer; tidak berlaku untuk mesin database lain seperti Oracle atau Teradata.• Pendekatan pertama adalah untuk menciptakan sebuah kenyataan pengganti kunci kolom table. Ini adalah identitas (1,1)kolom yang berfungsi sebagai pengenal unik tunggal-kolom dari baris table fakta. Kami menetapkankolom ini sebagai primary key dan indeks berkerumun tabel fakta.• Pendekatan yang kedua adalah untuk tidak memiliki fakta pengganti kunci kolom table. Sebaliknya, kitaPilih kombinasi minimal kolom yang membuat deretan unik sebagai primerkunci. Dalam beberapa kasus, kombinasi semua dimensi pengganti kunci kolom membuatbaris unik. Dalam kasus lain, mereka tidak, dan kita harus mengidentifikasi kolom lain yangmembuat deretan unik, seperti kolom dimensi merosot.Jika Anda ingin menerapkan pendekatan pertama, membuat kolom baru untuk setiap satu kenyataantabel. Panggilan fact_key kolom ini. Ini adalah identitas (1,1) kolom. Tipe data adalah bigint. TidakWorth mengambil risiko menggunakan int data jenis untuk menyimpan byte 4, kecuali Anda tertentu Anda yangtidak akan memukul 9 miliar. Ingat bahwa max(key) dapat lebih tinggi daripada jumlahbaris, seperti yang saya jelaskan sebelumnya. Tipe data bigint adalah 9 triliun (18 nol), sehingga seharusnyacukup. Buat primary key berkerumun di kolom ini. Keuntungan dari pendekatan ini adalahbahwa pemuatan dapat dua kali lebih cepat (karena kunci indeks berkerumun adalah identitas kolom,Jadi ada tidak perlu untuk menata kembali baris tabel fakta ketika loading data baru), dan nonclusteredIndeks dapat empat sampai lima kali lebih kecil dari kedua pendekatan (karenakunci indeks berkerumun adalah 8 byte).Jika Anda ingin menerapkan pendekatan yang kedua, mencari tahu apa yang membuat baris tabel faktaunik. Sebagai contoh, di meja fakta berlangganan penjualan kami, biji-bijian adalah satu baris untuk setiap pelangganberlangganan setiap hari. Jadi, date_key dan customer_key harus menjadi bagian dari primary key.Bagaimana jika pelanggan berlangganan dua paket? Kita perlu memasukkan subscription_iddi primary key untuk membuatnya unik, sehingga kunci utama adalah date_key, customer_key, dansubscription_id.Kami cluster tabel dalam kolom kunci utama ini, sehingga tabel akan secara fisikakan diselenggarakan/diurutkan menurut tanggal, pelanggan, dan kemudian berlangganan ID.Ini akan membuat permintaan cepat jika mana klausa berisi tanggal dan pelanggan, karenaTabel secara fisik diurutkan berdasarkan tanggal, dan kemudian nasabah. Ini bisa menjadi 10 kali lebih cepatdaripada jika tanggal dan pelanggan tidak diindeks. Itulah keuntungan dari kedua pendekatan.Kecepatan loading pendekatan kedua bisa menjadi dua kali sebagai lambat pendekatan pertama (seperti dibahassebelumnya), tapi kami memiliki indeks lebih sedikit untuk mempertahankan. Secara keseluruhan, pada SQL Serverplatform, pola pendekatan kunci pengganti tabel fakta lebih disukai karena ada tidak perlu untuk menata kembaliindeks berkerumun ketika loading, yang menghasilkan lebih baik kinerja loading, sementaraperforma query dapat didukung oleh indeks nonclustered. Alasan kedua adalah fungsi:kita dapat mengidentifikasi secara unik baris tabel fakta menggunakan satu kolom, yang berguna ketikakita perlu untuk merujuk ke baris tabel fakta baik dari meja fakta lain (pengeboran di seluruh) atau dariTabel fakta sama sendiri (Self bergabung).
Sedang diterjemahkan, harap tunggu..