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

numerik(38,0) sebagai kolom kunci utama; baik, buruk, siapa yang peduli?

Nah, Anda adalah menghabiskan lebih banyak data untuk menyimpan nomor yang tidak akan pernah Anda jangkau.

bigint naik menjadi 9.223.372.036.854.775.807 dalam 8 Byte

int naik menjadi 2.147.483.647 dalam 4 byte

NUMERIC(38,0) akan mengambil, jika saya menghitung dengan benar, 17 byte.

Bukan perbedaan besar, tetapi:tipe data yang lebih kecil =lebih banyak baris dalam memori (atau lebih sedikit halaman untuk # baris yang sama) =lebih sedikit I/O disk untuk melakukan pencarian (baik yang diindeks atau pencarian halaman data). Begitu juga untuk replikasi, halaman log, dll.

Untuk SQL Server:INT adalah standar IEEE dan lebih mudah untuk membandingkan CPU, sehingga Anda mendapatkan sedikit peningkatan kinerja dengan menggunakan INT vs NUMERIC (yang merupakan format desimal dikemas). (Catatan di Oracle, jika versi saat ini cocok dengan versi lama tempat saya dibesarkan, SEMUA tipe data dikemas sehingga INT di dalamnya hampir sama dengan NUMERIC( x,0 ) sehingga tidak ada perbedaan kinerja)

Jadi, dalam skema besar -- jika Anda memiliki banyak disk, RAM, dan I/O cadangan, gunakan tipe data apa pun yang Anda inginkan. Jika Anda ingin mendapatkan performa yang lebih baik, bersikaplah sedikit lebih konservatif.

Kalau tidak, pada titik ini, saya akan membiarkannya apa adanya. Tidak perlu mengubah banyak hal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL:memeriksa format email

  2. Bagaimana cara menanyakan nilai dari node xml?

  3. Ubah Jadwal Agen Server SQL (T-SQL)

  4. Grup Percakapan Broker Layanan Server Sql

  5. Ekspresi XML Path untuk menyertakan Karakter Khusus