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

Oracle RAC dan urutannya

Apa sebenarnya yang Anda maksud dengan "diperintahkan" dalam konteks ini?

Secara default, setiap node dalam cluster memiliki cache nomor urut yang terpisah. Jadi simpul 1 mungkin membagikan nilai 1-100 sementara simpul 2 membagikan nilai 101-200. Nilai yang dikembalikan dari satu node berurutan, tetapi sesi A pada node 1 mungkin mendapatkan nilai 15 sedangkan sesi B pada node 2 mendapatkan nilai 107 sehingga nilai yang dikembalikan di seluruh sesi tampak tidak berurutan.

Jika Anda menentukan bahwa urutan harus dipesan, pada dasarnya Anda mengalahkan tujuan cache urutan karena Oracle sekarang harus berkomunikasi di antara node setiap kali Anda meminta nilai urutan baru. Itu memiliki potensi untuk menciptakan jumlah overhead kinerja yang layak. Jika Anda menggunakan urutan sebagai semacam stempel waktu, overhead tersebut mungkin diperlukan tetapi umumnya tidak diinginkan.

Perbedaan overhead dalam istilah praktis akan sangat bergantung pada aplikasi-- akan sangat kecil untuk beberapa aplikasi dan masalah yang signifikan bagi yang lain. Jumlah node RAC, kecepatan interkoneksi, dan seberapa banyak lalu lintas interkoneksi juga akan berkontribusi. Dan karena ini terutama merupakan masalah skalabilitas, efek praktisnya akan membatasi seberapa baik skala aplikasi Anda yang secara inheren non-linear. Menggandakan volume transaksi yang ditangani aplikasi Anda akan menghasilkan lebih dari dua kali lipat biaya overhead.

Jika Anda menentukan NOCACHE, pilihan ORDER atau NOORDER pada dasarnya tidak relevan. Jika Anda menentukan ORDER, pilihan CACHE atau NOCACHE pada dasarnya tidak relevan. Jadi CACHE NOORDER sejauh ini adalah yang paling efisien, tiga lainnya relatif dapat dipertukarkan. Mereka semua akan melibatkan koordinasi antar-node dan lalu lintas jaringan setiap kali Anda meminta nilai urutan yang, jelas, merupakan potensi hambatan.

Biasanya akan lebih baik untuk menambahkan kolom TIMESTAMP ke tabel untuk menyimpan stempel waktu yang sebenarnya daripada mengandalkan urutan untuk memberikan urutan stempel waktu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memulai Blogging Untuk HTML5 dan CSS3

  2. Dapatkan ID catatan yang terakhir dimasukkan di Oracle db

  3. Apakah ada Oracle yang setara dengan OUTPUT INSERTED.* SQL Server?

  4. Membership.ValidateUser selalu mengembalikan false setelah memutakhirkan ke VS 2010 / .NET 4.0

  5. Cara Membuat Laporan PDF Menggunakan PL/SQL