0% found this document useful (0 votes)
29 views

File Database Import Ke Postgresql

The document describes optimizing a SQL query by providing three alternative queries and analyzing their query plans and execution times. The alternatives are: 1) Reducing the Cartesian product size by adding selective projections early 2) Changing the order of relations in the query tree 3) Leveraging that a relation's attribute is a key to reduce Cartesian products followed by joins Alternative C performed the best, executing in 8 milliseconds, by minimizing Cartesian products and using efficient joins. The optimizations reduced the query processing time compared to the original query.

Uploaded by

benny
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

File Database Import Ke Postgresql

The document describes optimizing a SQL query by providing three alternative queries and analyzing their query plans and execution times. The alternatives are: 1) Reducing the Cartesian product size by adding selective projections early 2) Changing the order of relations in the query tree 3) Leveraging that a relation's attribute is a key to reduce Cartesian products followed by joins Alternative C performed the best, executing in 8 milliseconds, by minimizing Cartesian products and using efficient joins. The optimizations reduced the query processing time compared to the original query.

Uploaded by

benny
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

File database import ke postgresql

Dvdrental.psql
https://drive.google.com/file/d/1JGDu9jE_Myu_7zYYBcKWY6F0lKR6EkeD/view?
usp=sharing

SQL Tuning dan Observasi Query Plan


Pada bagian ini peserta diberikan sebuah query yang harus dieksekusi. Berikut ini
adalah query tersebut.

1. WITH t AS (
2.     SELECT temp_cust_film_loc.*, film_lang.language_id, film_lang."name"
3.     FROM (
4.         SELECT temp_cust_film.*, city.city, city.city_id, country.country_id
5.         FROM (
6.             SELECT temp_film.*, inventory.inventory_id, rental.rental_id,
customer.customer_id, customer.first_name, customer.address_id,
customer.last_name, payment.payment_id, payment.amount, payment.payment_date
7.             FROM (
8.                 SELECT film.film_id, film.title, category."name",
COUNT(film_actor.actor_id) num_of_actors
9.                 FROM film JOIN film_actor ON film.film_id = film_actor.film_id
10.                 JOIN film_category ON film.film_id = film_category.film_id
11.                 JOIN category ON category.category_id =
film_category.category_id
12.                 GROUP BY film.film_id, category."name"
13.             ) AS temp_film, payment, inventory, rental, customer
14.             WHERE temp_film.film_id = inventory.film_id AND
15.             inventory.inventory_id = rental.inventory_id AND
16.             rental.customer_id = customer.customer_id AND
17.             customer.customer_id = payment.customer_id
18.         ) AS temp_cust_film, address, city, country
19.         WHERE address.address_id = temp_cust_film.address_id
20.         AND city.city_id = address.city_id
21.         AND country.country_id = city.country_id
22.     ) AS temp_cust_film_loc, (
23.         SELECT film.film_id, "language".language_id, "language"."name"
24.         FROM film
25.         JOIN "language" ON film.language_id = "language".language_id
26.     ) AS film_lang
27.     WHERE temp_cust_film_loc.film_id = film_lang.film_id
28.     ORDER BY temp_cust_film_loc.title
29. )
30. SELECT * FROM t;
31.  

Peserta harus membuat tiga (3) alternatif query dengan mengoptimasi query di atas.
Tiga alternatif query tersebut harus memiliki hasil yang sama dan lebih optimal dari query di
atas. Amati query plan ketiga alternatif query tersebut dengan Explain Query. Dalam
laporan, jelaskan hal-hal berikut.
 Proses eksekusi masing-masing query (query plan)
 Waktu eksekusi masing-masing query
 Analisis perbandingan ketiga query terhadap query awal dan alasan mengapa query
bersangkutan lebih optimized
Adapun arti dari perkataan “hasil yang sama” adalah: 
1. Urutan column yang dihasilkan boleh berubah.
2. Row yang dihasilkan harus sama persis dengan row hasil query di atas dan
mengikuti urutan yang sesuai dengan “ORDER BY” query di atas.

1. Proses eksekusi 
1.1 Alternatif a
Menjalankan tree ini secara langsung mula-mula membentuk sebuah file yang sangat besar
yang berisi CARTESIAN PRODUCT dari keseluruhan file-file EMPLOYEE, WORKS_ON,
dan PROJECT. Bagaimanapun juga query ini hanya memerlukan satu record dari relasi
PROJECT untuk proyek 'Aquarius' dan hanya record EMPLOYEE untuk yang tanggal
lahimya setelah '31- 12-1957'.
1.2 Alternatif b
 akan menunjukkan perbaikan query tree yang mula-mula menggunakan operasi-operasi
SELECT untuk mengurangi banyaknya tuple yang tampak dalam CARTESIAN PRODUCT.
Selanjutnya perbaikan dicapai dengan menukar posisi-posisi dari relasi-relasi EMPLOYEE
dan PROJECT dalam tree
1.3 Alternatif c
menggunakan informasi bahwa PNUMBER adalah key attribute dari relasi proyek dan oleh
sebab itu operasi SELECT pada relasi PROJECT akan mendapatkan kembali hanya sebuah
record tunggal. Selanjutnya query tree dapat diperbaiki dengan cara mengembalikan
beberapa operasi CARTESIAN PRODUCT yang diikuti dengan sebuah kondisi join dengan
sebuah operasi JOIN
2. Waktu eksekusi
2.1 Alternatif a : ( 12 msec)
2.2 Alternatif b : ( 10 msec)
2.3 Alternatif c : ( 8 msec)

3. Analisis perbandingan ketiga query terhadap query awal

You might also like