basis data(building and performace)

1
Building Fast Performance
Database Model (1)
WRITING EFFICIENT QUERY
select name from author
2
is faster than
select * from author
SIMPLE ALIASES
l tA Ptitl
3
select A.name, P.title
from author as A inner join publication as P …
much easier to maintain than
select author.name, publication.title
from author inner join publication …
WHERE CLAUSES
4
􀃖 Try to use primary key or indexed field
select * from mhs where npm = “2006110001”
is faster than
select * from mahasiswa where nama = “hasan basri”
WHERE CLAUSES
P f !
5
􀂅 Prevent to use of <>, != operator
􀂅 Will query all records (ignore indexing)
select * from personel where resign_year < 2010
is faster than
select * from personel where resign_year <> 2010
INDEXING
􀂅 Dilakukan dengan perintah CREATE INDEX
6
g p
􀂅 Contoh: CREATE INDEX namaidx ON mhs(nama)
􀂅 Tips :
􀂆 Buatlah index untuk fields yang sering digunakan dalam perintah
where (filter)
􀂆 Table statis dan berukuran kecil 􀃖 tidak perlu index
􀂆 Table besar dan sering diakses keseluruhan 􀃖 tidak perlu index
SUBQUERY
􀂅 Subquery (disebut juga subselect atau nested query) adalah
7
q y( j g q y)
bentuk query yang terletak dalam query yang lain
􀂅 Jenis subquery
􀂆 Single‐row subquery
(subquery yang menghasilkan output hanya satu baris, biasanya
melibatkan fungsi agregat seperti max, min)
􀂆 Multiple‐row subquery
(subquery yang menghasilkan output lebih dari satu baris, biasanya
melibatkan operator in, exists, any, some, all)
CONTOH SUBQUERY
􀂅 select nip, gaji
8
from pegawai
where gaji =
(select max(gaji) from pegawai)
􀂅 select kodeplg, namaplg, alamat
from pelanggan
where kodeplg in
(select distinct kodeplg from orders
where year(tglorder) = 2007)
VIEW
􀂅 Virtual table
9
􀂆 Table yang muncul sebagai hasil query
􀂆 Tidak disimpan secara fisik
􀂆 Dapat digunakan sebagai sumber data untuk query selanjutnya
􀂅 Dibuat dengan perintah CREATE VIEW
CONTOH VIEW
􀂅 Pembuatan view (1x)
10
CREATE VIEW sales97 AS
SELECT * from sales where year(salesdate) = “1997”
􀂅 Penggunaan view dalam query (bisa berulang‐ulang)
SELECT invoice_no from sales97 WHERE customer_id=“002”
TIPS TO TUNE SQL JOIN
􀂅 Minimize the number of tables in a join
11
􀂅 Use indexes, except for very small table
􀂅 Use nested query (subquery)
􀂅 Use view

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s