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

Bagaimana catatan dengan panjang tetap dan bidang dengan panjang tetap meningkatkan kinerja database?

Penjelasan sederhana, konseptual, non-database-spesifik:

Ketika panjang record maksimum yang mungkin diketahui sebelumnya, akhir record/awal record berikutnya dapat ditemukan dalam waktu yang konstan. Ini karena lokasi tersebut dapat dihitung menggunakan penambahan sederhana, sangat mirip dengan pengindeksan array. Bayangkan saya menggunakan int s sebagai pointer ke record, dan ukuran record adalah konstanta integer yang didefinisikan di suatu tempat. Kemudian, untuk berpindah dari lokasi rekaman saat ini ke yang berikutnya:

int current_record = /* whatever */;
int next_record = current_record + FIXED_RECORD_SIZE;

Itu dia!

Atau, saat menggunakan record dan field yang diakhiri string (atau dibatasi), Anda dapat membayangkan bahwa field/record berikutnya ditemukan dengan pemindaian waktu-linear, yang harus melihat setiap karakter hingga pembatas ditemukan. Seperti sebelumnya,

char DELIMITER = ','; // or whatever
int current_record = /* whatever */;
int next_record = current_record;
while(character_at_location(next_record) != DELIMITER) {
    next_record++;
}

Ini mungkin versi yang disederhanakan atau naif dari implementasi dunia nyata, tetapi gagasan umumnya masih berlaku:Anda tidak dapat dengan mudah melakukan operasi yang sama dalam waktu yang konstan, dan bahkan jika itu adalah waktu yang konstan, itu tidak mungkin secepat melakukan satu operasi penambahan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:argumen tidak valid dalam panggilan

  2. Bagaimana cara bergabung dengan objek ResultSet di java?

  3. SQL:Perlu menghapus baris duplikat dalam kueri

  4. Fungsi Analitik LEAD dan LAG

  5. Oracle - menerapkan fungsi to_number ke kolom varchar