Sunday - May 18, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 4 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Apa itu CMS (Content Management System)? (5785)

»

Situs Delphi Basics, Alternatif Referensi Online Borland Delphi Untuk Programmer (4700)

»

AJAX - Asynchronous JavaScript and XML (4318)

»

Konfigurasi Transparent Proxy (6080)

»

Mengenal Mekanisme Looping Pada PHP (3190)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
Page Split pada Database SQL Server

Author: Ariesa Rahardjo
Published: March 04, 2006
Visits: 1270 - Category:
SQL Server Administration
 
     
 

Bagi Anda yang belum mengetahui apa itu page split, maka mari kita simak penjelasan singkat mengenai hal tersebut. Ketika Anda menyimpan data ke database dengan perintah INSERT, atau pada kasus tertentu menggunakan UPDATE, maka bisa jadi ruangan yang tersedia bagi data yang baru di-INSERT atau UPDATE tadi tidak cukup di data page. Pada kasus ini, SQL Server harus memindahkan beberapa data yang tidak cukup disimpan pada data page saat itu ke data page lain yang baru. Dengan kejadian tersebut, SQL Server tidak hanya menghadapi masalah I/O yang normal, tetapi juga harus memindahkan data dan juga melakukan update yang diperlukan terhadap index-index yang berhubungan. Ini akan mengakibatkan banyaknya proses I/O yang terjadi.

Page split pada database memang hal yang normal terjadi, tetapi jika begitu banyak page split pada database, maka performa SQL Server akan menurun dan Anda harus mengambil tindakan yang tepat untuk mengurangi terjadinya page split.

Jadi seberapa banyak page split bisa dikatakan "sering terjadi"? Seperti yang sering ditanyakan pada forum-forum SQL Server pada masalah performance tuning, maka jawabannya adalah "tergantung". Jumlah dari page split akan sangat bergantung pada beberapa faktor berikut ini.

  • Jumlah user
  • Level dari aktivitas user
  • Apakah aktivitas ke database lebih sering menulis atau membaca, atau kombinasi keduanya
  • Penggunaan fillfactor pada index tabel
  • Seberapa sering Anda me-rebuild index
  • Apakah primary key adalah suatu clustered index
  • Performa dari I/O subsystem

Salah satu cara untuk mengukur aktivitas page split pada SQL Server adalah dengan menggunakan aplikasi Performance Monitor dan silakan Anda lihat pada bagian SQLServer:Access Methods: Page Splits/sec counter.

Sebagai contoh, misalkan suatu sistem SQL Server yang memiliki 75-100 user yang aktif dan page split per second kurang dari 1 dengan puncaknya mencapai 10 page split per second.

Contoh lainnya misalnya suatu sistem SQL Server yang memiliki sekitar 500 user yang aktif dan mengalami page split per second sekitar 100 dan bisa mencapai puncaknya pada angka 800 page split per second.

Kita lihat kembali kedua contoh di atas. Contoh pertama nampaknya tidak terlalu mengalami masalah page split yang parah dan itu adalah hal yang normal. Pada contoh kedua nampaknya terjadi page split yang sangat tinggi dan ini berkontribusi pada performa yang kurang optimal. Jika ada 100 page split per second, maka disk subsystem harus melakukan kerja keras untuk memindahkan record ke data page yang baru dan melakukan update terhadap index-index yang relevan.

Idealnya adalah Anda memiliki page split per second seminimal mungkin. Langkah awal Anda adalah dengan memonitor SQLServer:Access Methods:Page Splits/sec counter pada saat-saat database sibuk dan lihat hasilnya. Pada saat yang sama, monitor pula aktivitas disk I/O untuk melihat apakah Anda mengalami bottleneck. Jika di sini Anda korelasi yang kuat antara page split dan aktivitas I/O yang berlebihan maka dapat disimpulkan Anda telah mengalami masalah page split yang serius. Aktivitas disk I/O bisa Anda lihat melalui PhysicalDisk: % Disk Time dan PhysicalDisk: Average Disk Queue Length. Lihatlah pada Performance Monitor.

Jika Anda menemui bahwa sistem Anda mengalami page split yang terlalu tinggi, maka berikut ini adalah langkah-langkah yang bisa diambil untuk mengatasinya:

  • Tingkatkan fillfactor pada index Anda.
    Dengan meningkatkan fillfactor pada index Anda, maka sebenarnya Anda telah melakukan peningkatan jumlah ruang kosong pada setiap data page. Dengan lebih banyak ruang kosong yang ada, maka terjadinya page split akan lebih sedikit. Di sisi lain, jika Anda terlalu banyak memiliki ruang kosong pada data page, maka dapat juga mengganggu performa, karena itu berarti semakin sedikit data yang disimpan pada data page, yang artinya akan terjadi lebih banyak disk I/O activity untuk membaca tabel. Anda sebaiknya melakukan eksperimen untuk menentukan fillfactor yang pas.
  • Rebuild index sesering mungkin.
    Seiring dengan berjalannya waktu, ruang kosong yang telah diciptakan oleh fillfactor akan digunakan juga dan page split juga akan sering terjadi. Setiap kali Anda melakukan rebuild index, maka ruang kosong hasil fillfactor tadi akan diperbaharui, dan ini berarti akan menimbulkan lebih banyak ruang bagi data dan page split akan berkurang.
  • Tambahkan clustered index pada primary key.
    Dengan melakukan hal ini, maka Anda telah membunuh page split secara keseluruhan, karena semua record baru akan ditambahkan pada bagian akhir dari tabel. Tapi lakukan hal ini selama Anda mengerti bahwa suatu clustered index pada primary key merupakan pilihan terbaik bagi Anda terhadap masalah query performance.
  • Dapatkan I/O subsystem yang lebih baik.
    Intinya semakin cepat hardware Anda, maka semakin kecil isu page split yang dirasakan.

Referensi

  • sql-server-performance.com

Demikian tulisan singkat mengenai page split pada SQL Server dan berbagai cara untuk menguranginya. Semoga berguna bagi Anda semuanya. Jika ada komentar atau saran bisa dikirimkan melalui ariesa.rahardjo@gmail.com. Untuk membaca tulisan menarik lainnya silakan menuju ke situs Sony AK Knowledge Center dengan alamat di www.sony-ak.com.

Terima kasih.




 Recommended articles
 

»

Resign dengan Baik dan Benar (1785)

»

Kunci Utama Sukses pada Bisnis Dunia Maya (3230)

»

Penghargaan Bagi Mereka yang Mau Berbagi (1872)

»

Knowledge Management dan Obyek Wisata (1690)

»

Tips MySQL: Menggabungkan String dengan Fungsi CONCAT() dan CONCAT_WS() (1819)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com