Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

customer.pk_name bergabung dengan transaction.fk_name vs. customer.pk_id [serial] bergabung dengan transaction.fk_id [integer]

Mereka benar. Bergabung di bidang teks CHAR(30) - terutama yang berisi data nama orang - akan lambat, sangat tidak efisien, dan sangat rapuh. Orang-orang memang mengubah nama mereka (pernikahan adalah contoh yang jelas), dan banyak orang dapat memiliki nama yang sama.

Anda ingin membuat indeks yang sesuai pada tabel Anda untuk mendukung urutan yang Anda inginkan untuk menampilkan data, dan melupakan pengelompokan. Prosedur pengoptimalan kinerja Anda terdengar seperti bencana mencari tempat untuk terjadi. Maaf, tetapi membuang/membuat tabel seperti itu menimbulkan masalah.

Saya akan mulai dengan INDEX UNIK di customer.id, INDEX UNIK di transaction.ticket_number, dan INDEX (untuk kinerja daripada kardinalitas, jadi menegakkan keunikan tidak terlalu penting) pada transaksi (id, ticket_number DESC), dan mengambilnya dari di sana. Data dikembalikan dari tabel transaksi sesuai urutan kemunculannya di indeks.

Saya hanya akan mempertimbangkan pengelompokan ketika semua cara pengoptimalan kueri lainnya telah habis.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TNS-12505:TNS:pendengar saat ini tidak mengetahui SID yang diberikan di deskriptor koneksi

  2. Bagaimana Cara Menggunakan Tabel Sementara Global dalam Prosedur Oracle?

  3. Bagaimana cara Query Nama Database di Oracle SQL Developer?

  4. File Respons Pembuatan Otomatis

  5. Cara mengganti nama kolom tabel di Oracle 10g