• Tidak ada hasil yang ditemukan

Ringkasan UTS Database Administration

N/A
N/A
Protected

Academic year: 2022

Membagikan "Ringkasan UTS Database Administration"

Copied!
42
0
0

Teks penuh

(1)

Timothy Orvin Edwardo – LE01 – 1901456205

Ringkasan UTS Database Administration

1. Fokus area dari SQL Server :

 Mission – critical performance  memory oriented.

Berkaitan dengan OLTP (mencatat semua transaksi yang ada), fitur index, SSD, AlwaysOn enrichment.

 In memory built in  lebih cepat.

 Secure dan scalable  lebih aman untuk enterprise dengan Windows Server.

 High avaibility  contoh : adanya fitur AlwaysOn.

 Mission – critical support  live support untuk mission – critical solution.

 Faster insight  dengan adanya BI tools, PowerMap, PowerPivot. BI dirancang untuk decision support system sehingga bisa mengambil keputusan.

 Platform hybrid cloud  menyediakan opsi : virtualized atau pure – on premise atau all in cloud.

2. In memories technology  OLTP, Data warehouse dan analisis, Streaming data.

3. Arsitektur SQL Server :

 Database files dan transaction log

 Database file  bisa mengandung multiple filegroups.

Setiap filegroups harus mengandung 1 atau lebih physical files.

 Transaction log  memastikan seluruh commited

transactions pada database bisa di recover baik melalui rollback maupun point – in – time recovery.

(2)

Timothy Orvin Edwardo – LE01 – 1901456205

 SQL Server native client  data access method yang ada pada SQL Server 2005 dan diperluas pada SQL Server 2012.

Melibatkan beberapa hal : database mirroring, FILESTREAM Support, AlwaysOn readable secondary routing, Multiple Active Result Set (MARS), snapshot isolation, query

notification, User Defined datatype (UDT).

 Standard system database

 Resource database  mengandung read only critical system tables, metadata, dan stored procedure yang SQL Server jalankan.

 Master database  mengandung metadata tentang database kita, termasuk konfigurasi, file location, login, informasi konfigurasi tentang instance.

 Tempdb database  menampung temporary object yang dibuat oleh user. Temporary object ini

dibutuhkan oleh database engine dan row – version information.

 Model database  database sistem yang menyediakan template ketika SQL Server membuat database baru.

 Msdb database  database sistem yang mengandung informasi yang digunakan SQL Server agent, log

shipping, SSIS, backup-and-restore system untuk relational database engine.

 Synonym  seperti alias. Digunakan untuk mempermudah pemanggilan tabel agar tidak terlalu panjang.

 Schema  melakukan pengelompokkan terhadap database object. Misal tabel. Nama tabel harus unik (tidak boleh sama) dalam 1 schema.

 Database management object  informasi tentang SQL Server instance dan sistem operasi.

(3)

Timothy Orvin Edwardo – LE01 – 1901456205

 Dynamic Management View

 Dynamic Management Function

 SQL Server data types

 Character  CHAR, VARCHAR, NVARCHAR

 Exact numeric  BIT, TINYINT, BIGINT, INT, NUMERIC, DECIMAL, MONEY, SMALLMONEY

 Approximate numeric  FLOAT, REAL

 Binary  BINARY, VARBINARY

 Date dan time  DATE, DATETIME, DATETIMEOFFSET, TIME, SMALLDATETIME

4. Stored procedure  sekumpulan pernyataan T – SQL yang dikompilasi menjadi rencana eksekusi tunggal. Prosedur yang disimpan sangat membantu dalam mencapai implementasi konsisten dari logika di aplikasi. Manfaatnya :

 Memungkinkan pemrograman modular.

 Eksekusi lebih cepat.

 Mengurangi network traffic.

 Dapat digunakan sebagai mekanisme keamanan.

5. Tools administrasi dan konfigurasi :

 SQL Server Configuration Manager  konfigurasi SQL Server agar pas dengan environment kita.

 Startup parameter  hal ini juga bisa di setting di SQL Server Configuration Manager atau lewat CMD.

 Startup Stored Procedure

 Sp_configure  mengizinkan adanya dan scan startup stored procedure.

 Untuk commit setting, SQL Server instance harus di restart.

(4)

Timothy Orvin Edwardo – LE01 – 1901456205

 Sp_procoption  membuat stored procedure untuk membuatnya sebagai startup stored procedure.

 Partially contained database

 Konsep dimana setting dan metadata database tidak ada dependensi konfigurasi di instance SQL Server dimana database resides.

 User bisa connect tanpa otentikasi di instance level.

 Di SQL Server 2014, fully contained database tidak ada.

Hanya ada partial contained database.

6. Troubleshooting tools :

 Dedicated Administration Connection

 Diagnosis koneksi yang bisa digunakan sebagai koneksi standar ketika server tidak memungkinkan.

 Koneksi di assign ke port, dimana koneksi ini hanya bisa dibuat oleh sysadmin role dari SSMS atau sqlcmd tool.

 Rebuilding system database

 Membuat ulang sistem database kita.

 Menggunakan setup.exe dan /QUIET dan /ACTION untuk rebuild database.

7. SQL Server Management Studio :

 Reports

 Server reports  melaporkan hal – hal yang berkaitan dengan server, seperti server startup time, instance name, active session.

 Database reports  beroperasi di server – level reports. Contoh : disk usage, total space yang digunakan, data file space, transaction log space.

(5)

Timothy Orvin Edwardo – LE01 – 1901456205

 Object explorer details  melaporkan tentang yang berkaitan dengan database diagram, tabel, view, sinonim.

 Konfigurasi SQL Server

 Bisa menggunakan server properties screen  general, memory, processor, security, connection.

 Menggunakan sp_configure  max degree of parallelism, CLR enabled, block process threshold.

 Filter object  bisa filter object berdasarkan nama, schema, ataupun kapan object dibuat. Menggunakan filter icon di object explorer.

 Error log  bisa melihat log ketika kita menggunakan SSMS.

Untuk melihatnya, kita menggunakan SQL Server logs pada object explorer.

 Monitor aktivitas  memberikan view tentang koneksi kita pada instance. Tool ini merupakan cara kompeherensif untuk melihat siapa yang connect ke mesin kita dan apa yang mereka lakukan.

8. Proses monitoring :

 Sp_who dan sp_who2  informasi tentang siapa saja yang connect ke instance dan melihat semua koneksi pada server.

 Sys.dm_exec_connection  informasi untuk troubleshoot database engine.

 Sys.dm_exec_sql_text  retrieve text dari query tertentu.

Bisa digabungkan dengan DMV untuk melihat query yang performanya buruk.

9. Central management servers dan server group :

(6)

Timothy Orvin Edwardo – LE01 – 1901456205

 Mengizinkan policy based management ke group server pada waktu yang sama.

 Bisa eksekusi query pada group server dan aggregate atau tetap membiarkan terpisah.

 Jika ada error, bisa query ke single statement.

 Sebelumnya harus registrasi central management server terlebih dahulu.

 Membuat server group dan registrasi ke group dibawah registration server.

 Beberapa hal :

 Tidak bisa registered group dibawah dirinya sendiri.

 Semua query dieksekusi melalui trusted connection.

 Jika cross domain, harus memiliki trusted relationship.

 Bisa konfigurasi multiple central management server.

10. Security data terdiri dari 2 model yakni authentication dan authorization :

 Authentication adalah sebuah proses untuk memastikan atau memverifikasi bahwa pelaku adalah benar – benar pelaku.

 Proses ini memastikan kalau ada pelaku yang mengaku sebagai orang lain, bisa terdeteksi sebagai orang lain.

 Proses membuktikan identitas.

 Bila authentication berhasil, akan terjadi hubungan terpercaya antara pemberi layanan dan pengguna layanan.

 Pada SQL Server, ada 2 jenis authentication :

(7)

Timothy Orvin Edwardo – LE01 – 1901456205

o SQL Server Authentication  login dibuat di SQL Server, bukan berdasarkan windows user account.

o Windows Authentication  SQL Server validasi nama akun dan password menggunakan prinsip windows token di sistem operasi.

 Authorization adalah proses yang menetukan data mana yang kita bisa akses, layanan apa yang bisa diakses, wewenang apa saja yang bisa kita lakukan terhadap data.

 Dilakukan ketika user dinyatakan berhak untuk mengakses.

 Contoh authorization di SQL Server :

o GRANT  memberi akses / wewenang kepada seseorang.

o DENY  membatasi akses / wewenang kepada seseorang.

o REVOKE  menghapus GRANT atau DENY.

 Wewenang pada SQL Server bisa diberikan pada server level atau database level. Bisa juga ke object yang spesifik.

 Permissions / izin bisa dikaitkan bersama dengan menyederhanakan izin ke database dengan permission chains. Bisa juga lintas database (ke database lain) menggunakan cross – database chaining.

11. 4 contoh previleges untuk login dalam SQL Server :

(8)

Timothy Orvin Edwardo – LE01 – 1901456205

 Alter  mengizinkan login yang diberikan, untuk membuat perubahan pada login kedua dimana ada hak diberikan. Contoh : ada 2 login, login1 dan login2. Login1 bisa alter login2 dengan adanya permission ini. Alter login bisa : mengubah password, default database, default language.

 Control  memberikan wewenang pada granted user untuk mengizinkan login (mengontrol login). Sebagai contoh : login1 dan login2. Login1 bisa mengontrol login2 dengan control permission.

 Impersonate  megizinkan granted user untuk menggunakan EXECUTE AS sebagai syntax, menspesifikasikan login yang diberikan untuk mengeksekusi code sebagai grantee login.

 View Definition  mengizinkan granted user untuk melihat konfigurasi pemberi wewenang login (granter login).

12. SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan memodifikasi perintah SQL yang ada di memori aplikasi client. Ini juga merupakan teknik mengeksploitasi aplikasi web yang didalamnya menggunakan database sebagai penyimpanan data. Hal ini disebabkan oleh :

 Tidak ada penanganan terhadap karakter petik satu dan double minus yang menyebabkan aplikasi bisa disisipkan perintah SQL.

 Hacker menyisipkan perintah SQL kedalam parameter atau form.

(9)

Timothy Orvin Edwardo – LE01 – 1901456205

13. SQL injection dapat dikatakan sesuatu yang berbahaya karena :

 Orang bisa login tanpa harus punya akun.

 Orang bisa merubah / menghapus / menambahkan data – data yang ada di database.

 Orang bisa mematikan database, sehingga layanan (termasuk layanan ke web server) berhenti.

14. Hal yang perlu diperhatikan database administrator tentang performa :

 Performance tuning cycle

 Mendefinisikan good performance

 Konfigurasi power  mendeskripsikan bagaimana sistem operasi bertindak terkait power consumption.

(10)

Timothy Orvin Edwardo – LE01 – 1901456205

o Balanced  balance dan demand diseimbangkan agar efisien.

o High Performance  meningkatkan kinerja CPU dan hardware server.

o Power Saver  membatasi beberapa hal sehingga hemat energi dan menguangi cost operasi.

 Kalau ada tidak memenuhi salah satu, maka bisa

menyebabkan minimal performance impact (jika tidak melakukan high performance) atau core parking (jika tidak balancing).

 Core parking  kondisi dimana ada core yang tidak bekerja, jadi 1 core kerjanya berat.

 Melibatkan planning, sizing, testing.

 Fokus pada hal yang penting

 Mencapai performance sesuai permintaan user.

 Kita harus tau apa yang akan diukur, bagaimana mengukurnya, dan keterbatasannya.

 Mempertimbangkan typical system  jumlah semua performa dari client machine ke banyak layer di

database server dan balik lagi.

15. Hal yang harus diperhatikan developer DBA terkait performa

 Users

 Berapa banyak user dan bagaimana concurrencynya.

 Peak usage level.

 Apa yang akan mereka lakukan.

 SQL Statement  memahami apa yang akan mereka lakukan, SQL statement mana yang akan dijalankan, dan seberapa sering dijalankan untuk user action.

(11)

Timothy Orvin Edwardo – LE01 – 1901456205

 Data usage pattern  memahami total data volume di setiap tabel termasuk bagaimana data masuk dan mengalami perubahan.

 Database schema

 Memahami hot spots di data untuk enable physical design agar bisa diimplementasi secara efisien.

 Pada desain logical data model, biasanya tidak memikirkan performa optimum melalui database design.

 Ketika siap membuat physical model, kita harus bisa modifikasi design untuk incorporate knowledge pada data access pattern.

16. Hal yang harus diperhatikan production DBA  berkaitan dengan hardware. Toolsnya :

 Task manager  view tentang server performance dan penggunaan resources.

 System performance monitor  view detail tentang

windows server performance dan per instance SQL Server specific counter.

 SQL Management Data Warehouse  mengumpulkan dan store performance dan data collector outputs ketika DBA butuh troubleshoot system issues.

 SSMS  mengizinkan long running transaction untuk

dianalisis dan bottleneck agar ditemukan dan diselesaikan.

 Dynamic Management View  mengandung server state information yang digunakan untuk diagnosa masalah dan monitor health of SQL Server.

 Extended event  mengumpulkan data tentang performa SQL Server. Bisa dilihat melalui UI pada SQL Server 2012.

(12)

Timothy Orvin Edwardo – LE01 – 1901456205

17. Hyper threading  teknologi yang memungkinkan

menduplikasi section tertentu dari physical processor core untuk meningkatkan parallelization pada komputasi.

18. Multicore :

 Socket  dimana prosesor plugged. Ada relasi 1 – 1 antara socket dan unit eksekusi.

 Core  unit eksekusi. Jika multiprosesor, maka akan ada 2 atau lebih per socket.

 Thread  tidak sama dengan OS thread atau thread pada program.

19. NUMA :

 Non Uniform Memory Access.

 Memiliki 2 socket per node configuration dan implement multiple nodes sampai maximum sistem.

 Perbedaan dengan SMP system adalah dimana memori dihubungkan dan bagaimana prosesor diatur dalam sistem bus.

20. Memori :

 Physical memory  RAM yang diinstall ke server.

 Physical address space  kumpulan address yang digunakan prosesor untuk akses apa saja pada bus. Beberapa bagian space ini direserve untuk mapping hardware buffer dan interface specific memory area seperti video RAM.

 Virtual memory manager  bagian OS yang manage physical memory dan share antar proses yang memori butuhkan.

(13)

Timothy Orvin Edwardo – LE01 – 1901456205

 Manage virtual memory untuk setiap proses dan ketika perlu, mengembalikan physical memory dibalik virtual memory dan dimasukkan ke page file agar tidak hilang.

 Page file  disk file yang digunakan komputer untuk meningkatkan jumlah physical storage untuk virtual memory.

 Page faults  secara umum bermasalah untuk SQL server. Beberapa tidak bisa dihindari, dan memiliki impact terbatas pada performa.

21. I/O :

 Memiliki impact terbesar pada performa dalam SQL Server.

 Pada SQL Server, fokus ke disk I/O karena disanalah data resides. Kita juga perlu mengetahui efek dari poor network I/O yang menyebabkan bottleneck ke performance.

 Beberapa contohnya :

 Network

o Merupakan key component pada SQL Server.

o Network yang link ke SQL Server, menerima request untuk melakukan sesuatu dan mengirim result kembali ke client.

 Magnetic disk

o Advanced Technology Attachment (ATA)  dikenal juga sebagai Integrated Drive Electronic yang tidak hanya refer ke konektor dan definisi interface, tetapi juga ke fact yang drive

controller terintegrasi ke drive.

o Small Computer System Interface (SCSI) 

kumpulan standar yang didevelop untuk connect

(14)

Timothy Orvin Edwardo – LE01 – 1901456205

dan transfer data antar komputer dan peripheral devices termasuk disk.

o More disks o Faster disks

o Cahche – read and write o Disk cache

 Read ahead / read behind  ketika read dikirim ke disk, disk mungkin membaca data yang tidak direquest.

 Write acceleration  disk controller memberi signal pada SQL server bahwa operasi write berhasil dilakukan secepatnya setelah menerima data bahkan sebelum di write ke disk.

 Input / output speed balancing  rate read dan write operation yang terkirim ke disk mungkin fluktuatif.

 Solid state / flash drive

o SSD tidak berputar sehingga tidak ada rotational latency. Bisa secara langsung read dan write.

o Flash memory ada 2 jenis NAND dan NOR. NOR beroperasi seperti RAM dan memerlukan power untuk store data. NAND sifatnya non – volatile dan tidak butuh listrik untuk maintain data yang di store.

o Target disk latency :

 Database transaction log  kurang dari 5 ms. Biasanya 0 ms.

 OLTP data  kurang dari 10 ms.

(15)

Timothy Orvin Edwardo – LE01 – 1901456205

 Decision Support System (OLAP dan reporting)  Kurang dari 25 ms.

22. RAID  teknologi penyimpanan data untuk toleransi kesalahan pada media penyimpanan komputer, terutama harddisk dengan redundansi data. Berpengaruh terhadap

banyaknya disk yang dibutuhkan untuk membuat storage system dan dengan karakteristik I/O yang dibutuhkan.

Mempertimbangkan : availability, cost, space, performance. Jenis RAID antara lain :

 RAID 0  stripping tanpa parity dan mirroring.

 RAID 1  mirroring tanpa stripping atau parity (2 disks).

 RAID 10  stripping dengan mirroring (minimum 4 disks, dan RAID ini merupakan rekomendasi).

 RAID 5  stripping dengan parity (minimum 3 disks, dan RAID ini disarankan untuk alternatif).

 RAID 6  stripping dengan double parity (minimum 4 disks).

23. Optimisasi aplikasi bertujuan untuk :

 Meminimalkan waktu respon untuk setiap SQL statement dan meningkatkan system throughput.

 Memaksimalkan scalability untuk keseluruhan database server dengan mengurangi network traffic latency.

 Mengoptimisasi disk I/O throughput dan CPU processing time.

24. Cara optimisasi aplikasi :

 Mendefinisikan workload  test environment harus di

setup yang cocok dengan sistem produksi dan menggunakan load generator.

(16)

Timothy Orvin Edwardo – LE01 – 1901456205

 SQL Server I/O process model

o Windows server I/O manager mengatur keseluruhan I/O dengan metode asinkronus.

o SQL Server storage engine manage ketika disk I/O operations dijalankan, bagaimana

dijalankannya, banyaknya operasi yang dijalankan.

o Tugas database engine adalah mitigasi cost I/O operations sebisa mungkin.

o In – memory OLTP merepresentasikan major advance SQL Server untuk optimisasi server, termasuk bagaimana code dijalankan dan berkaitan dengan I/O.

 Peletakan file database

 SQL server store database di operating system file seperti physical disk atau logical unit number.

 Penempatan adalah hal kritis terhadap I/O performance dan DBMS.

 Menggunakan dedicated I/O subsystem yang cepat untuk database file memungkinkan untuk jalan dengan lebih efisien.

 Untuk memaksimalkan performa, pastikan individual data dan log file berada terpisah dengan physical LUN.

 Bisa mereferensikan data yang jarang diupdate ke read – only file group.

 Pertimbangan tempdb

 Memiliki impact yang besar karena merupakan database yang paling dinamis dan haruslah yang tercepat.

(17)

Timothy Orvin Edwardo – LE01 – 1901456205

 Digunakan untuk store user object dan internal object yang punya 2 version store.

 Version store  kumpulan data pages yang hold data rows untuk support fitur tertentu yang menggunakan row versioning. Ada 2 jenis

o Yang digenerate data modification transaction menggunakan snapshot atau read commited row versioning isolated level.

o Yang menggunakan fitur seperti online index operation, MARS, dan AFTER triggers.

 Tempdb menambah support untuk fitur large set yang membuat user, internal object atau version store.

 Menempatkan tempdb di I/O subsystems yang

berdedikasi dan cepat bisa memastikan perfroma yang baik.

 Lakukan :

o Pertimbangan ukuran tempdb.

o Memonitor tempdb untuk mengetahui yang mana yang affect terbanyak.

o Rebuild index pada tabel terbesar ketika monitor tempdb.

25. 3 alokasi penting ketika berkaitan dengan database dan tempdb :

 Page free space  track halaman yang telah dialokasi dan status halaman.

 Global allocation map  track dedicated extent dengan 1 bit per extent.

 Shared GAM  track mixed extent dengan 1 bit per extent.

(18)

Timothy Orvin Edwardo – LE01 – 1901456205

 Index allocation map  track semua pages yang dialokasi untuk 1 object tertentu.

26. 2 proses berdasarkan algoritma yang digunakan untuk alokasi space SQL Server data files :

 Proportional fill  bagaimana data ditulis ke setiap file dalam multi-file filegroup berdasarkan proporsi free space setiap file.

 Round Robin  pola dimana filegroup baru dipilih dalam multi-file filegroup ketika file memenuhi proportional fill limit sebelum growth operation dibutuhkan.

27. Partisi  break up object besar (contoh : tabel) ke bagian – bagian kecil yang lebih mudah di manage. Row merupakan unit dimana partisi berdasar. Hal ini dilakukan agar pencarian data lebih cepat dilakukan, karena data terbagi – bagi. Prosesnya :

 Membuat fungsi partisi untuk mendefinisikan strategi penempatan data.

 Membuat filegroups untuk mendukung fungsi partisi.

 Membuat skema partisi untuk mendefinisikan strategi distribusi physical data.

 Membuat tabel / index di fungsi partisi.

 Menguji query plan untuk melihat partisi yang diakses sebagai verifikasi yang hanya sebagian (subset) data yang direturn.

28. Beberapa proses yang berefek pada partisi :

 Database backup dan strategi restore.

 Strategi maintenance index.

 Strategi management data.

(19)

Timothy Orvin Edwardo – LE01 – 1901456205

 End – user database workload.

 Concurrency  parallel partition query processing dan table partition lockand.

 Distribusi yang diperluas atau isolated database workloads menggunakan filegroups.

29. Data compression bisa dilakukan pada database object berikut :

 Tabel (kecuali tabel sistem).

 Clustered index

 Non – clustered index

 Index view

 Tabel yang telah dipartisi dan index dimana setiap partisi bisa saja memiliki setting compression yang berbeda.

30. Yang diperhatikan pada data compression :

 Row compression  berefek pada data di row level dan mengubah sepenunya internal structure.

 Page compression  row compression ditambah dengan :

 Prefix compression  untuk setiap page dan kolom, nilai prefix ditentukan oleh yang bisa digunakan untuk mengurangi storage requirement. Nilai diubah oleh reference ke prefix yang di store ke CI.

(20)

Timothy Orvin Edwardo – LE01 – 1901456205

 Dictionary compression  melibatkan pencarian value yang berulang dimana saja dalam page yang kemudian diubah oleh reference ke CI.

 Operasi partisi tabel :

o Splitting partition  kedua partisi inherit setting original partition.

o Merging partition  resultan partisi inherit compression setting di destinasi partisi.

o Switching partition  compression setting pada partisi dan tabel yang akan di switch harus

match.

o Dropping partition  tabel tetap di compression setting.

 Estimating Space Savings  memprioritaskan pengizinan data compression dimana kita bisa evaluasi perkiraan compression cost saving.

 Memonitor data compression  access method object yang ditemukan di windows performance monitor :

 Page compression attemps/sec  menghitung banyak page compression attemps per detik.

 Page compressed/sec  menghitung banyak page yang telah dikompres per detik.

 Pertimbangan data compression :

 Enable / disable clustered index compression bisa rebuild semua non clustered index.

 Data compression tidak dapat dilakukan pada sparse column.

 LOB yang out – of – row tidak di kompres.

 Nonleaf pages dalam index dikompres hanya melalui row compression.

(21)

Timothy Orvin Edwardo – LE01 – 1901456205

 Nonclustered index tidak inherit compression setting pada tabel.

 Ketika drop clustered index, tabel tetap pada compression setting.

 Membuat clustered index inherit compression setting pada tabel.

31. Ada 2 tipe scheduler di SQL Server :

 Hidden  digunakan oleh internal SQL Server process.

 Visible  digunakan untuk user queries dan user process.

 Windows menggunakan preemptive scheduling, sedangkan SQLOS menggunakan non – preemptive scheduling.

32. Hot add CPU :

33. Cache coherency :

 Cache coherency  hanya 1 prosesor yang bisa update data pada sekali waktu. Semua prosesor yang telah copy di cache mereka bisa memiliki sebuah local copy yang invalidated dan harus di reload.

 Untuk mengatur konfigurasi prosesor pada SQL Server proses bisa menggunakan affinity mask.

 Context switch  ketika windows kernel transfer control prosesor dari proses yang dieksekusi ke yang lain yang ready ke run.

(22)

Timothy Orvin Edwardo – LE01 – 1901456205

 Housekeeping  maintenance keeping contect atau kumpulan prosesor meregister nilai dan data lain yang mendeskripsikan proses rate.

 Previleged mode  mode proses untuk komponen OS dan hardware – manipulating drivers. Mengizinkan direct access ke hardware dan semua memori.

 Fiber  unit yang bisa dieksekusi yang lebih ringan dari thread dan beroperasi dalam konteks user mode.

34. Parallelism :

 Maximal degree of parallelism (MAXDOP)  biasanya di set sebanyak jumlah cores di 1 NUME node. Defaultnya adalah 0 (mengizinkan mempertimbangkan semua prosesor ketika membuat plan eksekusi).

 Cost threshold for parallelism  hal ini bergantung pada optimisasi SQL Server, agar lebih murah SQL Server

optimizer bisa generate parallel plan untuk compare yang termurah.

35. Pertimbangan dan perluasan memori :

 Buffer pool extension  main memory akan extends ke L1 buffer pool, dan BPE akan extends ke L2 buffer pool.

 Tuning SQL Server memory  menggunakan konsep memory node, dimana 1 hirarki antara memori dan CPU.

Ada memory node untuk setiap set CPU ke memori lokal dan kontennya ke CPU.

 Data locality  konsep memiliki semua data ke prosesor dalam local NUMA node ketika processing request.

 Near memory  method yang disarankan, karena diakses oleh prosesor pada NUMA node yang sama.

(23)

Timothy Orvin Edwardo – LE01 – 1901456205

 Far memory  request harus meninggalkan NUMA node dan traverse sistem interconnect crossbar untuk mendapat NUMA node yang memiliki informasi yang dibutuhkan didalam memorinya.

 Max server memory  SQL Server menggunakan semua memori yang tersedia jika unchecked. Setting ini

direkomendasikan.

36. Resource governor :

 Resource pool  resource fisik SQL Server. Pada saat instalasi ada 2 : internal dan default.

 Workload groups  container untuk sesi yang sama terkait aturan klasifikasi dan apply policy ke setiap sesi dalam grup.

Bisa dibuat user defined dengan menggunakan CREATE WORKLOAD GROUP atau mengubah settingan yang sudah ada pakai ALTER WORKLOAD GROUP. Yang bisa diatur antara lain : maximum memory allocation / request, maximum cpu time / request, minimum / maximum IOPS per request per second.

 Classification  hanya 1 fungsi klasifikasi user defined yang bisa dirancang sebagai classifier. Bisa digunakan sebagai default workload groups.

 Memonitor resource governor  bisa menggunakan SQL Server resource pool (untuk resource – specific statistic) atau SQL Server workload pool (untuk workload – specific statistic).

 Menggunakan resource governor pada SSMS  ada di object explorer, di bagian management node.

37. Basic monitoring tools :

(24)

Timothy Orvin Edwardo – LE01 – 1901456205

 Performance monitor  track resource yang digunakan Microsoft OS.

 Extended events  arsitektur yang bisa dikonfigurasi untuk collect informasi ke isu troubleshoot dengan SQL Server.

 SQL Server profiler  aplikasi grafikal yang bisa capture trace event yang terjadi di SQL server. Disini menambahkan kapabilitas ke informasi trace dan menggunakan semua event – capturing functionality pada SQL trace.

 SQL trace  T – SQL stored procedure untuk invoke SQL Server trace tanpa memulai SQL profiler application. Disini menspesifikasikan event dan store ke dalam file.

 Default trace  trace yang ringan yang menjalankan loop berkelanjutan dan capture sebagian kecil key database dan server event.

 Activity monitor :

 DMV dan DMF  return informasi server state yang bisa digunakan untuk monitor health dari server instance, diagnosa masalah, tune performance.

 System stored procedure  informasi untuk SQL Server monitoring.

 Standard reports  melihat apa yang terjadi pada SQL Server tanpa menyelami DMV, Xevent, dan default trace.

 System center advisor  analisis SQL Server dan memberikan feedback pada konfigurasi dan operasi melalui kumpulan best practices yang diterima untuk konfigurasi dan operasi SQL Server.

38. Performance monitor :

 CPU resources counter

(25)

Timothy Orvin Edwardo – LE01 – 1901456205

 Object : Processor – Counter : % Processor – time  menghitung persentase prosesor sibuk.

 Object : System – Counter : Processor queue length  ukuran berapa banyak thread di ready state pada saat waiting.

 Object : Processor – Counter : % Previleged – time  mengindikasi persentase sampel interval ketika

eksekusi di kernel mode.

 Object : Process – Counter : % Processor time – Instance:sqlservr  menghitung persentase sampel interval selama SQL Server menggunakan prosesor yang tersedia.

 Object: Process - Counter: % User Time - Instance:

sqlservr  menghitung persentase sampel yang SQL Server jalankan di user mode.

 Disk activity

 Throughput, IOPS  berapa I/O per detik yang storage subsystem bisa deliver.

 Throughput, MBPS  berapa MBPS yang I/O subsystem bisa deliver.

 Latency  berapa lama waktu yang dibutuhkan I/O request.

 Queue depth  berapa banyak I/O request yang menunggu.

 Memory usage  hal yang paling kritis pada SQL Server performance karena tanpa memori yang cukup, SQL Server dipaksa untuk tetap membaca dan menulis data ke disk untuk memenuhi query.

39. Fungsi DMV dan DMF :

(26)

Timothy Orvin Edwardo – LE01 – 1901456205

 Melihat apa yang terjadi pada SQL Server  contoh : melihat running query, resource usage, yang mana yang menunggu.

 Melihat locking information

 Melihat blocking information

 Penggunaan indeks

(27)

Timothy Orvin Edwardo – LE01 – 1901456205

 Indeks not used

 Melihat query yang menunggu grant memori

(28)

Timothy Orvin Edwardo – LE01 – 1901456205

 Connected user information

 Filegroup free space

 Query plan dan query text untuk query yang berjalan

 Penggunaan memori

(29)

Timothy Orvin Edwardo – LE01 – 1901456205

 Penggunaan memori buffer pool

40. Monitoring logs :

 Aspek monitoring lainnya yang sering dilihat adalah log files yang tersedia.

 Biasanya, SQL Server dan Windows Event log dilihat melalui aplikasi berbeda, yaitu Windows Event Viewer dan SQL logs melalui text editor.

 Memonitor SQL Server Error logs  setiap event yang kita lakukan termasuk error yang terjadi dapat kita lihat di folder logs dimana MSSQSERVER berada.

 Memonitor Windows Event Log  mengandung informasi event tambahan tentang server

environment, proses lain yang beroperasi, dan informasi tambahan SQL Server proses yang tidak terekam pada SQL Server Error Log. Ada 3 event log :

(30)

Timothy Orvin Edwardo – LE01 – 1901456205

o Application event log o Security event log o System event log

41. Alasan monitor event :

 Menemukan worst performing query.

 Audit user activities.

 Identifikasi penyebab deadlock.

 Stress testing.

 Workload.

42. System Center Advisor :

 Merupakan evolusi alami dari SQL Server Best Practice Analyzer (BPA).

 Merupakan hasil dari orang yang bekerja di SQL Server dan SQL teams yang bekerja pada Product Support Service untuk deliver tool yang efektif untuk validasi SQL Server

configuration.

 Merupakan cloud based configuration monitoring tool yang bisa monitor banyak server dan menyediakan analisis online tentang hasilnya.

43. Query processing :

(31)

Timothy Orvin Edwardo – LE01 – 1901456205

44. Tahapan optimisasi query :

 Generate execution plan

 Mesin query optimizer generate query plan untuk T – SQL statement.

 Query optimizer berfungsi untuk analisis solusi

berbeda pada query dan menentukan option yang cost nya lebih kecil.

 Bisa melalui graphical / text – based query plan melalui SSMS atau bisa di monitor melalui DMV dan DMF.

 Statistic

 Cardinality  keunikkan data yang ditemukan di kolom tertentu.

 High cardinality  kolom dengan value yang unik.

 Low cardinality  kolom dengan beberapa value yang sama.

 SQL 2014 Query Optimization Improvement  area yang terkena dampak :

(32)

Timothy Orvin Edwardo – LE01 – 1901456205

 Key yang ditambahkan secara descending.

 Asumsi predikat yang difilter di tabel yang sama yang punya korelasi sama.

 Asumsi predikat yang difilter di tabel berbeda adalah independen.

45. Mengidentifikasi isu SQL Query Performance Tuning :

 Memonitor performa query  bisa memonitor standard report melalui object explorer dari instance level, bisa

monitor disk usage, backup dan restore event, transactions.

 Generate query plan  showplan di query engine

mendeskripsikan setiap query. Setiap showplan memiliki informasi berbeda.

 Estimated  bisa di generate saat sebelum query dijalankan.

 Actual  memperlihatkan step yang dieksekusi dan bagaimana query dijalankan.

 Membaca query plan  pada graphical query plan, operasi logical dan physical di representasikan dengan ikon, dimana tiap ikon mengidentifikasikan tipe operasi yang dieksekusi.

46. Clustered index  indeks yang mengurutkan data pada tabel dan dapat diumpamakan seperti indeks huruf dalam kamus.

Karena disimpan dalam bentuk satu urutan, maka 1 tabel hanya bisa punya 1 clustered index.

(33)

Timothy Orvin Edwardo – LE01 – 1901456205

47. Non – clustered index  indeks yang tidak mengurutkan secara fisikal dan dapat diumpamakan seperti indeks pada buku.

Sebuah tabel bisa memiliki banyak non – clustered index. Non – clustered index berisi pointer yang menunjukkan lokasi

sesungguhnya dari data yang dicari saat melakukan pencarian data. Pencarian sedikit lebih lama dibanding clustered index.

48. Indeks berfungsi untuk mempercepat pencarian jika data yang tersedia jumlahnya banyak.

49. Ada beberapa operator akses data pada query plans :

 Table scan

 Pada table scan, melibatkan scan yang berurutan atau sekuensial pada keseluruhan data pages yang

merupakan milik table tersebut.

 SCAN COUNT  bisa menghitung berapa kali table diakses untuk query ini. Hal ini ditampilkan sebagai suatu statistic.

 LOGICAL READS  bisa menghitung berapa banyak halaman yang dibaca dari data cache. Dikarenakan menggunakan table scan, maka banyaknya logical reads adalah sama dengan banyaknya halaman yang dialokasikan untuk table ini.

(34)

Timothy Orvin Edwardo – LE01 – 1901456205

 PHYSICAL READS  mengindikasikan banyaknya halaman dari disk juga memperlihatkan O

(kompleksitas) dari code sebelumnya. Namun dalam hal ini bukan berarti tidak ada physical reads dari disk.

 READ – AHEAD READS  mengindikasikan banyaknya halaman dari physical disk yang ditempatkan di

internal data cache ketika SQL Server memperkirakan bahwa kita akan membutuhkannya untuk query

selanjutnya.

 LOB  bisa terdapat pada logical reads, physical reads, maupun read – ahead reads. Ini digunakan khusus apabila kita akan membaca large objects (contohnya : VARCHAR(MAX), XML, VARBINARY(MAX). Dalam LOB bisa menyebabkan SET STATISTIC IO melaporkan angka yang lebih besar, karena operasi retrieval LOB mungkin akan berulang.

 Clustered Index Scan

 Mengurutkan dan menyimpan data di table atau view berdasarkan key values. Ada kolom yang termasuk dalam definisi index. Hanya boleh ada 1 clustered index per table karena data hanya bisa diurutkan dalam 1 bentuk urutan.

(35)

Timothy Orvin Edwardo – LE01 – 1901456205

 Banyaknya page reads sedikit lebih banyak

dibandingkan heap table karena ukuran row lebih besar pada clustered index.

 Scan tidak menggunakan pointer di row, tetapi hanya membaca halaman yang tidak terurut.

 Ordered clustered index  scan penuh terhadap clustered index, tetapi data direturn berurut oleh clustering key.

 Non Clustered Index Scan

 Hal ini terjadi ketika nonclustered index bisa return semua field tanpa membaca actual data pages.

 Jika nonclustered index bisa digunakan untuk memenuhi sebuah query, maka disebut dengan covering index.

 Covering index berjalan lebih cepat disbanding

clustered index scan karena ukuran tiap row lebih kecil karena tidak mengandung semua field di table actual.

 Contoh : COUNT (*) query.

(36)

Timothy Orvin Edwardo – LE01 – 1901456205

 Non clustered index pada ORDERDATE. Index key

clustered dimasukkan pada setiap index row. Keyword INCLUDE akan menginstruksikan index untuk

menyimpan REVISIONNUMBER dan DUEDATE.

 Pada statistic IO bisa dilihat bahwa pada nonclustered index, logical readsnya lebih kecil. Ini dikarenakan telah mengcover query dan telah menyajikan data sejak di leaf.

 Connecting Access Operator

 Ketika membaca query plan, salah satu visual cues yang disediakan untuk troubleshoot masalah performa adalah pipe yang menghubungkan data access

operator.

 Ukuran pipe ditampilkan sebagai indicator banyaknya row yang diproses antar steps.

(37)

Timothy Orvin Edwardo – LE01 – 1901456205

 Porsi query plan memberikan easy view yang

mengindikasi dimana jumlah row yang banyak diproses dengan jumlah row yang lebih kecil pada operasi

actual.

 Jika ada perbedaan jumlah row yang diproses dan estimasinya, maka mengindikasikan bahwa statistic telah out of date.

50. JOIN Operator :

 Nested loop atau loop join

 Menggunakan satu join input sebagai outer input table dan inner input table.

 Outer loop konsumsi outer input table row per row.

 Inner loop dieksekusi satu kali untuk setiap outer row, mencari matching row dengan inner input tablenya.

(38)

Timothy Orvin Edwardo – LE01 – 1901456205

 Row dibaca oleh table CUSTOMER, kemudian matching row ditemukan di SALESORDERHEADER. Dikarenakan hanya 2 customer records yang dibutuhkan, maka SALESORDERHEADER hanya akan dibaca dua kali.

 Nested loop lebih efektif jika outer input lebih kecil dan inner inputnya terurut dan besar.

 Pada performance tuning, kita harus validasi bahwa tipe join yang benar yang paling efisien untuk return rows. Selain itu juga verifikasi nested loop join memiliki index yang valid untuk perform seek di inner query dan tidak menjalankan table scan atau index scan.

 Hash join

 Memiliki 2 input : build input (outer table) dan probe input (inner table).

 Query optimizer assign role ini sehingga build input lebih kecil.

 Hash aggregate physical operator  melakukan penghapusan duplikat dan grouping seperti SUM,

(39)

Timothy Orvin Edwardo – LE01 – 1901456205

GROUP BY. Modifikasi ini hanya menggunakan satu input untuk build dan probe roles.

 Hash join yang pertama scan hash values untuk keseluruhan build input, kemudian membuat hash table. Setelah itu diikuti oleh probe phase, dimana seluruh probe input discan satu baris 1x. Untuk setiap probe rows, hash key dihitung dan yang

berkorespondensi discan kemudian yang cocok dihasilkan. Ini disebut juga dengan in-memory hash join. Secara default SQL Server menjalankan in memory hash join.

 Recursive hash join  ketika hash table besar sehingga harus dipartisi ke beberapa step dan beberapa level pada setiap step. Namun, ini bisa mengurangi

performa server.

 Merge join

(40)

Timothy Orvin Edwardo – LE01 – 1901456205

 Berdasarkan input untuk mencocokkan records dari 2 tabel dan efisien ketika kedua input terurut dengan cara yang sama.

 Kedua table memiliki clustered index di SalesOrderID, sehingga optimizer memilih merge join.

 Jika optimizer memilih mengurutkan sebelum merge, maka harus diyakinkan bahwa covering index akan memproses query lebih cepat.

 Pada query ini, row yang terurut discan satu per satu dan ketika cocok pada kedua sisi, akan direturn.

 Merge join efektif apabila query match dua table besar yang punya leading value yang sama di clustered index key atau covering index yang diurutkan dengan cara yang sama.

51. Data modification query plan :

 Partition Aware Operations :

 Mempartisi table mengizinkan query processor menambah partisi index ID ke clustered index key untuk memecah table menjadi group yang lebih kecil.

(41)

Timothy Orvin Edwardo – LE01 – 1901456205

 Operator yang tersedia : o Table scan

o Index scan o Index seek o Insert o Update o Delete o Merge

 Parallel query execution untuk object yang dipartisi :

 SQL Server menggunakan konsep parallel untuk

meningkatkan performa query dalam mengakses table partisi.

 Jika banyak thread kurang dari banyak partisi, query processor assign setiap thread ke partisi berbeda.

 Jika banyak thread sama dengan banyak partisi, query processor assign satu thread ke setiap partisi.

 Jika banyak partisi kurang dari banyak thread, query processor assign lebih dari satu thread ke setiap partisi.

(42)

Timothy Orvin Edwardo – LE01 – 1901456205

52. Cara mencapai query performance yang baik pada table yang dipartisi :

 Gunakan keuntungan multicore processor  SQL Server bisa menggunakan untuk parallel query processing.

 Lebih memperhatikan pada merencanakan partisi table  memastikan impact dari query akan meminimalkan poor performance.

 Best partitioning untuk data maintenance belum tentu yang terbaik untuk partitioning untuk query.

 Validasi nonclustered partitioned index performance  pastikan index bisa dipartisi aligned.

 Pastikan memiliki clustered index di table partisi sehingga query processor bisa mengambil keuntungan dari optimisasi query scanning.

 Jika aggregate banyak data dari table partisi, pastikan memiliki tempdb space yang cukup pada server.

53. Menggabungkan hal – hal yang berfungsi dalam performance tuning :

 Performance tuning  proses evaluasi performa sistem dan query menggunakan tools, query plan, dan DMV.

 Key success factor  baselining performance metrics dan mengukur perubahan pada performa setelah ada perubahan sistem atau code.

 Memiliki pengetahuan tentang performance metric di sistem, dari CPU utilization hingga I/O dan memory utilization.

Referensi

Dokumen terkait

Penelitian ini menghasilkan suatu perbandingan antara metode antrian Per Connection Queue (PCQ) dan Hierarchical Token Bucket (HTB) menggunakan router Mikrotik yang

1. Siswa membaca bacaan mengenai unsur-unsur iklan yang disajikan guru di slide powerpoint. Selanjutnya siswa dan guru melakukan tanya jawab mengenai unsur- unsur iklan.

Dengan demikian, hasil pengujian ini tidak sesuai dengan teori legitimasi yang menyatakan bahwa semakin lama umur suatu perusahaan atau semakin lama suatu perusahaan berdiri

pada setiap kedalaman tanah. Kandungan bahan organik tertinggi terdapat pada horison teratas dan berangsur-angsur menurun seiring dengan kedalaman tanah, berbeda

Hasil musyawarah yang merupakan kesepakatan konsumen dan pelaku usaha yang bersengketa dibuat dalam bentuk perjanjian tertulis yang ditanda tangani oleh para pihak

Lain hal jika rata-rata skor tes awal kelompok kontrol berbeda secara signifikan dengan rata-rata skor tes awal kelompok eksperimen, maka harus dilakukan pengolahan data

Modul LCD berukuran 16 karakter x 2 baris dengan fasilitas backlighting memiliki 16 pin yang terdiri dari 8 jalur data, 3 jalur kontrol dan jalur-jalur catu daya,