8:00 AM
1
Paging Query

Hey Gwener's, What's Up!
Sudahkan sobat menggunakan salah satu fitur terbaru dari SQL Server 2012 ini?. Ya, Paging merupakan suatu metoda manipulasi data yang efektif dalam proses reporting. Jika suatu tabel database memiliki ribuan bahkan jutaan data pasti akan membutuhkan waktu yang lumayan lama untuk meretrive semua data tersebut. Bahkan impactnya juga akan berdampak pada aplikasi yang sedang sobat gunakan, Karena performancenya menjadi lambat. Oleh karena itu konsep paging ini muncul untuk lebih mengefektifkan performance. Karena tidak munkin data ribuan tersebut ditampilkan dalam suatu waktu, ini justru akan memperburuh dari sisi tampilan/interface yang dibuat. Nah, dengan membilahnya menjadi beberapa bagian tentu ini akan juah lebih efektif.
Berdasarkan pengalaman yang saya lakukan terjadi perbedaan besar antar SQL server 2008 dengan SQL server 2012 yang kini telah hadir. Dari sisi fungsi paging kini performancenya jauh lebih baik. Sebagai informasi saja. Berikut contoh query yang bisa sobat gunakan untuk paging. Dilihat dari strukturnya jauh berbeda cara query paging SQL server 2008 dengan SQL Server 2012. Meskipun cara lama masih bisa diterapkan pada versi terbaru ini. Namun performance yang diberikan pada SQL Server 2012 jauh lebih baik
--SQL 2005/2008 Paging Query
DECLARE @Start INT
DECLARE @End INT
SELECT @Start = 100,@End = 300;
  
WITH EmployeePage AS
 (SELECT FirstName,  LastName
  ROW_NUMBER() OVER (ORDER BY FirstName) AS RowNumber
  FROM EmployeeDB)
SELECT * FROM EmployeePage
 WHERE RowNumber > @Start AND RowNumber <= @End
GO
Sedangkan pada SQL Server 2012 sobat bisa melakukan dengan cara yang lebih mudah. Terlebih lagi dalam suatu query paging sobat juga bisa langsung mendapatkan total keseluruhan data menggunakan Count(*) Over(), Seperti contoh query paging dibawah ini.
--SQL SERVER 2012
SELECT FirstName, LastName, Overall_Count = COUNT(*) OVER() FROM EmployeeDB
ORDER BY FirstName
OFFSET 100 ROWS FETCH NEXT 200 ROWS ONLY;

Hasil SQL Profiler

Table berikut berisi perbandingan performance dengan melakukan queries diatas sebanyak 10 kali di dapat data dari SQL Profiler.
Query First Page
Version CPU (ms) Reads Writes Duration
2000 328 24427 444 327
2005/2008 Derived 125 9242 0 178
2005/2008 CTE 127 9242 0 173
2012 46 8733 0 44
Query Middle Page
Version CPU (ms) Reads Writes Duration
2000 312 24658 444 313
2005/2008 Derived 157 9472 0 173
2005/2008 CTE 156 9472 0 175
2012 125 8963 0 135
Inilah salah satu kecanggihan dari SQL Server 2012. Tahukah sobat, ternyata versi SQL server kini juga hadir dengan versi LocalDB. SQLLocalDB tidak memerlukan server bisa digunakan pada Local PC dengan spec standar. Mau tau informasi ini, baca saja disini Menggunakan SQL LocalDB v11.0 untuk proses development. Kelebihan lain SQL LocalDB ini sobat juga bisa memanipulasi instancenya dengan membuat berbagai macam instance. Namun sifatnya masih private dan hanya bisa digunakan pada local PC saja. Untuk membuat instance ini sobat bisa membaca artikel berikut Cara membuat instance baru pada SQLLocalDB

1 comments: