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

Labirin Penyetelan Kinerja

Suatu hari, Anda bangun dan menemukan bahwa Anda adalah administrator database Oracle. Para dewa akhirnya melihat potensi Anda yang sebenarnya dan memungkinkan Anda untuk bekerja dalam pekerjaan terbaik di dunia! Anda memulai karir DBA Anda begitu cerah dan berekor lebat. Anda membuat database baru, memberikan hak istimewa, menulis kode PL/SQL. Hidup itu hebat. Anda tidak sabar untuk bangun di pagi hari, menuangkan secangkir kopi pertama, dan mengarahkan browser Anda ke forum Oracle favorit Anda, ingin menyerap semua pengetahuan berharga seumur hidup sebelum makan siang! Jika dewa-dewa itu masih tersenyum pada Anda, Anda bahkan dapat menjawab beberapa pertanyaan dan mendapatkan hadiah dengan poin yang luar biasa. Hidup itu baik. Hidup itu manis.

Saat Anda masih menikmati karir baru Anda, seseorang datang kepada Anda dengan sebuah masalah. Masalah kinerja. Anda membeku. Ada benjolan kecil di tenggorokan Anda saat Anda menyadari diri Anda tidak tahu bagaimana memecahkan masalah kinerja database. Apa yang tidak Anda sadari pada hari itu adalah bahwa setiap DBA sebelum Anda berada dalam situasi yang sama persis di awal karir mereka. Namun, itu tidak menghentikan orang lain untuk melihat Anda bertanya-tanya mengapa Anda tidak segera menyelesaikan masalah performa. Bagaimanapun, Anda adalah DBA dan Anda harus tahu bagaimana melakukan hal ini. Hal ajaib ini mereka sebut (isyarat para malaikat bernyanyi) Performance Tuning . Karena sudah tertulis, jika Anda ingin menjadi DBA dan bertahan, dan melakukan pekerjaan ini dengan baik, Anda harus menyesuaikan kinerja. Orang lain tidak akan pernah tahu apa yang terjadi di balik tirai saat Anda membuat ramuan dan mantra. Yang mereka pedulikan hanyalah Anda memecahkan masalah kinerja mereka dan mereka dapat melanjutkan pekerjaan sehari-hari mereka.

Pada titik ini di awal karir mereka, setiap DBA memutuskan bahwa mereka perlu mempelajari lebih lanjut tentang hal yang mereka sebut Penyetelan Kinerja . Apa itu? Bagaimana saya melakukannya? Bagaimana saya bisa menjadi orang terpenting di departemen TI saya karena saya menemukan saus rahasia untuk mengubah laporan 5 jam itu menjadi keajaiban 1 menit?

Oh, kami masih sangat muda saat itu… sangat naif. Kami pikir itu mudah. Tekan beberapa tombol, jalankan beberapa alat dan presto. Solusi penyetelan kinerja ditemukan dan kami luar biasa! Hidup terasa begitu mudah saat kami menyusuri jalan bata kuning itu. Tapi di jalan ini, tidak ada burung gagak yang menakut-nakuti. Tidak ada singa. Tidak ada orang timah. Bahkan tidak ada anjing kecil yang lucu bernama Toto. Tidak…jalan ini…jalan Oracle Performance Tuning ini dipenuhi dengan hal-hal yang jauh lebih besar. Di jalan ini, kami bertemu utilitas dan peralatan. Kami bertemu Jelaskan Rencana. Kami bertemu tkprof dan SQLT. Kami menemukan pemandangan indah seperti V$SGA_TARGET_ADVICE dan V$SESSION_WAIT serta kembarannya V$SESSION_EVENT (bukan kembar identik, tapi sekali lihat dan Anda tahu mereka terkait).

Jadi di sana Anda. Judul DBA mengkilap Anda masih ada di bawah nama Anda di setiap tanda tangan email yang Anda kirim. Dan sekarang Anda memiliki semua alat luar biasa ini. Anda telah mengambil ASH dan AWR karena untungnya perusahaan Anda telah memberi Anda Paket Diagnostik. Rak buku Anda dipersenjatai dengan buku-buku besar seperti ini. (Plug tak tahu malu saya tahu). Beberapa pria hebat di forum, seperti saya, memberi tahu Anda tentang Lighty. Anda memiliki seluruh kotak peralatan yang Anda inginkan. Tidak! Bukan toolbox….warchest! Negara-negara kecil di tempat lain di dunia tidak memiliki persenjataan yang Anda miliki. Mengapa…Saya dapat menyentuh tombol super-rahasia di SQL Tuning Advisor dan menerbangkan salah satu negara tersebut, *dan* membuat SQL ID 98byz76pkyql berjalan lebih cepat sementara kopi saya masih mengepul darinya…Saya sangat baik.

Ingat hari itu Anda menerima masalah kinerja pertama Anda dan Anda memiliki benjolan di tenggorokan Anda? Ada hari lain seperti itu dalam karir DBA Anda. Ini adalah hari dimana Anda mencapai Performance Tuning Maze (isyarat guntur dan kilat). Tapi ini bukan labirin. Ini berbeda. Kebanyakan labirin memiliki satu pintu masuk dan satu pintu keluar, dengan banyak belokan dan keputusan di sepanjang jalan. Labirin ini, mengapa, labirin ini jelas berbeda. Labirin ini memiliki banyak, banyak pintu masuk. Dan labirin ini memiliki banyak, banyak jalan keluar. Setiap pintu masuk adalah alat penyetelan performa yang berbeda. Dan setiap jalan keluar adalah solusi , tetapi tidak semua solusi benar-benar menyelesaikan masalah kinerja. Dan ini adalah teka-teki yang dihadapi oleh spesialis penyetelan kinerja Oracle. Saya memiliki masalah kinerja. Saya tahu di sisi lain labirin ini adalah solusi saya. Tapi pintu masuk mana yang saya pilih? Satu pintu masuk memiliki Jelaskan Rencana tertulis di atasnya. Pintu masuk lain memiliki V$DB_CACHE_ADVICE tertulis di atasnya. Mengapa ada semua pintu masuk ini, satu untuk setiap alat yang saya miliki. Ini adalah kisah masa mudaku dan semoga, seperti yang ditulis Bilbo kepada Frodo, kisah ini juga dapat membantumu dalam petualanganmu.

Jadi saya memilih pintu masuk.

Saya memasuki labirin.

Apakah saya membuat pilihan yang baik?

Baiklah mari kita lihat ke mana ini pergi. Di depan, jalan berbelok ke kiri. Tapi itu satu-satunya pilihan saya jadi saya pergi dengan itu. Selanjutnya, saya sampai di sebuah persimpangan. Saya bisa ke kanan atau ke kiri. Saya berbelok ke kanan. Ups… jalan buntu. Jadi saya mundur dan mengambil kiri sebagai gantinya. Jalan buntu lainnya. Drat. Saya salah memasuki labirin. Terkadang, alat tidak mengarahkan Anda ke solusi apa pun. Jadi saya kembali ke pintu masuk dan membuat pilihan lain, memilih alat yang berbeda.

Saya sekarang telah memasuki labirin untuk kedua kalinya. Tapi keadaan terlihat jauh lebih baik. Aku terus berjalan. Hanya beberapa putaran lagi. Saya bisa melihat cahaya jadi saya tahu saya semakin dekat dengan akhir. Ya…itu dia, pintu keluar. Saya akhirnya keluar dari sisi lain labirin. Saya memiliki solusi penyetelan kinerja saya, tetapi setelah saya menerapkan solusi tersebut, saya segera menyadari bahwa ini tidak menyelesaikan masalah kinerja saya sama sekali. Terkadang, alat dapat mengarahkan Anda ke solusi yang tidak terkait dengan masalah khusus Anda. Jadi sudah waktunya untuk pintu masuk ketiga saya ke dalam labirin.

Sekarang, sebagai spesialis penyetelan kinerja yang cerdik, saya menyadari bahwa semua pintu masuk yang saya pilih sejauh ini terkait dengan kinerja basis data secara keseluruhan, tetapi yang sebenarnya saya cari adalah kinerja yang terkait dengan pernyataan SQL tertentu. Tapi saya tidak tahu pernyataan SQL mana yang perlu disetel. Bagaimana saya bisa mengetahui yang mana? Nah, tiga pintu di bawah adalah pintu masuk ke labirin bertanda SQL Trace. Tepat di sebelahnya ada pintu bertanda EM Search Sessions. Saya melempar koin dan memilih SQL Trace. Tak lama setelah saya memasuki labirin, saya tiba di persimpangan-T. Jika saya belok kiri, saya akan dibawa kembali ke pintu EM Search Sessions. Jika saya ke kanan, itu adalah tembakan lurus ke pintu keluar. Secara alami saya pergi ke kanan. Tetapi pada saat inilah saya tahu bahwa sterkadang, dua alat yang berbeda akan mengarahkan Anda ke jawaban yang sama. Saat saya keluar dari labirin, saya diberikan izin masuk gratis ke tkprof karena bagaimanapun juga, bukankah semua jalan SQL Trace mengarah langsung ke tkprof? Saya sekarang memiliki pernyataan SQL yang menyinggung. Tapi masalah saya belum selesai. Apa yang harus dilakukan?

Aku kembali ke pintu masuk labirin. Terkadang, kami mendapatkan jawaban dari alat penyetelan kami dan kami harus melakukan lari lagi melalui labirin untuk menelusuri jawaban akhir. Kali ini, saya memasuki pintu SQLT. Beberapa tikungan dan belokan, tetapi jalur labirin ini cukup mudah, atau begitulah kelihatannya. Saya sampai ke akhir, dan saya tidak hanya punya satu jawaban, saya punya banyak jawaban. Oh… hari yang mulia! Saya telah menemukan ibu dari semua alat.

Saya mendengar DBA lain berbicara tentang alat ajaib ini seperti SQLT dan Laporan AWR. Betapa indahnya mereka. Alat-alat ini sangat hebat, beberapa DBA hanya melihat pintu masuk Laporan SQLT dan AWR. Saya selalu berpikir ini adalah legenda, tapi di sini akhirnya, saya juga telah menemukan satu alat untuk mengatur semuanya…ok…satu untuk masing-masing tangan. Saya memiliki semua jawaban ini. Sekarang jawaban mana yang terkait langsung dengan masalah kinerja saya. Di sini saya memiliki laporan SQLT saya dan saya memiliki semua jawaban yang terkandung di dalamnya. Yang mana jawaban saya. Pilih satu?!?!? Terkadang, alat akan memberi Anda terlalu banyak informasi. Bagi saya, yang baru dalam hal penyetelan kinerja ini, keluaran SQLT mungkin juga ditulis dalam Klingon. Tapi untungnya saya, saya kenal sesama DBA yang duduk dua kubus di bawah saya yang berbicara Klingon. Saya menyerahkan output SQLT saya kepadanya. Dia membolak-baliknya dan dalam waktu 30 detik, dia menunjukkan satu bagian kecil dari laporan itu dan mengucapkan kata-kata ajaib itu. "Lihat ... di sana ... itu masalahmu." Dengan ekspresi bingung di wajah saya, dia melambaikan tangannya di atas laporan dan seolah-olah dengan sihir, Google Terjemahan telah mengubah beberapa kata di halaman dan sekarang saya dapat dengan jelas melihat bahwa saya memiliki tabel dengan statistik yang sangat buruk. Terkadang, alat dengan semua jawaban itu adalah penghemat waktu yang tepat bagi mereka yang tahu cara menggunakannya. DBA berbahasa Klingon ini mengangkat kacamatanya dan mengungkapkan bagian lain dari laporan SQLT. “Lihat di sini katanya…statistik buruk itu memaksa FTS” seolah-olah saya seharusnya tahu apa itu FTS saat ini dalam karier saya. Tapi saya tidak ingin terlihat seperti n00b total jadi saya tersenyum dan mengangguk setuju.

Ok…Saya semakin dekat untuk menyelesaikan masalah saya. Saya tahu saya memiliki statistik yang buruk. Saya kembali ke meja saya dengan bersemangat untuk mulai bekerja untuk akhirnya menyelesaikan masalah saya. Saat saya melewati pendingin air dan berkeliling di antara rekan kerja saya yang selalu ada dengan tidak ada yang lebih baik untuk dilakukan sepanjang hari selain mengobrol, matahari bersinar dari satu pintu ke labirin dan menangkap sudut mata saya ... hanya satu pintu. Di atas pintu itu ada tanda yang bertuliskan DBA_TABLES. Seperti halnya DBA yang bagus, saya berkata pada diri sendiri bahwa bukan ide yang buruk untuk memeriksa ulang hal-hal ini. Mulai tertarik padanya, saya memasuki pintu DBA_TABLES dan saya sekali lagi berada di labirin. Aku berbelok cepat dan sesuatu melompat ke arahku seolah mengagetkanku. Tapi aku menjadi baik dalam hal ini. Saya tidak peduli bahwa beberapa penghuni labirin kecil bersikeras untuk memberi tahu saya bahwa tabel ini berada di tablespace USERS. Saya cepat mengetahui bahwa ini tidak ada bedanya dengan masalah saya. Saya mendorong dan mengabaikan semua imp kecil ini dengan informasi palsu mereka. saya tekan. Dan begitulah ... konfirmasi di pintu keluar labirin bahwa tidak ada statistik di meja ini. Pelajaran singkat telah dipelajari di sini, terkadang, alat akan memberi Anda informasi yang tidak relevan bagi Anda pada hari ini .

Saya mungkin baru di game DBA ini, tapi saya tahu ini. Saya perlu melihat bagaimana kinerjanya sekarang, membuat perubahan, dan mengukur peningkatan kinerja jika ada. Jadi saya kembali ke labirin. Kali ini, saya memasuki pintu bertanda SQL Developer Autotrace dan saya mengeksekusi pernyataan SQL yang menyinggung. Saya tidak hanya mendapatkan runtime dari pernyataan SQL tetapi saya dapat melihat jumlah pembacaan dan rencana eksekusi. Saya dengan cepat memperbarui statistik di atas meja yang ditunjukkan teman saya yang berbahasa Klingon kepada saya. (singkatnya...Dulu saya pikir dia brengsek tapi sekarang dia tidak terlalu buruk. Saya bisa belajar dari orang ini. Mungkin suatu hari saya juga bisa berbicara bahasa Klingon). Lalu saya masuk lagi ke pintu SQL Developer Autotrace. Tidak hanya eksekusi kueri saya yang berubah dari 2 menit eksekusi menjadi 2 detik, tetapi pembacaan turun secara signifikan dan Rencana Penjelasan meningkat. Oke, bagian terakhir itu sedikit berlebihan. Saya masih terlalu hijau untuk mengetahui Rencana Jelaskan lebih baik tetapi melihat kembali nanti dalam karir saya, saya tahu itu. Saya segera mengetahui bahwa terkadang, alat penyetelan kinerja yang saya gunakan tidak hanya ada untuk membantu menemukan akar penyebab masalah, tetapi juga ada untuk mengonfirmasi solusi yang benar-benar memperbaiki masalah. Dan terkadang, alat untuk mengkonfirmasi hasil bukanlah alat yang saya gunakan untuk menemukan akar masalahnya.

Saya segera memberi tahu pengguna akhir saya bahwa masalah telah teratasi. Pengguna mengomel sesuatu yang saya tidak bisa mengerti dan memeriksa untuk melihat apakah hidupnya benar-benar lebih baik. Dan saat itulah saya menerimanya. Hadiah terbesar yang pernah diterima DBA. Itu benar... Saya menerima pujian pengguna . Hari ini, saya adalah pekerja ajaib atau begitulah yang dipikirkan pengguna. Saat saya berdiri di kubus pengguna ini, dia berteriak "DIA MEMPERBAIKINYA" dan dengan isyarat, seluruh kepala departemen muncul di atas dinding kubus seperti menghubungkan keluar dari tanah. Hore..mereka bersorak! Saya mencintai hidup berjemur dalam cahaya. Mengapa bos bahkan menawarkan untuk membawa kita ke pub setelah bekerja..putaran pertama ada padanya.

Aku berjalan kembali ke mejaku, bersemangat untuk menerima tantangan berikutnya. Pekerjaan ini sangat manis.

Saya ingat pertemuan pertama saya dengan Performance Tuning Maze ini seperti baru kemarin. Ketika kami bercanda tentang bir di pub malam itu, saya tidak berani berbicara tentang beberapa hal yang saya lihat di labirin itu. Rekan kerja saya tidak akan mengerti. Saya tidak pernah memberi tahu siapa pun tentang perkelahian saya dengan naga MOS. Aku sudah terlalu sering terbakar. Saya tidak pernah memberi tahu siapa pun betapa membosankannya menjalankan kueri, menunggu satu jam untuk hasilnya, coba lagi, tunggu satu jam, coba lagi, tunggu satu jam..oops..Saya tertidur di sana. Cobaan dan kesengsaraan masa muda saya lebih baik disimpan untuk lain waktu. Mungkin saya akan menulis buku lain.

Tapi saya belajar banyak saat itu. Seiring waktu, saya menjadi lebih baik dan memilih jalan masuk terbaik ke labirin untuk masalah yang ada. Bagaimanapun, hanya dengan pengalaman seseorang bisa menjadi lebih baik dengan ramuan penyetelan performa ajaib ini. Saya juga telah mempelajari bahwa terkadang, satu alat tampaknya menjadi alat yang benar untuk pekerjaan itu hanya untuk menemukan sebagian dari upaya penyetelan bahwa alat lain lebih cocok.

Saya juga mengetahui bahwa hanya bekerja dengan alat dan mempelajari apa yang mereka kuasai dan sebaliknya apa yang tidak mereka kuasai, saya dapat memilih alat yang paling tepat untuk pekerjaan itu. Kembali pada hari, Jika sering merasa seperti saya sedang mencoba untuk memukul sekrup dengan palu. Sekarang saya melihat sekrup dan tahu bahwa alat terbaik adalah obeng.

Seiring waktu, saya telah menambah jumlah pintu masuk ke labirin penyetelan kinerja saya. Aku masih melewati pintu-pintu yang telah dicoba dan benar seperti dengan satu hanya dengan angka di atasnya, 10046. Di masa lalu, saya telah diberitahu tentang pintu ajaib yang mengarah ke pelangi dan unicorn hanya untuk menemukan satu lagi troll tua pemarah di bawah menjembatani. Saya skeptis tentang Lighty yang menjadi alat ajaib pada awalnya, tetapi saya salah tentang itu.

Oh cerita yang bisa saya ceritakan, tapi cerita ini benar-benar tentang Performance Tuning Maze itu. Itu selalu datang ke labirin itu. Pilih pintu terbaik, tetapi hanya pengalaman yang dapat memberi tahu Anda mana yang terbaik. Itu akan membuat Anda sampai pada solusi Anda paling cepat. Membuat belokan yang salah dan memulai dari awal. Jangan takut untuk memasuki labirin beberapa kali. Ketika Anda berpikir Anda memiliki solusi, pergi melalui labirin untuk memverifikasi. Labirin Penyetelan Kinerja yang ajaib dengan semua utilitas dan alat penyetelan kinerja Oracle yang menakjubkan ini kini telah menjadi salah satu tempat favorit saya untuk hang out. Saya suka menambahkan lebih banyak pintu masuk setiap saat, berharap bahwa setiap alat baru akan membawa saya ke ujung labirin lebih cepat. Terkadang mereka melakukannya dan terkadang tidak.

Saya masih ingat hari-hari ketika saya biasa nongkrong di labirin "penyetelan berbasis rasio" yang lama, tetapi saya telah pindah ke padang rumput yang lebih hijau. Saya masih tertawa ketika saya melihat beberapa DBA baru berdiri di depan labirin tua itu, tertutup jaring laba-laba dan mereka tidak bisa menerima petunjuknya. Dan kemudian saya menjadi rewel ketika saya berteriak pada mereka untuk melupakan labirin itu dan datang ke sini di mana semua orang berkumpul, hanya untuk ditolak oleh seseorang yang berpikir mereka lebih tahu. Jika kita bertemu mereka lagi, kita bisa mengatakan "Sudah kubilang" dan tertawalah.

Saya sering bekerja dengan orang-orang yang melihat saya menggunakan beberapa alat mengkilap ini. Mereka melihat saya memasuki labirin dan keluar dari sisi lain dengan jawabannya. Jadi pertanyaan mereka selanjutnya yang jelas adalah "bisakah saya masuk ke pintu itu juga?" Aku tertawa. “Tentu… langsung saja”, kataku pada mereka. Berbekal alat penyetelan keren ini, tetapi tidak memiliki pengetahuan tentang cara menyetel Oracle, mereka melakukan upaya yang cukup bagus, tetapi lemah. Mereka memanggil saya ke labirin dan meminta saya untuk membantu mereka memecahkan masalah. Jadi kami menyalakan alat dan melihatnya. Saya langsung mengenali akar penyebab masalah, tetapi lonceng dan peluit mengkilap alat ini membingungkan orang baru. Pada titik ini, saya sekarang berbicara Klingon. Dalam beberapa detik saya berkata “Lihat…di sana…itu masalah Anda.” dan saya mendapatkan kembali tatapan bingung yang sama yang saya berikan kepada mentor DBA saya bertahun-tahun yang lalu. Para pemula ini selalu menginginkan akses ke alat dan berpikir mereka dapat menggunakannya seperti seorang ahli. Mereka tidak memiliki petunjuk apa yang ada di dalam labirin atau petunjuk bagaimana menavigasinya. Terlalu banyak orang berpikir bahwa alat adalah saus rahasia padahal sebenarnya orang yang memegang alat itu. Sayangnya, beberapa orang yang memiliki akses ke alat tersebut hanya menginginkan jawaban yang cepat dan mudah. Mereka tidak ingin meluangkan waktu seperti kebanyakan dari kita.

Waktu, waktu untuk mengikuti para master. Kita semua memiliki versi Mt Rushmore. Diukir di batu. Orang-orang seperti Millsap, Lewis, dan Shallahammer untuk beberapa nama. Gunung Rushmore Anda mungkin memiliki nama lain atau bahkan yang serupa. Orang lain yang melihat Mt Rushmore kami, semuanya berada di atas batu, tidak menyadari bahwa orang-orang baik ini adalah pemandu kami di labirin. Mereka menunjukkan kepada kita cara menavigasi labirin. Mereka menunjukkan kepada kami cara menggunakan alat dan alat mana yang harus digunakan kapan. Kami yang belajar dari master mencoba level terbaik kami untuk membayarnya dan mengajar orang lain, meskipun kami mungkin tidak pernah mencapai ketinggian setinggi itu, dan tidak apa-apa.

Moral dari cerita ini adalah mempelajari alat-alat ini, mempelajari apa yang mereka lakukan dan apa yang tidak mereka lakukan. Pelajari masalah mana yang mereka bantu atasi. Manfaatkan alat, tetapi sadarilah bahwa Anda perlu belajar sebanyak mungkin agar Anda dapat berjalan di labirin dengan percaya diri. Sayangnya, saya harus mengakhiri cerita saya di sini. Seseorang baru saja datang ke kantor saya dengan masalah penyetelan kinerja lainnya. Saatnya memasuki labirin lagi. Sekarang pintu mana yang harus saya ambil?


No
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perintah Cadangan RMAN

  2. ORA-00604 ORA-12705

  3. Pertanyaan Teratas tentang JAVA/JRE di Oracle Apps

  4. Jelaskan Plan Cost Pain Point

  5. Oracle Pl/SQL:Loop melalui node XMLTYPE