Menjalankan SQL dari memori lebih cepat dari SSD?

12

Baru-baru ini kami mengalami masalah dengan penguncian basis data oracle kami pada 1 kueri yang kami ketahui sejauh ini.

Saya akan memberikan uraian tentang apa yang terjadi namun sebenarnya tidak terlalu banyak berhubungan dengan pertanyaan saya tetapi saya terbuka untuk saran.

Sebentar tidak tahu kapan itu akan terjadi, telah terjadi 4 kali selama sebulan terakhir, seorang pengguna, akan mengklik sesuatu di dalam aplikasi. Apa yang diklik pengguna masih belum diketahui. Ketika apa pun yang diklik itu akan menjalankan kueri pada database yang akan menghasilkan sekitar 700k Baris.

Saya telah memeriksa tabel bahwa query sedang dijalankan dan indeksnya terlihat bagus.

Basis datanya 60GB ada 32GB di server.

Dari log pada server database saya melihat I / O tinggi tetapi CPU dan RAM tetap sama.

Salah satu server aplikasi, CPU naik hingga sekitar 75%. Saya dapat menemukan proses pekerja, menemukan PID, namun ketika saya membunuh PID yang terkait dengan proses pekerja, CPU akan turun sebentar dan kemudian naik kembali.

Juga mendaur ulang kumpulan aplikasi, dan memulai ulang IIS melakukan hal yang sama, CPU akan turun sebentar dan kemudian kembali lagi.

Satu-satunya hal yang dapat dilakukan untuk mendapatkan server kembali sejalan adalah restart.

Jadi saran saya JIKA pertanyaan ini adalah apa yang menyebabkan penguncian dapat meningkatkan memori pada kotak untuk memungkinkan database untuk di-cache dan kehabisan memori. Saya mendengar ini sekali tetapi saya tidak yakin apakah itu benar.

Penyimpanan adalah HP PAR 3 dengan 3 tingkatan dan basis data cukup banyak berada di tingkatan SSD.

SSD atau Memori yang lebih cepat

Anthony Fornito
sumber

Jawaban:

6

SSD atau Memori yang lebih cepat

DRAM lebih cepat dari NAND flash. Akses RAM ada pada urutan 100 ns, sementara SSD acak membaca sekitar 16.000 ns. Nomor Latensi yang Harus Diketahui Setiap Programmer

Anda perlu melakukan analisis sistematis tentang apa yang terjadi dan mengapa. Jangan mengubah hal-hal hanya karena Anda mendengar sesuatu tentang sistem lain. Temukan masalahnya di sistem ini.

Untungnya sistem DBMS cenderung memiliki alat kinerja. Oracle dan RDBMS lainnya harus EXPLAIN PLANmenunjukkan pemindaian penuh dan inefisiensi lainnya. Kueri dapat berkinerja sangat buruk bahkan dengan indeks. Ada juga laporan kinerja sistem seperti Oracle AWR untuk menemukan kemacetan. Jika Anda ingin menanyakan lebih lanjut tentang kinerja DB, Anda juga dapat bertanya situs saudara kami, /dba//

John Mahowald
sumber