0% menganggap dokumen ini bermanfaat (0 suara)
15 tayangan5 halaman

Analisis dan Optimasi Query SQL

Dokumen ini membahas analisis desain query SQL untuk meningkatkan efisiensi dalam mengambil data dari tabel Sales. Pertama, query menggunakan LIKE untuk mencari nama yang mengandung 'Ice', kemudian dioptimalkan dengan menggunakan kondisi >= dan <. Selanjutnya, dokumen juga mencakup pembuatan dan penghapusan Non Clustered Index pada kolom OrderDate serta perbandingan efisiensi antara penggunaan fungsi DATEPART dan perbandingan langsung pada kolom DATETIME.

Diunggah oleh

Alif F
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
15 tayangan5 halaman

Analisis dan Optimasi Query SQL

Dokumen ini membahas analisis desain query SQL untuk meningkatkan efisiensi dalam mengambil data dari tabel Sales. Pertama, query menggunakan LIKE untuk mencari nama yang mengandung 'Ice', kemudian dioptimalkan dengan menggunakan kondisi >= dan <. Selanjutnya, dokumen juga mencakup pembuatan dan penghapusan Non Clustered Index pada kolom OrderDate serta perbandingan efisiensi antara penggunaan fungsi DATEPART dan perbandingan langsung pada kolom DATETIME.

Diunggah oleh

Alif F
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Muhammad Alif Fadhillah

0320240043
Mi—1a
Query Design Analysis

Exercise : Membuat Query Efesien


Query SQL dan Output

1. Buatlah query SELECT dari table [Link] dengan kolom name yang memiliki
kata “Ice”.
a. Tulis query dengan menggunakan LIKE
SELECT *
FROM [Link]
WHERE Name LIKE '%Ice%'

b. Analisa Execution Plan, detail dan STATISTICS.


SET STATISTICS IO ON;
SET STATISTICS TIME ON;
SELECT *
FROM [Link]
WHERE Name LIKE '%Ice%'
SET STATISTICS IO OFF;
SET STATISTICS TIME OFF;
c. Buat ulang query SQL sehingga menjadi lebih efisien, sertakan Execution Plan, Detail dan
STATISTICS pada query. Analisa dan bandingkan dengan query sebelumnya.
Petunjuk: Gunakan kondisi >= dan < untuk menggantikan operator LIKE
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
SELECT *
FROM [Link]
WHERE Name >= 'Ice' AND Name < 'Icf'
SET STATISTICS IO OFF;
SET STATISTICS TIME OFF;
2. Perhatikan table [Link], kali ini kita akan mencoba menampilkan
semua baris
dari [Link] dengan OrderDate di bulan Juni tahun 2011. Dalam latihan
ini, dapat menggunakan fungsi DATEPART, hal ini dapat mencegah optimizer menggunakan
index yang ada pada kolom.

a. Buat Non Clustered Index dengan nama NCI_SalesOrderHeader_OrderDate pada


kolom OrderDate di table [Link]. Kita lihat apa yang akan terjadi jika
kolom terdapat Non Clustered Index
CREATE NONCLUSTERED INDEX NCI_SalesOrderHeader_OrderDate
ON [Link](OrderDate);

b. Buatlah query yang menampilkan semua baris dari [Link] dengan


kolom OrderDate dibulan Juni dan tahun 2011
SELECT *
FROM [Link]
WHERE DATEPART(MONTH, OrderDate) = 6 AND DATEPART(YEAR, OrderDate) = 2011;
c. Printscreen Execution Plan, Detail dan STATISTICS ouput yang dihasilkan dan analisa
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
SELECT *
FROM [Link]
WHERE DATEPART(MONTH, OrderDate) = 6 AND DATEPART(YEAR, OrderDate) = 2011;
SET STATISTICS IO OFF;
SET STATISTICS TIME OFF;
d. Buat ulang query SQL sehingga menjadi lebih efisien, sertakan Execution Plan, Detail dan
STATISTICS pada query. Analisa dan bandingkan dengan query sebelumnya.
Petunjuk: Gunakan perbandingan bagian tanggal yang dapat dilakukan tanpa menerapkan
fungsi pada kolom DATETIME menggunakan operator >= dan <=
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
SELECT *
FROM [Link]
WHERE OrderDate >= '2011-06-01' AND OrderDate < '2011-07-01';
SET STATISTICS IO OFF;
SET STATISTICS TIME OFF;

e. Pastikan menghapus kembali index yang sudah dibuat.


DROP INDEX NCI_SalesOrderHeader_OrderDate ON [Link];

Anda mungkin juga menyukai