Isi kandungan:
Video: Cloud Computing - Computer Science for Business Leaders 2016 2024
cache pangkalan data Oracle 12c cache penampan biasanya merupakan bahagian terbesar SGA. Ia mempunyai data yang datang dari fail pada cakera. Oleh kerana mengakses data dari cakera adalah lebih lambat daripada dari ingatan, tujuan tunggal cache buffer pangkalan data adalah untuk cache data dalam memori untuk akses yang lebih cepat.
Cakera penimbas pangkalan data boleh mengandungi data dari semua jenis objek:
-
Jadual
-
Indeks
-
Paparan yang dipengaruhi
-
Data sistem
Dalam frasa cache penanda pangkalan data, istilah buffer merujuk kepada blok pangkalan data. Blok pangkalan data adalah jumlah penyimpanan minimum yang dibaca atau ditulis oleh Oracle. Semua segmen penyimpanan yang mengandungi data terdiri daripada blok. Apabila anda meminta data dari cakera, sekurang-kurangnya Oracle membaca satu blok.
Walaupun anda hanya meminta satu baris, banyak baris dalam jadual yang sama mungkin akan diambil. Perkara yang sama berlaku jika anda meminta satu lajur dalam satu baris. Oracle membaca keseluruhan blok, yang kemungkinan besar mempunyai banyak baris, dan semua lajur untuk baris itu.
Adalah mungkin untuk berfikir bahawa jika jadual jabatan anda hanya mempunyai sepuluh baris, semuanya boleh dibaca dalam ingatan walaupun anda meminta nama satu jabatan sahaja.
Cache buffer state di Oracle 12c
Cache buffer mengendalikan blok apa yang dapat ditangguhkan bergantung pada ruang yang ada dan keadaan blok (serupa dengan cara kolam yang dikehendaki memutuskan apa yang SQL akan tinggal). Cache buffer menggunakan versi sendiri algoritma LRU.
Blok dalam cache penimbal boleh di salah satu daripada tiga negeri:
-
Percuma: Tidak digunakan pada masa ini
-
Pinned: Currently accessed > Kotor:
-
Blok telah diubah suai tetapi belum ditulis ke cakera Blok percuma
Secara ideal, blok percuma boleh didapati apabila anda memerlukannya. Walau bagaimanapun, itu mungkin tidak berlaku melainkan pangkalan data anda begitu kecil sehingga keseluruhannya boleh dimuatkan dalam ingatan.
Algoritma LRU berfungsi sedikit berbeza dalam cache penimbal daripada yang dilakukan di kolam yang dikongsi. Ia skor setiap blok dan kemudian berapa kali ia telah dimulakan sejak ia diakses. Sebagai contoh, blok mendapat titik setiap kali ia disentuh.
Semakin tinggi mata, semakin kurang kemungkinan blok tersebut akan dipadamkan dari ingatan. Walau bagaimanapun, ia mesti diakses dengan kerap atau skor berkurangan. Blok harus bekerja keras untuk kekal dalam ingatan jika persaingan untuk sumber memori adalah tinggi.
Memberi setiap blok skor dan masa menghalang keadaan jenis ini timbul: Blok diakses dengan banyak pada akhir bulan untuk laporan.Skornya lebih tinggi daripada blok lain dalam sistem. Blok itu tidak boleh diakses lagi.
Ia duduk di sana membazir memori sehingga pangkalan data dimulakan semula atau blok lain akhirnya mencecah mata yang mencukupi untuk mengalahkannya. Komponen masa itu matang dengan cepat selepas anda tidak lagi mengaksesnya.
Blok disematkan
Blok yang sedang diakses adalah blok
disematkan. Bloknya dikunci (atau disematkan) ke dalam cache penimbal supaya tidak dapat berumur dari cache penimbal sementara proses Oracle (sering mewakili pengguna) mengaksesnya. Blok kotor
Blok yang diubah suai adalah
blok kotor. Untuk memastikan perubahan anda disimpan di seluruh penutupan pangkalan data, blok kotor ini mesti ditulis dari cache penimbal ke cakera. Pangkalan data nama blok kotor dalam senarai kotor atau menulis giliran. Anda mungkin berfikir bahawa setiap kali sesuatu blok dimodifikasi, ia harus ditulis ke cakera untuk meminimumkan data yang hilang. Ini tidak berlaku - walaupun ketika
melakukan (ketika Anda menyimpan perubahan Anda secara permanen)! Beberapa struktur membantu menghalang data yang hilang. Selain itu, Oracle mempunyai masalah perjudian. Prestasi sistem akan merangkak jika anda menulis blok ke cakera untuk setiap pengubahsuaian. Untuk memerangi ini, Oracle memainkan kemungkinan bahawa pangkalan data tidak mungkin gagal dan menulis blok ke disk hanya dalam kumpulan yang lebih besar.
Jangan bimbang; ia bukan risiko terhadap data yang hilang. Oracle mendapat prestasi daripada pangkalan data
sekarang dengan kemungkinan perbelanjaan pemulihan mengambil masa lebih lama kemudian. Kerana kegagalan pada sistem yang diuruskan dengan betul jarang berlaku, itu adalah cara yang murah untuk mendapatkan beberapa prestasi. Walau bagaimanapun, ia tidak seolah-olah Oracle meninggalkan blok kotor seluruhnya tanpa membersihkannya sendiri. Blok menulis mencetuskan dalam Oracle 12c
Apa yang mencetuskan blok menulis dan oleh itu blok kotor?
Pangkalan data dikeluarkan arahan shutdown.
-
Pemeriksaan penuh atau separa berlaku - iaitu ketika sistem secara berkala membuang semua buffer kotor ke cakera.
-
Ambang masa pemulihan, yang ditetapkan oleh anda, dipenuhi; jumlah blok kotor menyebabkan masa pemulihan yang tidak dapat diterima.
-
Blok bebas diperlukan dan tidak ada yang dijumpai selepas jumlah carian tertentu.
-
Arahan definisi data tertentu (DDL). (Perintah DDL adalah pernyataan SQL yang menentukan objek dalam pangkalan data.)
-
Setiap tiga saat.
-
Sebab lain. Algoritma ini kompleks, dan anda tidak boleh pasti dengan semua perubahan yang berlaku dengan setiap pembebasan perisian.
-
Faktanya ialah pangkalan data tetap sibuk menulis blok dalam persekitaran di mana terdapat banyak perubahan.