<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Trying tobe SQL geek&amp;#39;s</title><subtitle type="html" /><id>http://geeks.netindonesia.net/blogs/dkusdeni/atom.aspx</id><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/dkusdeni/default.aspx" /><link rel="self" type="application/atom+xml" href="http://geeks.netindonesia.net/blogs/dkusdeni/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2008-04-23T08:42:00Z</updated><entry><title>Apakah metode terbaik untuk mengimplemetasikan DRP (Disasters Recovery Plan) pada Microsoft SQL Server?</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/apakah-metode-terbaik-untuk-mengimplemetasikan-drp-disasters-recovery-plan-pada-microsoft-sql-server.aspx" /><id>http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/apakah-metode-terbaik-untuk-mengimplemetasikan-drp-disasters-recovery-plan-pada-microsoft-sql-server.aspx</id><published>2008-05-14T06:09:00Z</published><updated>2008-05-14T06:09:00Z</updated><content type="html">&lt;p&gt;Artikel itu saya buat dikhususkan untuk pada Database Administrator SQL
Server yang mempunyai database SQL Server dengan tingkat availability
yang sangat tinggi.&lt;br /&gt;&lt;br /&gt;Apa yang dimaksud dengan DRP (Disasters Recovery Plan)?&lt;br /&gt;Disasters
Recovery Plan, atau saya singkat DRP, adalah metode/rencana yang
diterapkan/disusun oleh kita apabila terjadi hal-hal yang tidak
diinginkan terjadi pada database atau mesin tempat menyimpan database
yang kita punyai, sehingga menimbulkan rusak atau bahkan hilangnya data
pada database kita. Hal-hal yang tidak diinginkan tersebut bisa
bermacam-macam, misalnya data terhapus, mesin tempat menyimpan database
kita rusak, kebakaran pada ruang tempat menyimpan mesin database kita,
bencana alam dan lain sebagainya.&lt;br /&gt;&lt;br /&gt;Beberapa hal yang harus diperhatikan dalam mengimplementasikan DRP&lt;br /&gt;Sebelum
kita membuat metode/rencana/langkah-langkah yang akan kita pakai dalam
mengimplementasikan DRP ini, ada beberapa hal yang harus kita
perhatikan berkaitan dengan implemetasi DRP ini. Hal-hal yang harus
diperhatikan tersebut antara lain adalah :&lt;br /&gt;Buat suatu list yang yang diurutkan berdasarkan tingkat availability dari semua database yang ada dalam mesin/server kita&lt;br /&gt;Bedakan lokasi tempat menyimpan mesin/database/backup kita dengan lokasi tempat menyimpan mesin/database yang sedang running&lt;br /&gt;Pilih
metode yang terbaik untuk metode DRP ini, disesuaikan dengan semua
resources yang ada pada kita, kalau memang kita tidak bisa mengeluarkan
anggaran tambahan untuk implemetasi DRP ini.&lt;br /&gt;Lakukan simulasi metode DRP yang telah kita tetapkan&lt;br /&gt;Lakukan pengecekkan metode DRP secara berkala&lt;br /&gt;Lakukan review terhadap metode DRP yang telah kita terapkan&lt;br /&gt;&lt;br /&gt;Metode manakah yang terbaik?&lt;br /&gt;Microsoft SQL Server menyediakan beberapa metode untuk mengimplementasikan DRP ini.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;Data Transformation Services (DTS)&lt;/b&gt;&lt;br /&gt;DTS
bisa digunakan untuk meng-copy objek-objek database dan data antara
database yang berbeda dalam server yang sama atau dengan server yang
berbeda.&lt;br /&gt;Keuntungan :&lt;br /&gt;-          Menyediakan wizard yang user friendly&lt;br /&gt;-          Menyediakan fasilitas untuk bisa membuat functionality secara programmatic&lt;br /&gt;-          Data bisa di transfer ke dalam berbagai macam format&lt;br /&gt;Kerugian :&lt;br /&gt;-          Tidak bisa dijadikan warm-standby server&lt;br /&gt;-
Memakai resources server dan bandwidth yang besar, sehingga apabila
database kita sudah berukuran besar, kemungkinan data tidak sinkron
akan besar&lt;br /&gt;Kesimpulan :&lt;br /&gt;Sangat sulit untuk maintain warm-standby
server dengan menggunakan DTS ini, karena kerugian-kerugian tersebut
diatas. Untuk itu, gunakan DTS untuk men-transfer data daripada
menjadikannya sebagai metode untuk DRP.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Bulk Copy (BCP)&lt;/b&gt;&lt;br /&gt;BCP bisa dikatakan sebagai versi primitif dari DTS, karena bisa dijalankan dengan menggunakan command line.&lt;br /&gt;Keuntungan :&lt;br /&gt;-          Efisien dan cepat dalam men-transfer data dengan ukuran yang besar&lt;br /&gt;Kerugian :&lt;br /&gt;-          Sama kerugiannya DTS&lt;br /&gt;-          Tidak bisa digunakan untuk men-transfer objek database selain tables dan views&lt;br /&gt;-          User interface yang tidak bagus&lt;br /&gt;-          Tidak ada fungsi untuk scheduling&lt;br /&gt;Kesimpulan :&lt;br /&gt;Sangat
sulit untuk maintain warm-standby server dengan menggunakan BCP ini,
karena kerugian-kerugian tersebut diatas. Untuk itu, gunakan BCP untuk
men-transfer data dengan cepat daripada menjadikannya sebagai metode
untuk DRP.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Replication&lt;/b&gt;&lt;br /&gt;Replication atau replikasi
men-transfer data dari satu database ke database lain, dan bisa juga
men-transfer dari SQL Server ke semua jenis ODBC data sources.&lt;br /&gt;Replikasi ada 3 jenis :&lt;br /&gt;-
Snapshot Replication : Transfer tables secara komplit dari satu
database ke database lain (tidak ideal untuk table yang besar)&lt;br /&gt;-          Transactional Replication : hanya men-transfer perubahan yang terjadi dalam database sumber&lt;br /&gt;-          Merge Replication : merupakan replikasi 2 arah, baik digunakan untuk data yang terdistribusi.&lt;br /&gt;Keuntungan Transactional Replication :&lt;br /&gt;-          Hanya men-transfer perubahan yang terjadi dalam database sumber&lt;br /&gt;-          Dengan rencana yang baik, perbedaan antara database sumber dan database tujuan bisa diatur waktunya&lt;br /&gt;-          Enterprise Manager menyediakan user interface yang bagus&lt;br /&gt;Kerugian :&lt;br /&gt;-          Banyak hal yang bisa menyebabkab proses replikasi ini terjadi error, diantaranya dalah :&lt;br /&gt;o       Tingkat availability dari server-server yang lain (publisher, distributor, subscriber)&lt;br /&gt;o       Availability SQL Server Agent&lt;br /&gt;o       Security permission dalam folder Snapshot&lt;br /&gt;o       Bandwidth network&lt;br /&gt;o       Hubungan antara publisher, subscriber and distributor&lt;br /&gt;o       Tempat ruang kosong dalam harddisk distribution database&lt;br /&gt;-          Semua table harus mempunya primary key&lt;br /&gt;-          Memerlukan perhatian besar dari database administrator dan harus dimonitor secara kontinyu&lt;br /&gt;-          Tidak bisa men-transfer objek database, seperti UDF (User Define Function)&lt;br /&gt;Kesimpulan :&lt;br /&gt;Selama
transactional replication bisa digunakan untuk men-transfer data antara
server yang satu dengan yang lainnya, tetap memerlukan setup dan
monitoring yang agak sedikit sulit. Sebagai pertimbangan gunakan
transactional database ini untuk maintain database reporting dengan
men-transfer dari OLTP database.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Clustering&lt;/b&gt;&lt;br /&gt;Clustering
merupakan metode terbaik untuk High Availability karena bisa otomatis
memindahkan koneksi ke server lain bila server primer mengalami
masalah. Dalam cluster aktif/pasif, server sekunder secara terus
menerus momonitor server primer, dan akan segera mengambil alih apabila
server primer mengalami masalah.&lt;br /&gt;Keuntungan :&lt;br /&gt;-          High Availability&lt;br /&gt;-          Tidak ada campur tangan user, ketika melakukam recovery server.&lt;br /&gt;Kerugian :&lt;br /&gt;-
Memerlukan SQL Server Enterprise Edition dalam tiap-tiap server,
sehingga memerlukan cost untuk licensing yang lebih mahal.&lt;br /&gt;-          Memerlukan spesifikasi hardware yang compatible untuk proses clustering.&lt;br /&gt;-          Sulit dalam mebuat konfiguransinya&lt;br /&gt;-          Memerlukan un-clustering dan re-clustering ketika akan mengimplementasikan SQL Server Service Pack.&lt;br /&gt;-          Memerlukan 2 koneksi yang dihubungkan decara fisik.&lt;br /&gt;Kesimpulan :&lt;br /&gt;Clustering
adalah merupakan salah satu cara yang terbaik untuk solusi High
Availability pada Microsoft SQL Server, tetapi bukan merupakan metode
pendekatan terbaik untuk DRP, kecuali kalau digabung dengan
metode-metode yang lain, seperti backup/restore, disk mirroring, dan
sebagainya.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Backup/Restore&lt;/b&gt;&lt;br /&gt;Backup database menyediakan
duplikat dari database yang sedang running, dan proses backup juga
tidak hanya membuat duplikat dari suatu database tetapi termasuk dengan
objek-objek yang ada dalam database tersebut.&lt;br /&gt;Keuntungan :&lt;br /&gt;-          Membuat duplikat data dan objek dalam database dengan sama persis.&lt;br /&gt;-          Bisa mudah diimplementasukan dengan menggunakan wizard Database Maintenance Plan&lt;br /&gt;-          Hanya memerlukan sedikit resources untuk monitoring, karena hanya sekali di configure&lt;br /&gt;Kerugian :&lt;br /&gt;- Ketika melakukan proses restore, database harus dalam keadaan single user mode&lt;br /&gt;Kesimpulan :&lt;br /&gt;Dengan
mengkombinasikan full database backup dan transaction log backup bisa
dijadikan salah satu alternatif sebagai metode untuk proses DRP.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Log Shipping&lt;/b&gt;&lt;br /&gt;Log
shipping ada proses pemindahan/peng-copy-an transaction log files
secara otomatis. Log Shipping memerlukan server primer dan server
sekunder yang harus kita tetapkan.&lt;br /&gt;Keuntungan :&lt;br /&gt;- Log Shipping
menyediakan kapabilitas untuk proses copy dan restore log files secara
otomatis berdasarkan durasi tertentu dan secara terus menerus.&lt;br /&gt;-          Dengan Log Shiping ini perbedaan data diantara server primer dan sekunder bisa dikurangi.&lt;br /&gt;Kerugian :&lt;br /&gt;-          Tidak tersedia pada Microsoft SQL Server 7.0&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Kesimpulan :&lt;br /&gt;Log
Shipping boleh dikatakan sebagai metode DRP yang terbaik, karena resiko
kehilangan data sangat sedikit dan sedikti pula waktu untuk downtime.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dari
semua uraian diatas kita bisa mengambil salah satu metode yang paling
baik manakah yang bisa diimplemetasi sebagai metode untuk DRP.&lt;br /&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/apakah-metode-terbaik-untuk-mengimplemetasikan-drp-disasters-recovery-plan-pada-microsoft-sql-server.aspx&amp;amp;subject=Apakah metode terbaik untuk mengimplemetasikan DRP (Disasters Recovery Plan) pada Microsoft SQL Server?" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/apakah-metode-terbaik-untuk-mengimplemetasikan-drp-disasters-recovery-plan-pada-microsoft-sql-server.aspx&amp;amp;t=Apakah+metode+terbaik+untuk+mengimplemetasikan+DRP+(Disasters+Recovery+Plan)+pada+Microsoft+SQL+Server%3f" target="_blank" title="Submit Apakah metode terbaik untuk mengimplemetasikan DRP (Disasters Recovery Plan) pada Microsoft SQL Server? to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/apakah-metode-terbaik-untuk-mengimplemetasikan-drp-disasters-recovery-plan-pada-microsoft-sql-server.aspx&amp;amp;title=Apakah+metode+terbaik+untuk+mengimplemetasikan+DRP+(Disasters+Recovery+Plan)+pada+Microsoft+SQL+Server%3f" target="_blank" title="Submit Apakah metode terbaik untuk mengimplemetasikan DRP (Disasters Recovery Plan) pada Microsoft SQL Server? to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/apakah-metode-terbaik-untuk-mengimplemetasikan-drp-disasters-recovery-plan-pada-microsoft-sql-server.aspx&amp;amp;phase=2" target="_blank" title="Submit Apakah metode terbaik untuk mengimplemetasikan DRP (Disasters Recovery Plan) pada Microsoft SQL Server? to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/apakah-metode-terbaik-untuk-mengimplemetasikan-drp-disasters-recovery-plan-pada-microsoft-sql-server.aspx&amp;amp;title=Apakah+metode+terbaik+untuk+mengimplemetasikan+DRP+(Disasters+Recovery+Plan)+pada+Microsoft+SQL+Server%3f" target="_blank" title="Add Apakah metode terbaik untuk mengimplemetasikan DRP (Disasters Recovery Plan) pada Microsoft SQL Server? to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=47503" width="1" height="1"&gt;</content><author><name>dkusdeni</name><uri>http://geeks.netindonesia.net/members/dkusdeni.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/dkusdeni/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Strategy backup pada Microsoft SQL Server</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/strategy-backup-pada-microsoft-sql-server.aspx" /><id>http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/strategy-backup-pada-microsoft-sql-server.aspx</id><published>2008-05-14T03:11:00Z</published><updated>2008-05-14T03:11:00Z</updated><content type="html">Untuk seorang database administrator tentunya pekerjaan mengenai backup
database adalah sudah merupakan perkerjaan yang &amp;quot;wajib&amp;quot; dilakukan.
Mengapa demikian? Karena kegiatan backup ini adalah sebenarnya kegiatan
yang intangible (tidak dapat diukur dengan besarnya uang), tetapi bisa
menimbulkan &amp;quot;bencana&amp;quot; yang sangat besar apabila kurang diperhatikan
dengan baik. Akan tetapi setelah pekerjaan backup itu dilakukan
pertanyaan selanjutnya adalah, apakah metode/strategi untuk backup ini
sudah dilakukan dengan benar?&lt;br /&gt;&lt;br /&gt;Seperti kita ketahui bahwa Microsoft SQL Server menyediakan beberapa tipe/metode untuk melakukan database backup ini, yaitu : &lt;br /&gt;1. Full Backup&lt;br /&gt;2. Differential Backup&lt;br /&gt;3. Transaction Log Backup&lt;br /&gt;4. Filegroup Backup&lt;br /&gt;&lt;br /&gt;Apakah perbedaan dari masing-masing metode backup tersebut? &lt;br /&gt;&lt;br /&gt;Full Backup &lt;br /&gt;Metode backup ini akan membuat backup seluruh database &lt;br /&gt;&lt;br /&gt;Differential Backup&lt;br /&gt;Metode backup ini akan membuat backup perbedaan database dari terakhir kali dilakukan full backup&lt;br /&gt;&lt;br /&gt;Transaction Log Backup&lt;br /&gt;Motode backup ini akan membuat backup perbedaan database dari terakhir kali dilakukan transactional backup atau full backup&lt;br /&gt;&lt;br /&gt;Filegroup Backup&lt;br /&gt;Metode backup ini akan membuat backup filegroups dari database &lt;br /&gt;&lt;br /&gt;Bagaimanakah
menerapkan strategy backup dengan menggunakan metode-metode tersebut
diatas? Berikut beberapa tip supaya data yang kita simpan aman dan
resiko kehilangan data juga menjadi kecil, serta tentunya pemakaian
media backup yang tidak terlalu berlebihan.&lt;br /&gt;1. Gunakan full backup berdasarkan durasi waktu yang paling lama&lt;br /&gt;2. Gunakan differential backup diantara full backup dan transactional backup&lt;br /&gt;3. Gunakan transactional backup sesering mungkin &lt;br /&gt;&lt;br /&gt;Dari uraian diatas berikut contoh penerapan yang bisa dilakukan :&lt;br /&gt;1. Lakukan full backup tiap minggu&lt;br /&gt;2. Lakukan differential backup tiap hari&lt;br /&gt;3. Lakukan transactional backup tiap jam (lebih sering lebih bagus)  &lt;br /&gt;&lt;br /&gt;Dengan metode tersebut kita akan mudah melakukan proses restore apabila terjadi sesuatu dengan database kita.
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/strategy-backup-pada-microsoft-sql-server.aspx&amp;amp;subject=Strategy backup pada Microsoft SQL Server" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/strategy-backup-pada-microsoft-sql-server.aspx&amp;amp;t=Strategy+backup+pada+Microsoft+SQL+Server" target="_blank" title="Submit Strategy backup pada Microsoft SQL Server to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/strategy-backup-pada-microsoft-sql-server.aspx&amp;amp;title=Strategy+backup+pada+Microsoft+SQL+Server" target="_blank" title="Submit Strategy backup pada Microsoft SQL Server to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/strategy-backup-pada-microsoft-sql-server.aspx&amp;amp;phase=2" target="_blank" title="Submit Strategy backup pada Microsoft SQL Server to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/14/strategy-backup-pada-microsoft-sql-server.aspx&amp;amp;title=Strategy+backup+pada+Microsoft+SQL+Server" target="_blank" title="Add Strategy backup pada Microsoft SQL Server to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=47500" width="1" height="1"&gt;</content><author><name>dkusdeni</name><uri>http://geeks.netindonesia.net/members/dkusdeni.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/dkusdeni/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>May Day</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/02/may-day.aspx" /><id>http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/02/may-day.aspx</id><published>2008-05-02T02:08:00Z</published><updated>2008-05-02T02:08:00Z</updated><content type="html">&lt;p&gt;Hari Kamis kemarin, tanggal 1 Mei 2008, karena bertepatan dengan hari libur seharian saya di rumah, menghabiskan waktu dengan nonton TV, ternyata isinya kebanyakan berita mengenai demo para pekerja yang memperingati hari buruh sedunia. Dalam demo itu ada beberapa aspirasi/tuntutan dari para buruh yang diantaranya adalah mengenai perbaikan upah dan penghentian sistem kerja kontrak dan outsoucing. &lt;/p&gt;&lt;p&gt;Saya sempat berpikir, sebetulnya yang disebut sebagai buruh itu siapa? Apakah seseorang yang bekerja di kantoran dengan menggunakan stelan jas dan berdasi bisa dikatakan sebagai buruh? Ataukah buruh itu merupakan sebutan untuk orang-orang yang bekerja di sebuah pabrik?&amp;nbsp;&lt;/p&gt;&lt;p&gt;Sebagai orang yang pernah juga mengalami kerja di pabrik :), tentunya, buat saya yang namanya buruh adalah sebetulnya kata lain untuk seorang karyawan yang bekerja di suatu perusahaan, sehingga seseorang yang juga bekerja dengan stelan jas dan berdasi kalau memang dia bekerja untuk sebuah perusahaan tentunya merupakan buruh juga. :) Yang menjadi pertanyaan sekarang adalah, apakah dari sisi kacamata yang lain sependapat dengan saya? &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/02/may-day.aspx&amp;amp;subject=May Day" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/02/may-day.aspx&amp;amp;t=May+Day" target="_blank" title="Submit May Day to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/02/may-day.aspx&amp;amp;title=May+Day" target="_blank" title="Submit May Day to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/02/may-day.aspx&amp;amp;phase=2" target="_blank" title="Submit May Day to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/05/02/may-day.aspx&amp;amp;title=May+Day" target="_blank" title="Add May Day to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=46168" width="1" height="1"&gt;</content><author><name>dkusdeni</name><uri>http://geeks.netindonesia.net/members/dkusdeni.aspx</uri></author><category term="Share" scheme="http://geeks.netindonesia.net/blogs/dkusdeni/archive/tags/Share/default.aspx" /></entry><entry><title>Faktor yang harus diperhatikan pada saat melakukan performance tuning</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/28/faktor-yang-harus-diperhatikan-pada-saat-melakukan-performance-tuning.aspx" /><id>http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/28/faktor-yang-harus-diperhatikan-pada-saat-melakukan-performance-tuning.aspx</id><published>2008-04-28T02:16:00Z</published><updated>2008-04-28T02:16:00Z</updated><content type="html">&lt;p&gt;Ada beberapa hal yang harus diperhatikan apabila kita
akan melakukan performance tuning terhadap suatu database, hal-hal tersebut
antara lain:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Buat
kesepakatan dengan user, sampai sejauh mana user akan menerima hasil dari
proses tuning yang kita lakukan terhadap suatu database. Hal ini perlu untuk
kita, sebagai executor, dalam pelaksaan proses tuning dalam database. Mengapa
demikian? Apabila kita melaksanakan proses tuning pada database, tentunya
harapannya adalah adanya peningkatan performance dari database tersebut. Untuk
itulah maka perlu adanya satu batasan berupa kesepakatan dengan user database,
jangan sampai suatu proses tuning database tidak di accept oleh user karena
user merasa performance database yang telah kita lakukan tuning tidak
significant perubahannya.&lt;/li&gt;&lt;li&gt;Identifikasi
terlebih dahulu area-area mana saja pada database yang paling critical, apabila
kita tidak segera melakukan tuning terhadap database tersebut, atau dengan kata
lain prioritaskan proses tuning pada area-area yang dianggap paling critical.&lt;/li&gt;&lt;li&gt;Identifikasi
bottleneck yang ada dalam sebuah atau beberapa query. Biasanya hanya karena
sebuah query yang jelek menyebabkan performance menjadi turun secara
keseluruhan.&lt;/li&gt;&lt;li&gt;Jika
memungkinkan, review terlebih dahulu design dari database &amp;nbsp;yang akan kita tuning, apakah sudah bagus, sebelum
kita melakukan tuning pada query-query terhadap database tersebut, karena
apabila kita melakukan query tuning tetapi dari sisi design database&amp;nbsp; kurang bagus, maka tuning pada query akan
tidak optimal, bahkan mungkin tidak ada impact sama sekali.&lt;/li&gt;&lt;li&gt;Pelajari
strategi index yang sudah berjalan pada database yang akan kita tuning, dan
lakukan improvement terlebih dulu pada area index ini.&lt;/li&gt;&lt;li&gt;Jika kita
rasakan index yang ada sudah optimal, lakukan identifikasi fragmentation level
dari index yang ada, dan pastikan index statistic selalu up-to-date.&lt;/li&gt;&lt;li&gt;Pelajari
bagaimana cara kerja query optimizer, pelajari dan test beberapa bentuk tipe
JOIN.&lt;/li&gt;&lt;li&gt;Hindari
penggunaan sub-query (select in select).&lt;/li&gt;&lt;li&gt;Selalu gunakan
UNION ALL daripada UNION, apabila memang ada operasi yang membutuhkan UNION&lt;/li&gt;&lt;li&gt;Evaluasi
penggunaan trigger yang berdampak pada performance.&lt;/li&gt;&lt;li&gt;Hindari
penggunaan SELECT ...... INTO sampai dengan kita yakin bahwa user yang terhubung ke
database hanya kita sendiri atau proses yang kita lakukan hanya memerlukan
waktu yang tidak lama. Jika sangat terpaksa gunakan INSERT .......SELECT.&lt;/li&gt;&lt;li&gt;Gunakan SET
NOCOUNT ON dalam semua modular code kita (Stored Procedure), untuk mengurangi
informasi yang diberikan server ke client dan untuk mengurangi beban network.&lt;/li&gt;&lt;li&gt;Jika
memungkinkan, gantu semua query yang merupakan inline query menjadi stored
procedure yang berparameter&lt;/li&gt;&lt;li&gt;Jika
memungkinkan, gunakan temporary table untuk mengurangi jumlah record pada saat
query. Jika temporary table tersebut di join dengan permanent table, buat index
di dalam temporary table tersebut.&lt;/li&gt;&lt;li&gt;Optimalkan
penggunaan loop, pindahkan semua proses yang tidak memerlukan pengulangan
keluar loop.&lt;/li&gt;&lt;li&gt;Jangan gunakan
cursor jika memang tidak sangat terpaksa, TSQL tidak dioptimalkan untuk
memproses 1 record dalam satu waktu&lt;/li&gt;&lt;/ol&gt;


































&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/28/faktor-yang-harus-diperhatikan-pada-saat-melakukan-performance-tuning.aspx&amp;amp;subject=Faktor yang harus diperhatikan pada saat melakukan performance tuning" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/28/faktor-yang-harus-diperhatikan-pada-saat-melakukan-performance-tuning.aspx&amp;amp;t=Faktor+yang+harus+diperhatikan+pada+saat+melakukan+performance+tuning" target="_blank" title="Submit Faktor yang harus diperhatikan pada saat melakukan performance tuning to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/28/faktor-yang-harus-diperhatikan-pada-saat-melakukan-performance-tuning.aspx&amp;amp;title=Faktor+yang+harus+diperhatikan+pada+saat+melakukan+performance+tuning" target="_blank" title="Submit Faktor yang harus diperhatikan pada saat melakukan performance tuning to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/28/faktor-yang-harus-diperhatikan-pada-saat-melakukan-performance-tuning.aspx&amp;amp;phase=2" target="_blank" title="Submit Faktor yang harus diperhatikan pada saat melakukan performance tuning to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/28/faktor-yang-harus-diperhatikan-pada-saat-melakukan-performance-tuning.aspx&amp;amp;title=Faktor+yang+harus+diperhatikan+pada+saat+melakukan+performance+tuning" target="_blank" title="Add Faktor yang harus diperhatikan pada saat melakukan performance tuning to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=45634" width="1" height="1"&gt;</content><author><name>dkusdeni</name><uri>http://geeks.netindonesia.net/members/dkusdeni.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/dkusdeni/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Menghapus semua data dalam table pada sebuah database</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/25/menghapus-semua-data-dalam-table-pada-sebuah-database.aspx" /><id>http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/25/menghapus-semua-data-dalam-table-pada-sebuah-database.aspx</id><published>2008-04-25T07:25:00Z</published><updated>2008-04-25T07:25:00Z</updated><content type="html">Pernahkah anda merasa
seperti wasting time untuk
mengosongkan data sebuah database?Apalagi pada database
tersebut banyak table yang di-reference
dan ter-reference dengan table lainnya,
tentunya anda harus menelusuri terlebih dahulu semua constraint yang ada dalam database tersebut, karena sebuah parent
table tidak akan bisa dihapus datanya apabila data dalam parent table
tersebut sudah di reference oleh child table-nya, dan constraint yang ada tidak
memperbolehkan penghapusan secara cascade.



&lt;p&gt;Dari kasus diatas
bagaimana cara tercepat untuk melakukan penghapusan data pada sebuah database?&lt;/p&gt;



&lt;p&gt;Kita lakukan dengan
sedikit logic/algoritma sederhana dalam melakukan penghapusan ini. &lt;/p&gt;



&lt;p&gt;&lt;b&gt;Pertama&lt;/b&gt;, kita lakukan query
terhadap system objects untuk me-list down semua user table yang ada pada
database yang akan kita kosongkan datanya. Dalam Microsoft SQL Server 2005 ada
system view yang fungsinya untuk menampilkan semua user table yang ada dalam
sebuah database, kita gunakan view INFORMATION_SCHEMA.TABLES.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;&lt;i&gt;SELECT Table_Name FROM
INFORMATION_SCHEMA.TABLES WHERE Table_Type = ‘BASE TABLE&amp;#39;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;



&lt;p&gt;Query tersebut diatas akan
menampilkan semua user table pada database aktif. Apabila kita jalankan query
tersebut pada database AdventureWorks, maka SQL akan menampilkan list of user
table yang ada pada database AdventureWorks.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;Kedua&lt;/b&gt;, setelah kita
dapatkan list of table tersebut, kita lakukan query untuk men-disable-kan
constraint yang ada pada tiap-tiap table tadi. Tentunya supaya bisa terjadi
proses looping/pengulangan untuk tiap-tiap table yang ada pada sebuah database
tadi, maka kita harus tampung list of table tadi dalam sebuah cursor.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;&lt;i&gt;DECLARE cTable CURSOR FOR
SELECT Table_Name FROM INFORMATION_SCHEMA.TABLES WHERE Table_Type = ‘BASE
TABLE&amp;#39;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;



&lt;p&gt;Script tersebut akan
membuat sebuah cursor yang isinya adalah list of table dalam sebuah database
aktif tadi.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;Ketiga&lt;/b&gt;, kita harus lakukan
sebuah loop dari cursor tadi untuk men-generate sebuat script query yang
fungsinya untuk men-disable-kan constraint-constraint yang ada pada list of
table tadi, kemudian script hasil generated tadi kita execute.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;&lt;i&gt;DECLARE @Query
NVARCHAR(4000)&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;DECLARE @TableName SYSNAME&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;DECLARE cTable CURSOR FOR
SELECT Table_Schema + ‘.&amp;#39; + Table_Name FROM INFORMATION_SCHEMA.TABLES WHERE
Table_Type = &amp;#39;BASE TABLE&amp;#39;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;OPEN cTable&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;FETCH NEXT FROM cTable
INTO @TableName&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;WHILE @@FETCH_STATUS = 0&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;BEGIN&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @Query = ‘ALTER TABLE ‘+@TableName+&amp;#39; NOCHECK CONSTRAINT
ALL&amp;#39;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_executesql @Query&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH NEXT FROM cTable INTO @TableName&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;END&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;SET @Query = ‘ALTER TABLE
‘+@TableName+&amp;#39; NOCHECK CONSTRAINT ALL&amp;#39;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;EXEC sp_executesql @Query&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;CLOSE cTable&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;



&lt;p&gt;Script diatas akan
men-disable semua constraint yang ada pada tiap-tiap table yang akan kita
kosongkan datanya.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;Keempat&lt;/b&gt;, setelah kita
men-disable-kan semua constraint, kita tinggal generate script untuk melakukan
proses delete pada tiap-tiap table tadi dengan melakukan looping/pengulangan
pada cursor yang tadi sudah kita buat.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;&lt;i&gt;OPEN cTable&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;FETCH NEXT FROM cTable
INTO @TableName&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;WHILE @@FETCH_STATUS = 0&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;BEGIN&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @Query = ‘DELETE ‘+@TableName&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_executesql @Query&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH NEXT FROM cTable INTO @TableName&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;END&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;SET @Query = ‘DELETE
‘+@TableName&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;EXEC sp_executesql @Query&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;CLOSE cTable&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;



&lt;p&gt;Script diatas akan
menghapus semua user table tadi.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;Kelima&lt;/b&gt;, setelah kita
disable-kan constraint dan menghapus data yang ada pada tiap-tiap table,
tentunya kita harus me-enable-kan kembali constraint yang ada pada tiap-tiap
table tadi.&lt;/p&gt;



&lt;p&gt;&lt;b&gt;&lt;i&gt;OPEN cTable&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;FETCH NEXT FROM cTable
INTO @TableName&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;WHILE @@FETCH_STATUS = 0&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;BEGIN&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @Query = ‘ALTER TABLE ‘+@TableName + ‘ WITH CHECK CHECK
CONSTRAINT ALL&amp;#39;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_executesql @Query&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH NEXT FROM cTable INTO @TableName&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;END&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;SET @Query = ‘ALTER TABLE
‘+@TableName + ‘ WITH CHECK CHECK CONSTRAINT ALL&amp;#39;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;EXEC sp_executesql @Query&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;CLOSE cTable&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;





&lt;p&gt;&lt;b&gt;&lt;i&gt;DEALLOCATE cTable&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Script diatas akan kembali
me-enable-kan semua constraint yang ada pada tiap-tiap table.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Step by step diatas adalah
step by step detailnya, sebetulnya proses looping/pengulangan bisa dilakukan
hanya sekali saja, dimana proses generate scriptnya langsung ada 3, yaitu,
untuk men-disable-kan constraint, men-delete data dan me-enable-kan kembali
constraint.&lt;/p&gt;



&lt;p&gt;Script lengkap dari
artikel diatas (stored procedure) bisa didownload &lt;a href="http://geeks.netindonesia.net/blogs/dkusdeni/usp_DeleteAllTable.zip" target="_blank"&gt;disini&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Kesimpulan&lt;/b&gt;, dengan sedikit
bantuan system objects yang ada dalam database, kita bisa melakukan suatu trik
tertentu yang bisa diaplikasikan pada database kita.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;




&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/25/menghapus-semua-data-dalam-table-pada-sebuah-database.aspx&amp;amp;subject=Menghapus semua data dalam table pada sebuah database" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/25/menghapus-semua-data-dalam-table-pada-sebuah-database.aspx&amp;amp;t=Menghapus+semua+data+dalam+table+pada+sebuah+database" target="_blank" title="Submit Menghapus semua data dalam table pada sebuah database to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/25/menghapus-semua-data-dalam-table-pada-sebuah-database.aspx&amp;amp;title=Menghapus+semua+data+dalam+table+pada+sebuah+database" target="_blank" title="Submit Menghapus semua data dalam table pada sebuah database to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/25/menghapus-semua-data-dalam-table-pada-sebuah-database.aspx&amp;amp;phase=2" target="_blank" title="Submit Menghapus semua data dalam table pada sebuah database to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/25/menghapus-semua-data-dalam-table-pada-sebuah-database.aspx&amp;amp;title=Menghapus+semua+data+dalam+table+pada+sebuah+database" target="_blank" title="Add Menghapus semua data dalam table pada sebuah database to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=45332" width="1" height="1"&gt;</content><author><name>dkusdeni</name><uri>http://geeks.netindonesia.net/members/dkusdeni.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/dkusdeni/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>SQL Server Best Practice yang berhubungan dengan Database Files</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/23/sql-server-best-practice-yang-berhubungan-dengan-database-files.aspx" /><id>http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/23/sql-server-best-practice-yang-berhubungan-dengan-database-files.aspx</id><published>2008-04-23T01:42:00Z</published><updated>2008-04-23T01:42:00Z</updated><content type="html">

&lt;ol style="margin-top:0in;" start="1"&gt;&lt;li class="MsoNormal"&gt;Simpan
     file data dan log dalam disk yang terpisah.&lt;/li&gt;&lt;li class="MsoNormal"&gt;Buat
     minimal 1 secondary filegroup di tiap-tiap database untuk memisahkan
     antara data system dan data aplikasi. Buat secondary filegroup tadi
     sebagai primary filegroup, sehingga setiap object yang di create tanpa
     menyebutkan filegroupnya akan disimpan dalam secondary filegroup tadi.&lt;/li&gt;&lt;li class="MsoNormal"&gt;Buat
     beberapa file database untuk tiap-tiap filegroup database, jangan gunakan
     1 file database untuk beberapa filegroup.&lt;/li&gt;&lt;li class="MsoNormal"&gt;Jika
     memungkinkan pisahkan filegroup untuk data-data yang hanya memerlukan
     operasi read only dengan filegroup yang berisi data-data yang memerlukan
     operasi read-write. Dan tandai filegroup yang berisi data static menjadi
     READ-ONLY&lt;/li&gt;&lt;li class="MsoNormal"&gt;Jika
     filegroup sudah tidak terpakai, lebih baik di remove, karena akan membantu
     mengurangi resiko pada proses backup dan restore.&lt;/li&gt;&lt;li class="MsoNormal"&gt;Tempatkan
     tipe data TEXT atau IMAGE pada filegroups yang terpisah&lt;/li&gt;&lt;li class="MsoNormal"&gt;Simpan
     file backup database dalam disk yang berbeda dengan disk tempat menyimpan
     database, apabila backup database tersebut disimpan dalam disk.&lt;/li&gt;&lt;li class="MsoNormal"&gt;Jika
     ada table yang sangat besar, pertimbangkan untuk menggunakan table dan
     index partitioning.&lt;/li&gt;&lt;li class="MsoNormal"&gt;Hindari
     penggunakan autogrowth pada database, usahakan selalu hitung capacity
     planning untuk setiap database yang kita buat. Jika sangat terpaksa harus
     gunakan autogrowth, pastikan tempat di disk available ketika database
     butuh growth dan tetapkan batasan maksimalnya.&lt;/li&gt;&lt;/ol&gt;


&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/23/sql-server-best-practice-yang-berhubungan-dengan-database-files.aspx&amp;amp;subject=SQL Server Best Practice yang berhubungan dengan Database Files" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/23/sql-server-best-practice-yang-berhubungan-dengan-database-files.aspx&amp;amp;t=SQL+Server+Best+Practice+yang+berhubungan+dengan+Database+Files" target="_blank" title="Submit SQL Server Best Practice yang berhubungan dengan Database Files to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/23/sql-server-best-practice-yang-berhubungan-dengan-database-files.aspx&amp;amp;title=SQL+Server+Best+Practice+yang+berhubungan+dengan+Database+Files" target="_blank" title="Submit SQL Server Best Practice yang berhubungan dengan Database Files to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/23/sql-server-best-practice-yang-berhubungan-dengan-database-files.aspx&amp;amp;phase=2" target="_blank" title="Submit SQL Server Best Practice yang berhubungan dengan Database Files to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/dkusdeni/archive/2008/04/23/sql-server-best-practice-yang-berhubungan-dengan-database-files.aspx&amp;amp;title=SQL+Server+Best+Practice+yang+berhubungan+dengan+Database+Files" target="_blank" title="Add SQL Server Best Practice yang berhubungan dengan Database Files to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=45130" width="1" height="1"&gt;</content><author><name>dkusdeni</name><uri>http://geeks.netindonesia.net/members/dkusdeni.aspx</uri></author><category term="SQL Server" scheme="http://geeks.netindonesia.net/blogs/dkusdeni/archive/tags/SQL+Server/default.aspx" /></entry></feed>