View a markdown version of this page

Muatan basis data - Amazon Relational Database Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Muatan basis data

Beban database (beban DB) mengukur tingkat aktivitas sesi dalam database Anda. DBLoadadalah metrik utama dalam Database Insights, dan Database Insights mengumpulkan beban DB setiap detik.

Sesi aktif

Sesi basis data mewakili dialog aplikasi dengan basis data relasional. Sesi aktif adalah koneksi yang mengirimkan tugas ke mesin DB dan sedang menunggu tanggapan.

Sesi dianggap aktif jika berjalan di CPU atau menunggu sumber daya tersedia sehingga dapat dilanjutkan. Misalnya, sesi aktif mungkin menunggu halaman (atau blok) dibaca ke dalam memori, dan kemudian menggunakan CPU saat membaca data dari halaman.

Sesi aktif rata-rata

S esi aktif rata-rata (AAS) adalah unit untuk DBLoad metrik di Database Insights. Ini mengukur berapa banyak sesi yang aktif secara bersamaan di basis data.

Setiap detik, Database Insights mengambil sampel jumlah sesi yang secara bersamaan menjalankan kueri. Untuk setiap sesi aktif, Database Insights mengumpulkan data berikut:

  • Pernyataan SQL

  • Status sesi (berjalan pada CPU atau menunggu)

  • Host

  • Pengguna yang menjalankan SQL

Database Insights menghitung AAS dengan membagi jumlah total sesi dengan jumlah sampel untuk periode waktu tertentu. Misalnya, tabel berikut menunjukkan 5 sampel berturut-turut dari kueri yang berjalan yang diambil dengan interval 1 detik.

Sampel Jumlah sesi yang menjalankan kueri AAS Penghitungan
1 2 2 Total 2 sesi/1 sampel
2 0 1 Total 2 sesi/2 sampel
3 4 2 Total 6 sesi/3 sampel
4 0 1.5 Total 6 sesi/4 sampel
5 4 2 Total 10 sesi/5 sampel

Pada contoh sebelumnya, muatan DB untuk interval waktu tersebut adalah 2 AAS. Pengukuran ini berarti bahwa rata-rata ada 2 sesi aktif pada waktu tertentu selama interval tersebut ketika 5 sampel diambil.

Eksekusi aktif rata-rata

Eksekusi aktif rata-rata (AAE) per detik berkaitan dengan AAS. Untuk menghitung AAE, Database Insights membagi total waktu eksekusi kueri dengan interval waktu. Tabel berikut menunjukkan penghitungan AAE untuk kueri yang sama dalam tabel sebelumnya.

Waktu yang telah berlalu (dtk) Total waktu eksekusi (detik) AAE Penghitungan
60 120 2 120 detik eksek seconds/60 usi berlalu
120 120 1 120 detik eksek seconds/120 usi berlalu
180 380 2.11 380 detik eksek seconds/180 usi berlalu
240 380 1.58 380 detik eksek seconds/240 usi berlalu
300 600 2 600 detik eksek seconds/300 usi berlalu

Dalam kebanyakan kasus, AAS dan AAE untuk sebuah kueri kira-kira sama. Namun, karena input ke penghitungan berupa sumber data yang berbeda, penghitungannya sering sedikit berbeda.

Dimensi

Metrik db.load berbeda dengan metrik deret waktu lainnya karena Anda dapat membaginya menjadi beberapa sub-komponen yang disebut dimensi. Anda dapat menganggap dimensi sebagai kategori “potong menurut” untuk berbagai karakteristik metrik DBLoad.

Saat Anda mendiagnosis masalah performa, dimensi berikut sering kali paling berguna:

Untuk daftar lengkap dimensi untuk Aurora, lihat Database Insights.

Peristiwa tunggu

Peristiwa tunggu menyebabkan pernyataan SQL menunggu peristiwa tertentu terjadi sebelum dapat terus berjalan. Peristiwa tunggu adalah dimensi penting, atau kategori, untuk muatan DB karena menunjukkan di mana pekerjaan terhambat.

Setiap sesi aktif berjalan di CPU atau menunggu. Misalnya, sesi menggunakan CPU ketika mencari memori untuk buffer, melakukan penghitungan, atau menjalankan kode prosedural. Ketika tidak menggunakan CPU, sesi mungkin menunggu buffer memori menjadi kosong, file data dibaca, atau log untuk ditulis. Semakin banyak waktu untuk sesi menunggu sumber daya, semakin sedikit waktu untuk sesi dijalankan di CPU.

Ketika Anda menyetel basis data, Anda sering mencoba mencari tahu sumber daya yang sedang menunggu sesi. Misalnya, dua atau tiga peristiwa tunggu mungkin menyumbang 90 persen dari muatan DB. Ukuran ini berarti bahwa, rata-rata, sesi aktif menghabiskan sebagian besar waktunya menunggu sejumlah kecil sumber daya. Jika Anda dapat mengetahui penyebab peristiwa tunggu ini, Anda dapat mencoba solusinya.

Peristiwa tunggu bervariasi berdasarkan mesin DB:

catatan

Untuk Oracle, proses latar belakang terkadang berfungsi tanpa pernyataan SQL terkait. Dalam kasus ini, Database Insights melaporkan jenis proses latar belakang yang digabungkan dengan titik dua dan kelas tunggu yang terkait dengan proses latar belakang tersebut. Jenis proses latar belakang meliputi LGWR, ARC0, PMON, dan sebagainya.

Misalnya, saat pengarsip sedang melakukan I/O, laporan Database Insights untuk itu mirip ARC1:System I/O dengan. Kadang-kadang, jenis proses latar belakang juga hilang, dan Database Insights hanya melaporkan kelas tunggu, misalnya:System I/O.

SQL Teratas

Saat peristiwa tunggu menunjukkan kemacetan, SQL teratas menunjukkan kueri mana yang paling berkontribusi pada pemuatan DB. Misalnya, saat ini mungkin ada banyak kueri yang berjalan di basis data, tetapi kueri tunggal mungkin menggunakan 99 persen dari muatan DB. Dalam hal ini, muatan tinggi mungkin menunjukkan masalah dalam kueri.

Secara default, konsol Database Insights menampilkan kueri SQL teratas yang berkontribusi pada pemuatan database. Konsol juga menunjukkan statistik yang relevan untuk setiap pernyataan. Untuk mendiagnosis masalah performa untuk pernyataan tertentu, Anda dapat memeriksa rencana pelaksanaannya.

Rencana

Rencana eksekusi, juga cukup disebut rencana, adalah urutan langkah-langkah yang mengakses data. Misalnya, rencana untuk menggabungkan tabel t1 dan t2 mungkin mengulang semua baris di t1 dan membandingkan setiap baris dengan baris di t2. Dalam basis data relasional, pengoptimal adalah kode default yang menentukan rencana paling efisien untuk kueri SQL.

Untuk instans DB, Database Insights mengumpulkan rencana eksekusi secara otomatis. Untuk mendiagnosis masalah kinerja SQL, periksa rencana yang diambil untuk kueri SQL sumber daya tinggi. Rencana menunjukkan bagaimana database telah mengurai dan menjalankan kueri.

Untuk mempelajari cara menganalisis beban DB menggunakan paket, lihat Wawasan Database.

Penangkapan rencana

Setiap lima menit, Database Insights mengidentifikasi kueri yang paling padat sumber daya dan menangkap rencana mereka. Dengan demikian, Anda tidak perlu mengumpulkan dan mengelola rencana dalam jumlah besar secara manual. Sebagai alternatif, Anda dapat menggunakan tab SQL Teratas untuk berfokus pada rencana untuk kueri yang paling bermasalah.

catatan

Database Insights tidak menangkap rencana untuk kueri yang teksnya melebihi batas teks kueri maksimum yang dapat dikumpulkan. Untuk informasi selengkapnya, lihat W awasan Database.

Periode retensi untuk rencana eksekusi sama dengan untuk data Database Insights Anda. Pengaturan retensi adalah Default (7 hari). Untuk mempertahankan data performa Anda lebih lama, tetapkan 1–24 bulan. Untuk informasi selengkapnya tentang periode retensi, lihat Harga dan retensi data untuk Database Insights.

Kueri digest

Tab SQL Teratas menunjukkan kueri digest secara default. Kueri digest sendiri tidak memiliki rencana, tetapi semua kueri yang menggunakan nilai literal memiliki rencana. Misalnya, kueri digest mungkin menyertakan teks WHERE `email`=?. Digest mungkin berisi dua kueri, satu dengan teks WHERE email=user1@example.com dan satu lagi dengan WHERE email=user2@example.com Masing-masing kueri literal ini mungkin mencakup beberapa rencana.

Saat Anda memilih kueri ringkasan, konsol menampilkan semua rencana untuk pernyataan turunan dari ringkasan yang dipilih. Dengan demikian, Anda tidak perlu melihat semua pernyataan turunan untuk menemukan rencana. Anda mungkin melihat rencana yang tidak ada dalam daftar 10 pernyataan turunan teratas yang ditampilkan. Konsol menampilkan rencana untuk semua kueri turunan yang rencananya telah dikumpulkan, terlepas dari apakah kueri tercantum dalam daftar 10 teratas.