Rangga's Journals

Jurnal dan Catatan Perjalanan
See also: Other Geeks@INDC
Troubleshooting Error 32003 Saat Menginstall VS2008SP1

Pagi ini saya mencoba untuk menginstall Visual Studio 2008 Service Pack 1 di laptop saya. Ditengah-tengah proses instalasi, tiba-tiba proses instalasi terhenti dan muncul notifikasi yang mengatakan bahwa terjadi fatal error.

Hal ini tentu saja membuat saya sedikit bingung, karena hampir semua komponen yang dibutuhkan telah terinstall dan saya pun belum mengupdate VS dengan Service Pack sebelumnya.

Iseng-iseng, saya mencoba membuka log dan mencoba menginstall update tersebut secara manual tanpa menggunakan wizard (karena saya menggunakan installer, bukan versi iso, maka lokasi file installer yang telah didownload berada di C:\Users\Praduwiratna\AppData\Local\Temp\Microsoft Visual Studio 2008 SP1)

Selidik punya selidik, ternyata proses instalasi mengalami error 32003, dimana file vsvars32.bat tidak bisa di'write' ketika proses instalasi VS90sp1 maupun VC90sp1 berjalan.

Uniknya, saya sudah menjalankan proses instalasi dengan mode 'Run as Administrator'.

Akhirnya saya mencoba mengakali masalah ini dengan mencari file vsvars32.bat tersebut (berada di C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools) dan memberikan permission untuk melakukan write.

image

Setelah itu, proses pun berjalan dengan normal dan VS 2008 Service Pack 1 pun terinstall dengan sukses di laptop. :)

image

image

image

Semoga postingan singkat ini bisa membantu Anda yang mengalami permasalahan yang sama. :P

Share this post: | | | |
SQL Authentication di SQL Express

Ketika kita menginstall SQL Express, secara default SQL Server akan menggunakan konfigurasi Windows Authentication mode bagi para penggunanya.

Untuk mengubah mode autentifikasi SQL Server menjadi mixed-mode, SQL Server and Windows Authentication mode pada dasarnya tidaklah terlalu sulit. (SQL Server tidak memiliki mode autentifikasi hanya SQL Authentication)

Dengan menggunakan SSMS:

  1. Masuk ke SSMS dengan mode Windows Authentication
  2. Pada Server yang terdapat di Object Explorer pilih opsi Properties > masuk ke tab Security > centang opsi SQL Server and Windows Authentication mode

image

Dengan menggunakan T-SQL:

USE [master]
GO
EXEC xp_instance_ regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\ MSSQLServer\ MSSQLServer', N'LoginMode', REG_DWORD, 2
GO

atau bisa juga dengan masuk ke Registry Windows, cari parameter:

"HKEY_LOCAL_ MACHINE\Software \M­icrosoft\ MSSqlserver\ MSSqlServer\ LoginMode"

ubah nilai yang ada menjadi 2 (nilai 2 berarti mixed-mode, dan nilai 1 untuk integrated/windows authentication)

Untuk meng-enable sa-account, kita bisa menggunakan 2 cara pula:

Dengan menggunakan SSMS:

  1. Pada server node, masuk ke tab Security > Logins
  2. Klik kanan pada login name (sa) dan pilih opsi Properties
  3. Masukkan sebuah password dan konfirmasi password untuk akun sa
  4. Masuk ke tab Status dan ubah sedikit propertinya:

image

Dengan menggunakan T-SQL:

USE [master]
GO
ALTER LOGIN [sa] ENABLE
GO
ALTER LOGIN [sa] WITH PASSWORD=N'xxx123'
GO

Setelah hal tersebut dilakukan, biasanya kita masih harus me-restart SQL services untuk menerapkan konfigurasi ini:

Start > Run > ketik services.msc, cari service MSSQL Server (SQLEXPRESS) dan restart services tersebut.

Share this post: | | | |
Memproyeksi Kebutuhan Hardware Database Server

Hari ini iseng-iseng belajar mengenai bagaimana cara menghitung kebutuhan perangkat keras server database di masa mendatang.

Dengan menggunakan OS Windows Server dan SQL Server, saya pun mencoba pengetahuan baru dari salah satu buku yang sedang saya baca.

Bagi Anda yang menggunakan Windows Server 2003 (maupun 2008) tentu sudah mengenal salah satu Administrative Tools yang bernama Performance (System Monitor). Dari tool ini, kita bisa melihat beberapa measurement yang dapat digunakan untuk memproyeksi kebutuhan perangkat keras server kita di masa mendatang. Berikut beberapa parameter yang bisa dijadikan acuan dalam pengukuran tersebut:

image

Disini kita bisa menetapkan beberapa baseline yang bisa dijadikan acuan pengukuran, misalnya setiap 10 menit kita mengambil data % CPU Time dan Memory-Pages/sec di waktu-waktu terpadat pengaksessan database oleh user.

Kita juga bisa menyimpan statistik tersebut ke dalam format excel untuk kemudian melakukan proyeksi growth trend, bahkan kita bisa membuat line chart yang ditambahkan perintah Add Trendline untuk melihat proyeksi data tersebut di waktu-waktu tertentu di masa mendatang.

Selain itu, kita juga bisa melakukan penghitungan sederhana untuk menghitung pertumbuhan penggunaan resource server komputer dalam periode waktu tertentu. Dalam hal ini, ada 2 jenis penghitungan yang bisa digunakan: Linear Growth dan Geometric Growth.

Linear Growth:

Penggunaan masa depan = penggunaan saat ini + (jumlah penambahan * periode waktu)

Misalnya, saat ini SQL Server menghandle x transaksi per menitnya dan mengalami peningkatan sebesar y transaksi per menit setiap tahunnya, maka kita bisa memproyeksikan kebutuhan untuk z tahun ke depan seperti berikut:

Penggunaan masa depan (z tahun kemudian) = x + (y x z)

Geometric Growth:

Nah, kalau metode penghitungan ini bisa digunakan kalau kita memiliki rasio maupun persentase penggunaan database yang konstan.

Misalnya saat ini database kita berukuran 100 GB dan mengalami pertumbuhan sebesar 3% setiap bulannya, kita bisa mengukur berapa besar database kita 2 tahun kemudian (24 bulan) seperti berikut:

Penggunaan masa mendatang = penggunaan masa sekarang * (1 + rate pertumbuhan) ^ periode waktu

Penggunaan masa mendatang = 100 x (1 + .03) ^ 24

Penggunaan masa mendatang = 100 x (2.033) = 203 GB

 

Yah, semoga pengetahuan yang baru saya dapat ini juga bisa bermanfaat bagi rekan-rekan. :)

 

salam,

Rangga Praduwiratna

Share this post: | | | |
E-book gratis: Bermain Data dengan SQL Server

Sesuai dengan janji saya kepada pak Julius Fenata, ADE Microsoft (dan bos saya juga), akhirnya buku ‘Bermain Data dengan SQL Server’ selesai juga.

cover visualization copy

Buku ini merupakan pengenalan ringan terhadap beberapa fitur SQL Server 2005 Express Edition. Tidak begitu tebal dan semoga tidak terlalu rumit untuk dipahami, yang pasti semoga buku ini bisa bermanfaat untuk rekan-rekan sekalian.

| Unduh buku ‘Bermain Data dengan SQL Server’ |

Selain itu, karena sempat ditanyakan juga di milis MUGI, saya mencoba meng-upload kembali tulisan saya mengenai clustered dan nonclustered index pada SQL Server yang sempat saya publish di situs ilmukomputer.com, dikarenakan link yang lama sudah tidak aktif lagi. Anyway, CMIIW jika ada substansi yang kurang tepat. :)

| Unduh artikel mengenai Index pada SQL |

 

salam,

Rangga Praduwiratna

Microsoft Student Partner Univ. Kristen Maranatha

Share this post: | | | |
Imagine Cup 2010 Campaign @ Maranatha

Hari ini saya dan rekan-rekan MSP (Microsoft Student Partners) Indonesia dari Maranatha mulai melakukan kampanye Imagine Cup 2010 di Fakultas IT Maranatha. Momen yang kami gunakan untuk melakukan kampanye tersebut adalah momen Forum Komunikasi IT, dimana di kesempatan ini sebagian besar mahasiswa dari angkatan 2003-2009 dapat hadir semua. (Acara dibagi 4 sesi, sesi untuk angkatan 2009, 2008, 2007, dan 2003-2006).

Dalam kesempatan ini, saya bersama rekan-rekan MSP lainnya juga sempat memperkenalkan MSP baru Maranatha, memberikan overview singkat mengenai SQL Server 2008 & Silverlight Deep Zoom, serta memperkenalkan komunitas-komunitas IT (terutama Microsoft) Indonesia, seperti Indonesia .NET Developer Community, Windows Server System Indonesia, SQL Server User Group Indonesia, dan Microsoft User Group Indonesia.

Overview singkat mengenai SQL Server 2008

Sesi berikutnya, acara kampanye imagine cup pun dimulai. Untuk itu, kami mengundang Wirawan Winarto -MSP Advisor dari IT Telkom- untuk berbagi pengalamannya saat mengikuti Imagine Cup di tahun-tahun sebelumnya. Acara pun berubah menjadi lebih menarik, saat Wirawan menceritakan pengalaman-pengalamannya yang berkesan selama ia mengikuti Imagine Cup dan prospek yang bisa didapatkan dari mengikuti kompetisi ini. Beberapa kali pula, ia  sempat melontarkan jokes ringan yang membuat peserta dan dosen tertawa terpingkal-pingkal.

Wirawan ketika mendeliver materi singkat mengenai imagine cup 2010
Di akhir acara, kami pun sempat berfoto bersama ketua jurusan S1 IT serta para dosen untuk diupload ke facebook terlebih dahulu. Stick out tongue

Foto bersama seusai berbicara di sesi angkatan 2008

Sekitar 2 minggu sebelumnya, kami pun sempat mempublikasikan mengenai kompetisi IT Challenge Imagine Cup 2010 melalui pamflet. Ada sekitar 13 peserta dari Maranatha yang mengikuti kompetisi tersebut, namun sayangnya hanya 3 orang yang berhasil lolos (termasuk saya, Stick out tongue). Itupun dengan skor yang pas-pasan (15/30). Sepertinya, kami harus mempelajari lebih banyak mengenai teknologi Sharepoint & Exchange Server di ronde berikutnya.

Salah satu bentuk kampanye lain Imagine Cup 2010

Dengan waktu persiapan acara yang cukup minim (hanya 1 minggu), acara kampanye Imagine Cup 2010 kali ini pun berjalan dengan cukup lancar. Antusiasme mahasiswa baru Maranatha untuk mengikuti kompetisi ini pun rasa-rasanya cukup besar.

Hal ini sedikit-banyak terlihat ketika acara selesai, dimana mereka masih bersemangat untuk melontarkan beberapa pertanyaan mengenai kompetisi Software Design Imagine Cup. Semoga saja di tahun ini, Maranatha bisa lebih berpartisipasi dalam kompetisi ini serta mampu meraih hasil yang optimal.Smile

Share this post: | | | |
Mengimpor Data dari Excel ke SQL Server 2005

 Beberapa waktu yang lalu, saya mendapatkan email yang menanyakan pada saya cara untuk mengimpor data dari excel ke SQL Server 2005. Kali ini, saya akan membahas hal tersebut disini.

------------------------------------------

Pada prinsipnya, pada SQL Server 2005, kita bisa menggunakan fitur SSIS (SQL Server Integration Services) untuk memudahkan proses import data tersebut. Fitur ini menggantikan fitur DTS pada SQL Server 2000. Jika kita menginstall SQL Server 2005 Management Studio, tentu kita menyadari bahwa terdapat beberapa tools yang dapat digunakan untuk membantu kita dalam mengolah data. Salah satu yang dapat kita gunakan adalah SQL Server Business Intelligence (BI) Development Studio. Front-end tools ini dapat kita gunakan untuk mengimpor data .xls ke tabel di SQL Server 2005.

Integration Services

 Ketika kita membuka tools tersebut, maka tampilannya akan seperti di atas. Lumayan mirip dengan tampilan di Visual Studio .NET.

Berikutnya, kita perlu memasukkan sebuah task item ke dalam form yang tersedia. Task item yang digunakan adalah DataFlow Task. Untuk itu, kita cukup mendrag item tersebut ke tab Control Flow. Setelah DataFlow Task dimasukkan, maka kita double-click item tersebut, dan kita akan melihat environment baru untuk memasukkan item-item yang diperlukan dalam proses importing data kali ini.

Untuk mengimpor data dari .xls ke SQL Server 2005, maka kita membutuhkan setidaknya 2 item, yaitu Excel Source item dan SQL Server Destination Item. Excel Source item merepresentasikan data .xls yang akan kita impor, sedangkan SQL Server Destination item merepresentasikan kemana kita akan mengimpor data tersebut.

Pertama-tama, kita drag kedua item tersebut ke tab Data Flow. Setelah itu, kita perlu mendefinisikan data .xls mana yang akan kita masukkan. Double-Click item Excel Source, dan centang pilihan First Row has column names (ya, kita perlu menyesuaikan hal ini di file excel kita).

Setelah item tersebut di-double click dan di-OK, maka kita perlu mendefinisikan lebih jauh kolom-kolom mana saja yang akan kita masukkan. Pada Excel Source editor, ada 3 options/pilihan yang bisa kita atur:

  1. Connection Manager. Disini, kita bisa memilih file excel yang mau kita masukkan serta worksheet mana yang akan dimasukkan.
  2. Columns. Disini, kita bisa memilih kolom-kolom mana saja yang mau dimasukkan dan diexport ke tabel SQL Server.
  3. Error Output. Disini, kita bisa mengatur jika terjadi error saat proses import berlangsung.

Sebelum kita mengatur destinasi dari proses import file .xls kita ke SQL Server, kita perlu mendefinisikan flow data dari item-item yang kita masukkan sebelumnya. Untuk itu, cukup kita drag saja arrow dari Excel Source item ke SQL Server Destination item.

 

Mengatur flow data

 Setelah proses pendefinisian selesai, maka langkah berikutnya adalah mengatur database yang akan menerima data dari file .xls tersebut. Double-click SQL Server Destination item, dan Connection Manager window akan muncul. Disini, kita atur terlebih dahulu, server database yang akan digunakan serta database yang akan digunakan. Setelah itu, jangan klik OK dulu, tapi test dulu connection antara item-item di Data Flow.

Jika sudah tidak ada masalah, maka langkah berikutnya mengatur konfigurasi SQL Server Destination Item. Pada dasarnya, disini pun terdapat 3 options/pilihan layaknya pada Excel Source Item, yaitu: Connection Manager, Mappings, dan Advanced. Atur options yang tersedia sesuai kebutuhan kita.

Setelah proses-proses tersebut selesai, maka kita execute data flow tersebut. Jika berhasil, maka tampilannya akan seperti ini:

 

Hasil Akhir

Dan, data pun selesai diimpor.Smile

Selain cara ini, tentu saja kita bisa mengimpor data dengan menggunakan SQL Query, namun untuk itu kita perlu mengaktifkan salah satu stored procedure, yaitu: Ad Hoc Distributed Queries. Untuk informasi lebih lanjut mengenai hal ini, bisa melihat artikel Microsoft yang membahas hal ini: Link.

Yang perlu diingat, dalam mengimpor data dari .xls ke SQL Server, terkadang terdapat beberapa batasan-batasan yang terjadi akibat tipe data dari tabel yang kita miliki. Beberapa kali saya pun menemui hal tersebut ketika mencoba mengimpor data dari .xls ke SQL Server. Tapi, pembahasan untuk itu akan saya lakukan lain kali saja ya. Wink. Selamat Mencoba.


Salam,


Rangga Praduwiratna

Share this post: | | | |
Wajah baru SQL Server User Group Indonesia

Ya, jika diperhatikan dari beberapa postingan artikel saya sebelumnya. Saya banyak membahas mengenai penggunaan SQL Server 2005. Hal ini dikarenakan saya memang tertarik dengan teknologi SQL Server. Nah, sewaktu beberapa bulan yang lalu (bulan Mei), saya mencoba bergabung dengan komunitas (user group) SQL Server Indonesia, namun saat itu masih banyak kekurangan pada website tersebut. Kurang informatif, kurang fitur yang tersedia, kurangnya maintenance, dan sebagainya.

Nah, ketika saya masuk ke blognya Naren, saya melihat ada sebuah link yang merefer ke website resmi SQL Server User Group Indonesia. Tadinya saya pikir tidak ada yang baru sebelum memasuki website tersebut. Eeehh, ternyata.. kini website SQL Server User Group Indonesia sudah memiliki wajah baru!! Woohoo..

Bahkan, para pencetusnya/leadernya a.k.a tim admin telah mengikuti langkah Windows Server System Indonesia dan .NET Indonesia Community dengan menggunakan Community Server dengan beberapa template baru. Hore!! Semoga komunitas IT Indonesia dapat semakin berkembang ke depannya. Amiinn..

P.S : Saya bahkan sudah membuat blog di sana, Stick out tongue nambah2in koleksi blog yang takutnya malah ga keurus.. semoga saja tidak terjadi hal yang ditakutkan tersebut.. 

Berikut adalah tampilan/screenshot dari wajah baru SQL Server UG Indonesia :

 SQL Server-Indo

Nah, kalau yang ini merupakan aktifitas dari komunitas ini :

  • Monthly meeting berupa acara technet session yang diadakan setiap sebulan sekali dengan membawakan materi materi yang berkaitan dengan technology paling mutakhir dari Microsoft SQL Server yang dibawakan oleh IT pro yang berpengalaman dalam bidang Database khususnya SQL Server.
  • Code Camp merupakan kegiatan training Hands on lab yang berkaitan dengan mengadakan training bagi member SQL Server User Group Indonesia yang bertujuan selain sebagai sarana sharing knowledge bagi anggota, sekaligus mendalami technology terbaru dari SQL Server
  • Mailing list, semua anggota SQL Server User group Indonesia berkesempatan untuk dapat menjadi anggota mailing list SQLServer-Indo@yahoogroups.com, yang merupakan media untuk bisa berkomunikasi dan saling sharing khususnya dalam hal teknologi database di SQL Server
  • Event & Seminar, SQL Server User Group Indonesia juga sering mengadakan kegiatan untuk komunitas SQL di Indonesia berupa seminar dan event
  • PASS official Chapter, sebagai official chapter dari PASS (http://www.sqlpass.org/) yang merupakan assosiasi internasional yang berkaitan dengan user group dan komunitas SQL sedunia memiliki kesempatan untuk dapat mengikuti kegiatan tahunan bersekala internasional seperti PASS Summit. Dan SQL Server User Group Indonesia berkesempatan untuk mengirimkan perwakilannya dalam kegiatan ini.

 

Share this post: | | | |
Credential Sertifikasi & Training baru (lagi) dari Microsoft

Ya, saya mendapatkan e-mail MCP Flash mengenai informasi ini. Credential baru tersebut bernama Microsoft Certified Master. Aduh, ada2 aja Microsoft ini. Credential baru ini tersedia untuk 3 jenis technical skills, yaitu :

Tapi, credential baru ini belum resmi diumumkan oleh Microsoft. Bagi yang tertarik, diminta untuk sering-sering mengunjungi website Microsoft untuk mengetahui kabar terbaru tersebut. Confused

Share this post: | | | |
Game Programming with C# - Edisi 2

Ok, saya akan melanjutkan pembahasan mengenai game programming dengan bahasa pemrograman C#. Kali ini saya akan membahas mengenai pembuatan Class Vector pada VS2008 :

Membuat class Vector untuk menyimpan beberapa operator matematis vektor untuk digunakan :

 Class Vector

Penggunaan syntax override di atas, memungkinkan kita untuk membuat 'operator baru' untuk digunakan, misalnya kita ingin menghitung penjumlahan 2 buah vektor, dimana : V1 = | 3, 4 |  dan V2 = | 5, 6 | , maka kita dapat menuliskan syntax seperti ini :

                            Vector  v1 = new Vector(3, 4);

                            Vector v2 = new Vector(5, 6);

                            Vector vsum = v1 + v2;

Oh ya, sebelum kita dapat menggunakan class vector tersebut, kita harus membuat reference dengan menambahkan Class Vector tersebut dengan cara : Projects Name > Add Reference > Projects, pilih  Class yang akan dijadikan reference.

Class Vector ini akan digunakan untuk membuat pergerakan objek aplikasi game menjadi lebih halus. Berikutnya saya akan membahas mengenai bagaimana memasukkan objek (berupa image dengan format .png) ke dalam Windows Form, dan penggunaan event OnKeyDown, OnKeyUp untuk membuat pergerakan objek pada Windows Form menjadi lebih interaktif.

Btw, saya belum menyebutkan nama dosen yang mengajar saya pada mata kuliah ini sama sekali sebelumnya. Dosen saya yang mengajar saya pada mata kuliah ini adalah Laurentius Risal. Beliau adalah dosen yang memiliki pengetahuan yang luas mengenai .NET Framework, selain itu, Ia juga merupakan MCP, MCAD.NET, MCDB, dan MCSD. Cool Ok, sekian dulu pembahasan saya kali ini, saya akan membahas hal ini pada lain kesempatan (halah..).

 

Salam hangat di pagi hari yang cerah,

Rangga Praduwiratna 

Share this post: | | | |
Game Programming with C# - Edisi 1

Hmm.. sudah lama juga saya tidak memposting tulisan baru disini. Tugas-tugas kuliah yang terus menerus berdatangan, membuat waktu saya untuk browsing di internet menjadi sedikit dan seperlunya saja.

Waktu liburan yang cukup panjang (sekitar 2 bulan-an) kali ini pun saya isi dengan mengikuti semester padat kuliah Game Programming with C#. Smile  Nah, berikut saya bahas sedikit mengenai apa yang saya dapatkan di kuliah ini serta beberapa percobaan yang saya lakukan :

1. (Kembali) Mempelajari Vektor dan Gaya-gaya Fisika pada Hukum Newton I dan II

Ok, apa maksud saya disini? Begini, saat kita merancang sebuah game, tentu tidak akan luput dari kedua hal ini, bahkan mungkin ada sedikit tambahan fungsi matematis dan fisika lainnya. Vektor digunakan untuk membuat gerakan pemain/objek menjadi lebih halus, karena didasarkan pada koordinat. Sedangkan Fisika digunakan untuk membuat objek game kita menjadi lebih realistis. Misalnya, sebuah bola yang dijatuhkan pada ketinggian tertentu (game bounce misalnya), tentu akan memiliki gaya-gaya dalam fisika. Berapa tinggi pantulan yang dihasilkan, dan berapa lama yang dibutuhkan sebelum bola tersebut benar-benar berhenti. Huh?

2. Memasukkan image pada Windows Form

Ya, biar bagaimana juga, gambar merupakan elemen penting dalam mendesain game yang baik. Coba lihat beberapa game yang populer : Crysis, Call of Duty, Diablo, dsb. Semuanya memiliki interface yang menarik serta gambar yang menawan (halah..)

Nah, ada 2 cara sebenarnya untuk memasukkan gambar pada Windows Form, pertama, menggunakan picture box :

  1. Buat sebuah PictureBox dan sebuah button pada Windows Form, kemudian beri nama : _canvas pada properties-nya dan nama : _bDrawImage pada button.
  2. Setelah PictureBox dimasukkan, maka click event pada button properties, dan ketikkan nama OnDrawImage pada event OnClick
  3. Masukkan syntax dibawah ini pada event tersebut : 
Syntax OnDrawImage

Dan yang kedua, menggunakan syntax pemrograman yang dapat lebih menghemat resource komputer kita. Berikut adalah syntax yang digunakan :

  1. Right click pada Form > Click View Code
  2. Masukkan syntax di bawah ini untuk 'menggambar image' pada form 
Syntax OnPaint

Ada beberapa hal penting yang harus diingat saat membuat gambar untuk dimasukkan ke aplikasi kita ini :

  1. Format gambar yang akan digunakan.  Ya, ada beberapa format yang dapat digunakan sebenarnya {gif, jpeg, tiff, png, dsb}. Namun untuk kasus kali ini, saya menggunakan format .png, dikarenakan gambar yang dihasilkan lebih halus dan tetap tajam (dibandingkan .gif misalnya)
  2. Ukuran dan dpi dari gambar yang akan digunakan. Ya tentu saja, ukuran gambar akan berpengaruh. Jika terlalu besar atau kecil, maka user akan tidak nyaman saat bermain game, sedangkan dpi akan mempengaruhi ketajaman gambar objek game kita.

Ok, sementara ini dulu yang saya tulis, besok akan saya lanjutkan lagi. Cuaca beberapa hari ini yang kurang bersahabat dan suhu kota Bandung yang walaupun sudah memasuki musim kemarau semakin dingin saja dari hari ke hari terutama pada malam hari, membuat saya flu dan radang tenggorokan. Tongue Tied


Salam hangat di suhu dingin,

Rangga Praduwiratna

 

 

Share this post: | | | |
Free courses on Microsoft E-Learning

Hari ini main-main sebentar ke situs MCP Member page, eh baru liat program ini. Ketinggalan juga ya.. Yap, Microsoft E-Learning menawarkan program ini hingga tanggal 30 Juni 2008 mendatang. Hmm..  bersamaan dengan berakhirnya program Second Shot dan Academic Second Shot ya.. Anda bisa memilih sekitar 1400 courses di sini, diantaranya adalah Microsoff Office Sharepoint Server, Windows Vista, Windows Server, Microsoft SQL Server, dan tentunya Microsoft Visual Studio. Party!!! Hahaha..Jika Anda tertarik, bisa mendaftar disini

Regards,

Rangga Praduwiratna 

 

Share this post: | | | |
SQL Prompt

Saya baru saja menerima newsletter tentang SQL Prompt dari newsletter codeproject tentang SQL Prompt. Nah, apa sih kegunaan tools ini? Menurut artikel yang saya baca, tools ini berguna untuk menghemat waktu pengetikkan T-SQL. Hmm, saya pikir mirip dengan IDE Visual Studio yang banyak membantu developer untuk mengetikkan command. Belum sempet nyoba, soalnya masih ada beberapa tugas yang harus diselesaikan.. Hahaha.. Jika tertarik, bisa didownload di sini. Nanti kalau ada yang udah sempet nyoba, tulis reviewnya ya disini. Thanks.

Screenshot dari website red-gate (dipinjem bentar, tanpa melupakan source link *etika pengutipan nih* Hehehe) :

SQL Server Prompt

Regards,

Rangga Praduwiratna 

Share this post: | | | |
Table Scan Method vs. Clustered Index Method

Pembahasan mengenai metode mana yang memberikan performance lebih baik saat membuat tabel ini sempat dibahas sedikit di milis SQL Server User Group Indonesia . Hal ini menurut saya memang menarik untuk dibahas lebih lanjut dan didiskusikan. Sebelum saya membahas lebih lanjut tentang table-scan method dan clustered index scan method, saya akan membahas sedikit mengenai organisasi data pada SQL Server 2005.

Organisasi data pada SQL Server 2005 

Setiap tabel pada database memiilki sebuah tabel sysindex yang memiliki index id (indid) yang berbeda-beda. Indid ini nilainya bervariasi mulai dari 0 hingga 254. Heap table memiliki indid 0, sedangkan clustered index table memiliki indid bernilai 1, dan non-clustered index table memiliki indid bernilai 2-254. Saat dilakukan pencarian data, maka SQL Server akan melihat FirstIAM (Index Allocation Map) tabel tersebut dan mengenali apakah tabel tersebut memiliki index (baik clustered maupun non-clustered) lewat indid pada tabel sysindex tersebut.

Cara kerja table-scan dan clustered index scan 

Berikutnya adalah bagaimana cara kerja table scan dan clustered index scan. Ilustrasi mengenai cara kerja table scan dan clustered index scan, pernah saya bahas pada artikel sebelumnya. Table scan method dapat diumpamakan seperti mencari sebuah kata pada tabel yang tidak memiliki index. Anda mungkin dapat menghabiskan waktu untuk mencari kata tersebut pada buku yang saya maksud, sedangkan clustered index scan dapat diumpamakan seperti index huruf pada kamus, Anda hanya perlu mencari huruf yang sesuai dengan huruf pada awal kata yang Anda cari. Hal ini tentu menyebabkan waktu pencarian dengan kedua metode tersebut berbeda. Clustered index scan akan mengoptimalkan waktu pencarian Anda. Demikian pula yang terjadi pada SQL Server. Clustered index table menggunakan struktur B-Tree (root-intermediate-leaf) yang akan membantu optimalisasi waktu pencarian data. Sebenarnya heap table juga menggunakan konsep ini, namun ada perbedaan yang terdapat antara kedua metode ini. Hal tersebut adalah :

  • Heap table minimal membutuhkan 4 jump untuk mencari data. Jump tersebut antara lain : pencarian di root page, intermediate page, leaf node, dan data page itu sendiri. Hal ini dikarenakan data pada leaf node adalah pointer data, sehingga SQL Server perlu mencari lagi data yang Anda maksud pada harddisk. Oleh karena itu, IAM pada table scan lebih tepat disebut sebagai Storage Allocation Map (SAM). Hal yang pertama kali dilihat oleh SQL Server saat melakukan table scan adalah FirstIAM (Index Allocation Map) tabel tersebut. Saat indid bernilai 0, yang berarti tabel tersebut merupakan heap table, maka SQL Server akan mencari pada header page database. Hal inilah yang menyebabkan waktu eksekusi pada heap table menjadi lebih lama.
  • Clustered index table hanya membutuhkan 3 kali jump untuk mencari data. Jump tersebut antara lain :  pencarian di root page, intermediate page, dan leaf node. Saat mencapai leaf node, data yang Anda cari sudah terdapat disana, sehingga waktu pencarian pun akan menjadi lebih singkat. Selain itu, data yang dimasukkan pada tabel yang memiliki clustered index akan 'dipaksa' untuk disimpan secara terurut berdasarkan index. Hal ini akan membuat pencarian data lebih cepat. 

Ada beberapa hal yang perlu Anda ingat disini, walaupun pada clustered index table data sudah 'terurut' dengan baik, Anda perlu mengaktifkan update statistic atau secara rutin mengupdate statistic index. Hal ini bertujuan untuk mencegah terjadinya fragmentasi index. 

Nah, setelah penjelasan mengenai hal ini, semoga pengertian konsep pencarian data dengan kedua metode ini akan lebih baik dari sebelumnya.Sebenarnya saya agak takut membahas hal ini, dikarenakan takutnya mispersepsi yang mungkin akan timbul setelahnya. Untuk itu saya akan menyertakan referensi yang saya gunakan untuk penulisan artikel ini, agar rekan-rekan bisa mereview ulang artikel saya ini. Semoga berguna buat rekan-rekan.


Referensi yang digunakan :

SQL Server Books Online

MSDN Article : SQL Server Optimization 

SQL Druid Article mengenai Optimization in SQL Server 

Sybex - Implementation and Maintenance MS SQL Server 2005 

 

Regards,

Rangga Praduwiratna, MCP, MCTS : SQL Server 2005 

Share this post: | | | |
Back Up Your Database in SQL Server 2005

There are several types of backup methods in SQL Server 2005. In this time, I'll tell you about full backup, differential backup, incremental backup, and transaction log backup.

Full Backup. This type of backup will lets you to backup all of extents of your database.  In my previous articles, I've already explain about extent in SQL Server 2005. SQL Server always save your data in pages and extents. 1 pages contains 8 Kb of your data, and 1 extents is a group of 8 pages which contains 64 Kb data of your database. To use this type of backup, you must set your recovery model to full, before you backup your database. To set your database recovery model, you can use this query :

        ALTER DATABASE [ database_name

        SET RECOVERY [ FULL | BULK_LOGGED | SIMPLE ] 

,and you can do full backup by using this query :

        BACKUP DATABASE [ database_name ] TO DISK = '<directory>\<filename>' WITH INIT

TO DISK clause specify the location of your backup device, while WITH INIT clause is the common clause to tell SQL Server to overwrite existing data in backup device.  You can make backup device by using SSMS or simply by using this query. Backup device is logical backup medium to save your backup data. It has extension .bak.

Differential Backup. This type of backup will backup your database since the last full backup. SQL Server will make extent map to recognize the new data in your database. When you insert data in your database, extent will have bit with 0 to 1 to represented their information. After you do full backup, it will be reseted to 0, in this way SQL Server know which data that have to be backed up in differential backup methods.Notes that you can do this type backup if you have done full backup to your database.

You can do differential backup by using this query : 

        BACKUP DATABASE [ database_name ] TO DISK = '<directory>\<filename>' WITH DIFFERENTIAL

Incremental Backup. This type of backup looks similar to differential backup. But actually, it's really different. Incremental backup will back up your database since the last full backup and the last incremental backup. So if you have 100 Mb data on Sunday, 150 Mb data on Tuesday,  200 Mb data on Wednesday, and 250 Mb data on Thursday. So the size of full backup data taken on Sunday is 100 Mb, while the incremental backup data taken on Tuesday, Wednesday, and Thursday are 50 Mb data for each day. 

To restore this incremental backup, you must have all of your incremental backup data, or you won't be able to restore your database completely. For example, your incremental backup data on Wednesday is lost, you won't be able to restore your incremental backup data on Thursday. This type of backup are not recommended for production database, since it has a lot of risks.

Transaction Log Backup. This type of backup needs full backup of your database. Transaction Log Backup will back up all actives log files of your database. To use this type of backup you can use this query :

        BACKUP LOG [ database_name ] TO DISK = '<directory>\<filename>' WITH INIT

You also can make operators and scheduled tasks to be assigned backup job to automated backup process of your database. I won't explain it this time, but I promise I'll tell you about this later. 

Regards,

Rangga Praduwiratna

Share this post: | | | |
Partitioning Table in SQL Server 2005

Partitioning is a new functionality in SQL Server 2005. It lets you split your tables to several filegroups, so user can access your table faster. Partition acts like an object, so you can assign it to your destination table.

You can create partition function by using this query :

                 CREATE PARTITION FUNCTION partition_fn_name (input_parameter_type

                AS RANGE [LEFT | RIGHT] 

                FOR VALUES ([ boundary_value ]) [;]

The boundary_value lets you to control how many rows in your table to be separated. Below is illustration for this query :

                CREATE PARTITION FUNCTION pFunc (int)as

                RANGE LEFT FOR VALUES (100,200);

It means you create partition with LEFT RANGE, your partition will be : infinity to 100, 101-200, and 201 to infinity. If you specify RIGHT range, then your partition will be like this : infinity to 99,  100-199, and 200 to infinity. After you create partition function, you must create a partition scheme to defines the physical storage structures or filegroups that have been made before. 

                CREATE PARTITION SCHEME partition_scheme_name

                AS PARTITION partition_function_name

                TO ( [ filegroups_name ] ) ( ; )

Notes that if you make 2 boundary_value, the result will be 3 partitions, so you must specify 3 filegroups. If you want to use only one filegroups, you can use ALL TO clause rather than TO clause. You can use this partition function and scheme by using query like this :

                CREATE TABLE KTP

                (KTPID int identity(1,1) PRIMARY KEY CLUSTERED,

                NamePenduduk varchar(50) not null,

                Address varchar(50) not null)

                ON partition_scheme_name(KTPID); 

In above example, you put partition scheme and function on KTP ID field in Table KTP, since it has index. You also can put partition function on different tables or fields. You also must make filegroups' used by partition scheme before execute this query. I said before that you can increase your database server performance by creating partitions, since you can put your filegroups to the best hardware that have the fastest READ/WRITE time. For example RAID 5.

 

Regards,

 

Rangga Praduwiratna 

 

Share this post: | | | |
More Posts Next page »