Performa sistem akan mempengaruhi performa db dan performa aplikasi Performa db akan mempengaruhi performa aplikasi ba harus mengatahui sistem dan environtment dari db
Download ReportTranscript Performa sistem akan mempengaruhi performa db dan performa aplikasi Performa db akan mempengaruhi performa aplikasi ba harus mengatahui sistem dan environtment dari db
Performa sistem akan mempengaruhi performa db dan performa aplikasi Performa db akan mempengaruhi performa aplikasi ba harus mengatahui sistem dan environtment dari db Dba mampu menangani perubahan sistem meski tidak harus bekerja sendiri DBMS bekerja dalam lingkungan yang besar yang meliputi software dan hardware lain Setiap komponen harus terinstall, dikonfigurasi dengan efektif DBA harus mengetahui bagaimana interaksi DBMS dengan hardware,OS dan software lain Interaksi ini meliputi : › Interaksi dengan OS › Allied agent › Hardware configuration › Disk storage dan I/O DBMS terdiri dari ribuan baris code aplikasi DBMS sangat kompleks dan membutuhkan banyak program dalam menjalankan fungsinya Setiap vendor memecah fungsi DBMS dalam beberapa komponen Terdiri dari 5 basic komponen › file structures, › memory structures, › processes, › rollback segments, and › redo logs. Sebuah database oracle terdiri dari phisical structure(data files) dan logical structure(table,index) Phisical structure ORACLE terdiri dari: › Control file › Redo log file › Database file Memory Structure › System global Area (SGA) : data cache, redo log buffer, share pool › Program global Area (PGA) : user and background process,1 proses 1 PGA › Sort area : sort, order dan grup data Oracle Processes › user processes and : execute program › Oracle processes Server process : relay user process dan SGA Background process: data management dan proses fungsi oracle instance Proses Monitor (PMON) background process System Monitor (SMON) background process Database writer (DBWR) Log Writer (LGWR) Recover (RECO) DBMS dapat di konfigurasi pada saat instalasi atau pada saat beroperasi Setiap instalasi memiliki nilai default Parameter dalam konfigurasi DBMS dapat diganti secara : › Dinamis : tidak butuh restart › Nondinamis : harus direstart › Gabungan : terkadang perlu direstart Relational databases love memory DBMS menggunakan RAM untuk cache data Cost : data dari memory < data dari disk Data cache digunakan untuk menghindari I/O operation ketika data actual sedang dibaca dari database (buffer pool) Procedure cache : menyimpan SQL dan struktur program terkait Sort cache : digunakan untuk menyimpan hasil sorting › Contoh operasi yang butuh sorting : grouping, ordering,UNION dan beberapa tipe join Internal structure cache : unik untuk tiap DBMS : › Ex : database decriptor di DB2 Database log cache (log write and log read) : untuk rollback dan recover operations Beberapa area yang menkonsumsi memori › User connections : maintain dan manage koneksi › Devices : untuk maintain dan penggunaan device › Open databases : jumlah db yang dapat digunakan › Open objects : jumlah objek (tabel, index,dll) yang dapat digunakan › Locks : setiap lock dalam db butuh memory › Caches : beberapa macam cache Disebut juga transaction log Digunakan untuk ROLLBACK dan RECOVER Minimalkan : › Lock suspensions › Timeouts › Deadlocks Gunakan disk terpisah untuk instalasi sistem katalog agar memudahkan manajemen Environtment DBMS perlu dimonitor secara continue untuk mencegah penurunan performa dan terjadinya masalah Beberapa DBMS menyediakan built-in monitor. Beberapa aplikasi monitoring performance seperti BMC Software's PATROL or Omegamon daro Candle Corporation dapat digunakan untuk memonitor performa dan memberi dinamic alerti Performance monitor ada tidak hanya untuk DBMS tapi untuk seluruh sistem DBA harus dapat menggunakan dan mengerti apa maksud dari monitoring yang ada Performance monitor bertindak seperti jendela terhadap efisiensi performance Fokus pada tuning dan optimasi desain, parameter dan phisical Meliputi ; › › › › › › › › › › › Partitioning Raw partitions versus file systems Indexing Denormalization Clustering Interleaving data Free space Compression File placement and allocation Page size Reorganization Setiap DBMS memiliki teknik untuk optimasi beberapa aspek tsb, dengan berbagai nama DBA menentukan bagaimana cara mapping tiap tabel › Single table to a single file (tidak terlalu efisien) › Single table to multiple files (paling banyak digunakan untuk data besar) › Multiple tables to a single file (digunakan untuk tabel kecil seperti lookup dan tabel kode) Partioning berguna untuk parallelism Untuk unix-based DBMS dapat memilih antara raw partition dan file system untuk menyimpan data Lebih efisien menggunakan raw partition daripada file system untuk menyimpan data di disk Penggunaan index yang benar dapat meningkatkan performa db Index digunakan antara lain untuk: › Locating rows by value(s) in column(s) › Making joins more efficient (when the index is defined on the join columns) › Correlating data across tables › Aggregating data › Sorting data to satisfy a query Jika tabel kecil, hindari index Lawan dari normalisasi, beberap opsi : › Prejoined tables— when the cost of joining is prohibitive. › Report table— when specialized critical reports are too costly to generate. › Mirror table— when tables are required concurrently by two types of environments. › Split tables— when distinct groups use different parts of a table. › Combined tables— to consolidate one-to-one or one-to-many relationships into a single table. › Speed table— to support hierarchies like bill-of-materials or reporting structures. › Physical denormalization— to take advantage of specific DBMS characteristics. Tabel yang tercluster akan menyimpan row phisycal secara terurut berdasar kolom tertentu atau beberapa kolom Index yang tercluster akan membuat row tabel disimpan dalam susunan ascending berdasar index Ketika DBMS harus melakukan proses insert dan tidak ada space tersedia, maka harus dibuat page baru untuk menyimpan data, ini disebut page splitting Dua tipe splitting › Normal page split › Monotic page split Dapat disebut spesialisasi dari clustering Jika ada dua tabel sering dijoin, maka lebih baik melakukan interleave data menjadi satu physical structure Disebut juga fill factor The specification of free space in a tablespace or index can reduce the frequency of reorganization, reduce contention, and increase the efficiency of insertion Ensure a proper amount of free space for each database object. Untuk meminimalkan ukuran db Dapat menggunakan internal tool atau thirtd party software Memiliki efek positif dan negatif › Positif : ukuran disk kecil › Negatif : butuh tambahan proses untuk compress dan decompress DBA harus meminimalkan cost untuk write and write data pada phisical disk Pastikan index terpisah dari data pada penyimpanannya The page size is used to store table rows (or more accurately, records that contain the row contents plus any overhead) on disk Semakin lama DB digunakan akan menyebabkan penurunan performa Kecepatan query menurun termasuk efek menurunnya performa Salah satu penyebab menurunnya performa : database disorganisation Database disorganization occurs when a database's logical and physical storage allocations contain many scattered areas of storage that are too small, not physically contiguous, or too disorganized to be used productively unclustered data Fragmentation Row chaining or row migration Page splits File extents REORG TABLESPACE TSNAME If the environment where the DBMS must operate is not performing efficiently, it is impossible for the DBMS, and indeed any database access, to perform efficiently. The DBA needs to understand every DBMS configuration value and the impact it can have on the overall performance of the system. Furthermore, the DBA must control the integration of the DBMS with the hardware on which the DBMS runs and any allied agent software Applications and data are constantly changing. Users require instant response time and 24/7 availability. The database structures that support these applications must be properly maintained to ensure optimal application performance. Proper database design, appropriate choice of clustering, and reorganizing databases based on statistics help to deliver efficient databases. Furthermore, DBAs can ensure database performance by automating these processes to reduce the risk and errors associated with manual database maintenance