de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Kamal Joshi
Kamal Joshi
Question

5 kueri SQL yang paling memakan waktu di Oracle

Bagaimana saya bisa menemukan kueri SQL yang berkinerja buruk di Oracle?

Oracle menyimpan statistik pada area SQL bersama dan berisi satu baris per string SQL (v$sqlarea). Tapi bagaimana kita bisa mengidentifikasi mana yang kinerjanya buruk?

36 2008-11-25T09:27:02+00:00 3
 JosephStyons
JosephStyons
Pertanyaan edit 5 Desember 2008 в 5:44
Pemrograman
oracle
performance
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
 WW.
WW.
25 November 2008 в 10:05
2008-11-25T10:05:03+00:00
Lebih
Sumber
Sunting
#8654300

Saya menemukan pernyataan SQL ini menjadi tempat yang berguna untuk memulai (maaf saya tidak dapat mengaitkan ini dengan penulis aslinya; saya menemukannya di suatu tempat di internet):

SELECT * FROM
(SELECT
    sql_fulltext,
    sql_id,
    elapsed_time,
    child_number,
    disk_reads,
    executions,
    first_load_time,
    last_load_time
FROM    v$sql
ORDER BY elapsed_time DESC)
WHERE ROWNUM < 10
/

Ini menemukan pernyataan SQL teratas yang saat ini disimpan dalam cache SQL yang diurutkan berdasarkan waktu yang telah berlalu. Pernyataan akan hilang dari cache dari waktu ke waktu, jadi mungkin tidak ada gunanya mencoba mendiagnosis pekerjaan batch semalam ketika Anda masuk kerja pada tengah hari.

Anda juga dapat mencoba mengurutkan berdasarkan disk_reads dan eksekusi. Eksekusi berguna karena beberapa aplikasi yang buruk mengirim pernyataan SQL yang sama terlalu sering. SQL ini mengasumsikan Anda menggunakan variabel bind dengan benar.

Kemudian, Anda dapat mengambil sql_id dan child_number dari sebuah pernyataan dan memasukkannya ke dalam bayi ini: -

SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR('&sql_id', &child));

Ini menunjukkan rencana aktual dari cache SQL dan teks lengkap dari SQL.

 WW.
WW.
Jawaban edit 6 November 2014 в 12:33
51
0
 cagcowboy
cagcowboy
25 November 2008 в 9:54
2008-11-25T09:54:52+00:00
Lebih
Sumber
Sunting
#8654299

Ada sejumlah cara yang mungkin untuk melakukan ini, tetapi cari di google untuk tkprof

Tidak ada GUI.... ini sepenuhnya command line dan mungkin sedikit mengintimidasi bagi pemula Oracle; tetapi ini sangat kuat.

Tautan ini sepertinya awal yang baik:

http://www.oracleutilities.com/OSUtil/tkprof.html

1
0
Kamal Joshi
Kamal Joshi
25 November 2008 в 10:27
2008-11-25T10:27:50+00:00
Lebih
Sumber
Sunting
#8654301

Saat mencari, saya mendapatkan kueri berikut yang melakukan pekerjaan dengan satu asumsi (waktu eksekusi kueri >6 detik)


SELECT nama pengguna, sql_text, sofar, totalkerja, unit

FROM v$sql,v$session_longops

WHERE sql_address = address AND sql_hash_value = hash_value

ORDER BY alamat, nilai_hash, nomor_anak;


Saya pikir query di atas akan mencantumkan detail untuk pengguna saat ini.

Komentar dipersilahkan!!!

-1
0
Related communities 3
Oracle Indonesia
Oracle Indonesia
769 pengguna
Group belajar, diskusi, dan berbagi tentang berbagai produk dan teknologi Oracle. Disclaimer: This group is not in any affilation nor maintained by the Oracle.
Buka telegram
OrcV2 🇲🇨Indonesia🇮🇩
OrcV2 🇲🇨Indonesia🇮🇩
164 pengguna
Website : https://orcv2token.tech/ Tg Global : https//t.me/orcv2
Buka telegram
Oracle_id
Oracle_id
61 pengguna
Oracle_id adalah komunitas Penikmat Oracle seluruh Indonesia, fokus membahas product2 Oracle
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 7 jam yang lalu
2
Akshit Mehta
Terdaftar 2 hari yang lalu
3
me you
Terdaftar 6 hari yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi