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

Partisi berdasarkan Tahun vs. tabel terpisah bernama Data_2011, Data_2010, dll

Dari perspektif internal, metodenya pada dasarnya sama.

Di balik layar, saat Anda membuat partisi berbasis tanggal, mesin SQL membuat tabel fisik terpisah untuk setiap partisi, lalu melakukan apa yang pada dasarnya adalah UNION saat Anda menanyakan tabel itu sendiri.

Jika Anda menggunakan filter dalam kueri Anda pada tabel yang dipartisi yang sesuai dengan bidang partisi Anda (DateField misalkan saja), maka mesin bisa langsung masuk ke partisi yang Anda butuhkan untuk datanya. Jika tidak, maka ia akan mencari setiap tabel fisik dalam tabel logis yang diperlukan untuk menyelesaikan kueri.

Jika kueri Anda akan melibatkan filter tanggal (kedengarannya seperti itu dari pertanyaan Anda), maka saya tidak dapat memikirkan keuntungan dari metode "khusus" Anda.

Pada dasarnya, pilihan yang perlu Anda buat adalah apakah Anda ingin bertanggung jawab atas semua logika dan kasus sudut yang terlibat dalam partisi, atau mempercayai pengembang di Microsoft yang telah melakukan ini selama beberapa dekade untuk melakukannya untuk Anda?

Untuk tujuan saya sendiri, jika ada kerangka kerja bawaan untuk sesuatu yang ingin saya lakukan maka saya selalu mencoba menggunakannya. Solusi ini selalu lebih cepat, lebih stabil, dan tidak terlalu rawan kesalahan dibandingkan solusi "roll-your-own".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat string biner nol, dengan panjang variabel

  2. Di mana saya dapat menemukan Properti Prakompilasi SSIS untuk Tugas Skrip di SQL Server 2008?

  3. Cara membuat pemicu yang akan menyimpan data yang dihapus (beberapa catatan) ke Tabel Produksi

  4. LEFT() vs SET TEXTSIZE di SQL Server:Apa Bedanya?

  5. Panggilan Prosedur Jarak Jauh gagal dengan sql server 2008 R2