Friday, September 14, 2012

Melakukan shrink database

Tags
telah saya jelaskan diartikel sebelumnya mengapa kita perlu melakukan shrink database. shrink database digunakan untuk membersihkan log transaksi yang penuh sehingga kinerja database sql server menjadi normal. langkah langkah melakukan shrink adalah sebeagai berikut :

  1. buka sql server manajemen studio dari start->program ->sql server 2005 ->Microsoft sql server management studio

  2. silahkan login dengan username dan password untuk masuk ke database .

  3. setelah masuk , anda pilih database yang akan anda shrink kemudian klik kanan pilih task->shrink->database seperti yang ditunjukan pada gambar berikut :


  4. checklist reorganize file before releasing unused space. selecting this option may affect performance kemudian tekan ok.

  5. tunggu prosesnya hingga selesai .

Server database SQL Melambat

Tags
database adalah sebuah hal yang sangat vital sekali sebagai tempat penyimpanan data. untuk itu perlu dilakukan maintenance secara berkala terhadap server dan database itu sendiri. akses yang banyak dari user serta kinerja yang terus menerus antara client dan server database membuat log transaksi yang ada pada database semakin penuh. pada kondisi tertentu ini bisa menyebabkan kinerja atau performance menjadi lambat. untuk membersihkan log transaksi yang ada pada database sql server silahkan anda melakukan shrink database.

Wednesday, September 5, 2012

Migrasi database dari sql server ke mysql

Tags

bagi para database administrator pekerjaan migrasi database adalah sudah menjadi skill yang wajid dimiliki. kali ini saya ingin membagikan cara mudah migrasi database dari sql server ke mysql. untuk migrasi disini saya menggunakan software mssql2mysql.exe . program ini bisa di download di sini . setelah selesai di download lakukan installasi

Merubah null menjadi 0 di sql

Tags
akhirnya setelah sekian lama gak pernah posting, karena ngurusi blog yang satunya lagi di nusamandiriportal.blogspot.com . saya sempatkan lagi untuk posting di blog ini kali ini saya mau sharing tentang bagaimana merubah hasil query yang berupa null menjadi 0.

Badai senja merah diatas Kabah

Tags
saat aku berusia 8 tahun aku adalah anak yang sering menderita sakit sehingga tidak ada prestasi apapun yang kuraih bahkan untuk mendapat rangking di sekolahku, dengan kesendirianku yang jauh dari lingkungan untuk anak seusiaku aku tumbuh dengan menikmati kesendirianku karna tak mungkin aku bermain seperti anak-anak lain. suatu

Tuesday, September 4, 2012

10 Tips SQL Mempercepat Akses Database


Tip pertama ini mungkin tampak biasa, tetapi pada kenyataannya sebagian besar masalah database berasal dari design struktur tabel yang buruk.
Sebagai contoh, saya telah melihat orang-orang menyimpan informasi seperti info client dan pembayaran info di column database yang sama. Ini bukan hal yang baik bagi database system dan developer yang akan bekerja menggunakannya.
Ketika akan membuat database, selalu simpan informasi berbeda di tabel yang berbeda, gunakan standar penamaan yang jelas dan gunakan primary key.
Source: http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/

Tahu apa yang harus Anda optimasi
Jika Anda ingin mengoptimasi query tertentu, sangat penting bagi anda untuk bisa melihat informasi dari query yang anda jalankan. Gunakan perintah EXPLAIN, untuk mendapatkan informasi dari query yang anda jalankan, seperti yang ditunjukkan pada contoh di bawah ini:
EXPLAIN SELECT * FROM ref_table, table_lain WHERE ref_table.key_column = table_lain.column;
Source: http://dev.mysql.com/doc/refman/5.0/en/using-explain.html
Query tercepat… Adalah yang tidak pernah anda kirim
Setiap kali Anda mengirimkan query ke database, Anda akan menggunakan sumber daya server Anda. Inilah sebabnya, pada situs dengan traffic tinggi, hal terbaik yang dapat Anda lakukan untuk mempercepat database Anda adalah dengan cache queries.
Ada banyak solusi untuk menggunakan cache query pada server Anda. Berikut adalah salah satunya:
* AdoDB: AdoDB adalah library abstraksi database untuk PHP. Hal ini memungkinkan Anda untuk menggunakan sistem database pilihan Anda (MySQL, PostgreSQL, Interbase, dan lain sebagainya) dan dirancang untuk kecepatan. AdoDB sangat sederhana, namun memiliki sistem caching yang powerful. Dan juga, lisensi AdoDB di bawah BSD, yang berarti Anda dapat menggunakan dengan bebas pada proyek Anda. Sebuah lisensi LGPL juga tersedia untuk proyek-proyek komersial.
* Memcached: memcached adalah sistem caching memori terdistribusi yang sering dipakai untuk mempercepat website berbasis database dinamis dengan meringankan beban database.
* CSQL Cache: CSQL Cache adalah sebuah open-source data caching infrastruktur. Belum diuji secara pribadi, namun tampaknya bisa menjadi alat yang hebat.
Jangan Menampilkan yang tidak perlu
Yang sangat umum untuk mendapatkan data yang diinginkan adalah dengan menggunakan simbol *, yang akan mendapatkan semua kolom dari tabel yang diinginkan:
SELECT * FROM wp_posts;
Sebaliknya, Anda harus benar-benar hanya memilih kolom yang diinginkan, seperti ditunjukkan pada contoh di bawah ini. Pada situs yang sangat kecil dengan, katakanlah, satu pengunjung per menit, yang tidak akan membuat perbedaan. Tapi di situs seperti Tanyasaja.com, menghemat banyak proses untuk database.
SELECT judul, kutipan, pengarang FROM wp_posts;
Gunakan LIMIT
Ini sangat umum yang perlu Anda hanya mendapatkan jumlah record tertentu dari database Anda. Sebagai contoh, sebuah blog yang menampilkan sepuluh entri per halaman. Dalam hal ini, Anda harus benar-benar menggunakan parameter LIMIT, yang hanya menampilkan jumlah record yang diperlukan.
Tanpa LIMIT, jika tabel Anda memiliki 100.000 catatan berbeda, Anda akan ekstrak mereka semua, yang seharusnya tidak perlu dilakukan server Anda.
SELECT judul, kutipan, pengarang FROM wp_posts LIMIT 10;
Hindari queries dalam pengulangan
Bila menggunakan SQL bersama dengan bahasa pemrograman seperti PHP, dapat tergoda untuk menggunakan SQL queries dalam sebuah loop / pengulangan. Tapi hal ini seperti memukul database dengan query Anda.
Contoh ini menggambarkan seluruh masalah “queries dalam loop”:
foreach ($display_order as $id => $urut) (
$sql = “UPDATE SET kategori display_order = $ordinal WHERE id = $id”;
mysql_query ($sql);
)
Berikut adalah apa yang harus Anda lakukan sebagai gantinya:
UPDATE kategori
SET display_order = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END
WHERE id IN (1,2,3)
Source: http://www.karlrixon.co.uk/articles/sql/update-multiple-rows-with-different-values-and-a-single-sql-query/
Gunakan JOIN bukannya subqueries
Sebagai seorang programmer, subqueries adalah sesuatu yang Anda bisa tergoda untuk menggunakan dan menyalahgunakannya. Subqueries, seperti yang ditunjukkan di bawah ini, dapat sangat berguna:
SELECT a.id,
(SELECT MAX (created)
FROM posts
WHERE author_id = a.id)
AS latest_post FROM authors a
Meskipun subqueries berguna, mereka dapat digantikan dengan JOIN, dan yang jelas akan lebih cepat untuk mengeksekusinya.
SELECT a.id, MAX (p.created) AS latest_post
FROM authors a
INNER JOIN posts p
ON (a.id = p.author_id)
GROUP BY a.id
Source: http://20bits.com/articles/10-tips-for-optimizing-mysql-queries-that-dont-suck/
Hati-hati ketika menggunakan wildcard
Wildcard sangat berguna karena mereka dapat menggantikan satu atau lebih karakter ketika mencari data dalam database. Saya tidak mengatakan bahwa Anda tidak boleh menggunakannya, tetapi sebaliknya, anda harus menggunakannya dengan hati-hati dan tidak menggunakan wildcard penuh ketika awalan atau postfix wildcard dapat melakukan pekerjaan yang sama.
Bahkan, melakukan pencarian wildcard penuh pada satu juta record pasti akan membunuh database Anda.
# Full wildcard
SELECT * FROM table WHERE COLUMN LIKE ‘%halo%’;
# Postfix wildcard
SELECT * FROM TABEL WHERE COLUMN LIKE ‘halo%’;
# Prefix wildcard
SELECT * FROM TABEL WHERE COLUMN LIKE ‘% hello’;
Source: http://hungred.com/useful-information/ways-optimize-sql-queries/
Gunakan UNION daripada OR
Contoh berikut ini menggunakan perintah OR untuk mendapatkan hasilnya:
SELECT * FROM a, b WHERE a.p = b.q OR a.x = b.y;
Pernyataan UNION memungkinkan Anda untuk menggabungkan hasil dari 2 atau lebih queries select. Contoh berikut akan mengembalikan hasil yang sama seperti perintah di atas, tetapi akan lebih cepat:
SELECT * FROM a, b WHERE a.p = b.q
UNION
SELECT * FROM a, b WHERE a.x = b.y
Source: http://www.bcarter.com/optimsql.htm
Menggunakan index
Index database mirip seperti indeks pencarian di perpustakaan: Mereka memungkinkan database untuk menemukan informasi yang diminta lebih cepat, seperti sebuah indeks perpustakaan akan memungkinkan seorang pembaca untuk menemukan apa yang mereka cari tanpa menghabiskan waktu.
Index dapat dibuat pada satu kolom atau kombinasi kolom dalam tabel database. Sebuah index tabel adalah struktur database yang mengatur nilai-nilai dari satu atau lebih kolom dalam tabel database dalam urutan tertentu.
Pertanyaan berikut ini akan membuat index pada Model kolom dari tabel Produk. Index disebut idxModel:
CREATE INDEX idxModel ON Product (Model);
Source: http://www.sql-tutorial.com/sql-indexes-sql-tutorial/