Ringkasan UTS Database...

42
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.

Transcript of Ringkasan UTS Database...

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.

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.

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.

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.

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 :

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 :

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 :

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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 :

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

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 :

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

Timothy Orvin Edwardo – LE01 – 1901456205

Indeks not used

Melihat query yang menunggu grant memori

Timothy Orvin Edwardo – LE01 – 1901456205

Connected user information

Filegroup free space

Query plan dan query text untuk query yang berjalan

Penggunaan memori

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 :

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 :

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 :

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.

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.

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.

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.

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.

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.

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,

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

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.

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.

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.