Tips Optimasi Query SQL Server

Diposting oleh T. Erick Sitorus | 07.28 | | 0 komentar »

Optimasi dapat berarti suatu cara untuk memperoleh kinerja maksimum. Maka Optimasi Query SQL Server berarti suatu cara atau tips untuk memperoleh kinerja maksimum dari Database SQL Server saat mengeksekusi perintah Query yang kita berikan.

Setelah berkelana menjelajahi puluhan tutorial di Internet yang saya dapatkan, saya coba share beberapa trik untuk optimasi Database SQL Server kita, antara lain :

1. Menentukan Tipe Data yang Tepat.
Hal ini sebenarnya gampang-gampang susah, perlu ketelitian dalam menganalisa tipe dari data-data yang hendak kita kelola. Sebagai contoh, Kita harus mengetahui kapan harus menggunakan tipe data char atau varchar. Keduanya sama-sama tipe karakter, bedanya char ukuran penyimpanannya tetap (fixed), sedangkan varchar ukuran penyimpanannya sesuai dengan panjang karakter data.

2. Hindari Allow Null
Kurangi penggunaan Allow Null, sebagai gantinya berikan nilai default bila field kosong. Nilai null mengonsumsi byte tambahan sehingga menambah beban saat akses query.

3. Hindari SELECT *
Perintah SELECT sangat umum digunakan, perintah SELECT dengan (*) akan mengakses seluruh field di suatu tabel. Bila tabel anda punya banyak field dan anda hanya memerlukan sebagian fieldnya saja, ada baiknya anda menentukan field yang hendak anda proses daripada menggunakan tanda (*).

4. Batasi ORDER BY
Pengurutan akan menambah konsekuensi menambah beban query karena akan menambah 1 proses yaitu sorting. Karena itu gunakan perintah ORDER BY hanya jika anda memerlukannya. Jika memungkinkan lakukan proses Pengurutan / Sorting pada aplikasi, bukan di Query.

5. Gunakan JOIN daripada Subquery
Daripada anda menumpuk beberapa Query sekaligus yang saling berhubungan, lebih baik anda menggunakan JOIN untuk menghasilkan performa yang lebih cepat.

6. Batasi Record yang dipanggil
Perhatikan bila table anda memiliki ratusan atau ribuan data, jangan memanggil seluruh data sekaligus. Disarankan anda melakukan Paging dengan membatasi Record yang keluar dengan menggunakan perintah TOP didalam perintah SELECT. Contoh : SELECT TOP 100... (sama dengan perintah LIMIT pada Mysql)

7. Link Gambar di Database
Ada pepatah mengatakan sebuah gambar bermakna sejuta kata namun tidak berarti anda harus menyimpan gambar tersebut di database, akan lebih optimal bila anda menyimpan path / lokasi dan nama file gambarnya saja.

Pasti masih banyak cara lain yang tidak mungkin dibahas semuanya disini. Mungkin anda juga tidak terlalu melihat perbedaan yang signifikan jika anda mengabaikan tips-tips diatas terlebih jika spesifikasi komputer / server anda cukup canggih untuk kinerja eksekusi program yang cepat. Namun anda disarankan untuk menekan penggunaan memory untuk optimasi kinerja Database terlebih bila anda bekerja dengan aplikasi yang besar.

Apabila kita berbicara tentang Rich Text maka itu berarti suatu Text Editor yang memiliki fasilitas format text yang banyak. Text Editor dalam hal ini harus lebih kaya fungsi dibanding Text Editor sederhana seperti Notepad.

Kita coba membuatnya di VB.Net 2008 dan ini adalah contoh Rich Text Editor (seperti Wordpad di Windows). Menu menggunakan icon-icon (seperti toolbar) yang digunakan untuk memformat text pada textpad.

Berikut adalah penampakan output program Rich Text Editor yang dimaksud. (mirip dengan Wordpad)


Program diatas sebenarnya tidak menggunakan object RichTextBox yang disediakan di ToolBox, namun melakukan scripting untuk membuat objectnya. (code saya temukan saat browsing di Google)

Untuk yang ingin download program dapat mengklik link download di akhir program.

Download Disini

Baca juga di blog ini :
Anda ingin dapat uang dengan hanya menjawab survey..?

Membuat Form Login di VB.Net 2008

Diposting oleh T. Erick Sitorus | 08.07 | | 1 komentar »

Anda pasti tahu kegunaan Form Login, kira-kira untuk melakukan authentication terhadap user yang hendak menggunakan suatu aplikasi.

Kali ini kita akan membuat Login Form, pertama-tama siapkan di Sql Server sebuah database testing dan tabel bernama tbl_user. Kurang lebih berikut penampakan tbl_user.


Sql code untuk tabel diatas dapat didownload di akhir postingan. Selanjutnya buat Project baru di VB.Net 2008 anda dan buat form login seperti berikut ini :


Buat juga 1 form yang akan dituju bila proses login berhasil. Tampilan form tersebut bebas saja. Berikut adalah kode untuk proses login yang akan kita gunakan :

 cmd.Connection = koneksi  
 cmd.CommandText = "SELECT * FROM tbl_user WHERE myuser = '" & TextBoxUser.Text & "' and mypass = '" & TextBoxPass.Text & "'"  
 dtReader = cmd.ExecuteReader  
 If (dtReader.Read()) Then  
   Utama.Show()  
 Else  
   MsgBox("Maaf, Username dan Password tidak Ditemukan....!", MsgBoxStyle.OkOnly, "Login Gagal")  
 End If  

Anda juga dapat mendownload sample kode program login ini diakhir postingan ini. Jangan lupa untuk mengganti nama server SQL Servernya dengan nama server SQL Server di komputer / laptop anda.

Download Disini

Baca juga di blog ini :
Anda ingin dapat uang dengan hanya menjawab survey..?

Postingan kali ini tentang gambar, yaitu cara save image ataupun load image di VB.Net 2008. Gambar dalam hal ini akan ditampilkan melalui PictureBox.

Pertama-tama, di SQL Server siapkan sebuah table bernama tbl_img (nama database = testing).


Data di tabel hanya contoh, boleh diabaikan. Tabel tbl_img ini untuk menyimpan nama file dengan Path gambar yang kita akan gunakan.

Langsung saja buat sebuah project baru di VB.Net dan rancang form seperti berikut ini :


Catatan : Disamping objek yang terlihat diatas, saya juga menggunakan OpenFileDialog.

Anda bisa download sample programnya (beserta Sql Code utk database) di akhir postingan.

Logika programnya sederhana, awalnya memilih gambar melalui tombol Load Picture lalu save datanya ke database dengan tombol Save Picture.

Berikut adalah contoh Load File Image :
 OpenFileDialog1.Filter = "JPG Files (*.jpg)|*.jpg|JPEG Files (*.jpeg)|*.jpeg|GIF Files (*.gif)|*.gif|PNG Files (*.png)|*.png|BMP Files (*.bmp)|*.bmp|TIFF Files (*.tiff)|*.tiff"  
 If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then  
    PictureBox1.Image = New Bitmap(OpenFileDialog1.FileName)  
    PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage  
 End If  

dan berikut untuk Save (Nama file & Path) ke Database :
 Dim cmd As SqlCommand = New SqlCommand("INSERT INTO tbl_img (gambar, alamat) VALUES ('" & TextBoxFileName.Text & "', '" & PathFile & "')", koneksi)  
 cmd.CommandType = CommandType.Text  
 Dim DReader As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)  
Untuk mempermudah anda bisa Download Program disini

Jangan lupa untuk mengganti nama server SQL Servernya dengan nama server SQL Server di komputer / laptop anda.

Postingan kali ini yaitu cara mengisi value dari Combobox yang value-nya berasal dari database. Pertama-tama tentu menyiapkan tabelnya di SQL Server, sebagai contoh saya menggunakan database testing dan tabel bernama tbl_obat. Berikut penampakannya.


Untuk SQL Code dapat didownload di akhir postingan. Sekarang buat project baru di VB.Net 2008 dan buat form seperti berikut ini.


Secara sederhana, berikut adalah kode mengisi ComboBox dengan data dari Database.
   Dim query As String = "SELECT * FROM tbl_obat"  
   Dim DA = New SqlDataAdapter(query, koneksi)  
   Dim DS = New DataSet  
   DA.Fill(DS, "tbl_obat")  
   With ComboBox1  
     .DataSource = DS.Tables("tbl_obat")  
     .DisplayMember = "obat"  
     .ValueMember = "id"  
     .SelectedIndex = 0  
   End With  
Untuk contoh Source Code Program beserta SQL Code dapat didownload Disini.

Jangan lupa untuk mengganti nama server SQL Servernya dengan nama server SQL Server di komputer / laptop anda.

Baca juga di blog ini :
Anda ingin dapat uang dengan hanya menjawab survey..?

Postingan kali ini masih tentang membuat laporan dengan Crystal Report yang datanya ditentukan berdasarkan tanggal yang diinput.

Langsung saja, buat database SQL Server baru bernama testing dan buat tabel bernama beliObat, berikut penampakan tabelnya. (SQL Query dapat didownload bersama program di akhir postingan)


Buat project baru di VB.Net 2008 dan berinama laporan. Buat File Laporan baru dengan Crystal Report (Project - Add New Item - [Reporting] - Crystal Report) dan berinama myreport.rpt. Pada kotak dialog Crystal Report Gallery, pilih saja As a Blank Report.

Tampilkan Field Explorer (bila tidak muncul, panggil melalui menu Crystal Report - Field Explorer). Melalui Field Explorer klik kanan Database Fields dan pilih Database Expert, lalu pada Tree View pilih Create New Connection - OLE DB (ADO) lalu pilih Microsoft OLE DB Provider for SQL Server dan klik Next. Isikan konfigurasi di SQL Server anda dan pilih database testing, Klik Next dan Finish.

Akan tampil kotak dialog Database Expert, pada bagian Selected Tables isikan dengan table beliObat yang kita buat tadi dan klik OK. Lihat Gambar.


Kita perlu parameter tanggal awal dan tanggal akhir sebagai data input ke Crystal Report. Melalui Field Explorer, klik kanan Parameter Fields dan pilih New. Pada Parameter Field, isikan name dengan awal. Lihat Gambar.


Dengan cara yang sama buat parameter akhir.

Melalui Field Explorer, Klik tanda + pada Database Fields dan pindahkan field-field di tabel beliObat ke Form Laporan. Tampilan Form Laporan akan seperti berikut ini:

Untuk memasukkan parameter ke Crystal Report, klik kanan pada Form Laporan pilih selection Formula dan pilih Record dan ketikan syntax berikut:

   
 DateTimeValue({?awal}) <= DateTimeValue({beliObat.tgl_beli}) and DateTimeValue({beliObat.tgl_beli}) <= DateTimeValue({?akhir})  
   

Lihat gambar untuk lebih jelas.

 

Buat Form baru (Windows Form) berinama Formlaporan dan drag CrystalReport Viewer di Toolbox ke Form tersebut. Pada properties CrystalReport Viewer, isikan ReportSource dengan report yang kita buat tadi dan pada Properties Form, ubah Windowstate menjadi Maximized.

Sekarang pindah ke Form1, Buat inputan tanggal awal dan tanggal akhir dengan DateTimePicker. Pada properties DateTimePicker, ganti Format menjadi Custom dan CustomFormat menjadi yyyy-MM-dd. Lihat Contoh seperti berikut ini.


Isikan kode berikut pada tombol CREATE. Kode berikut ini untuk mengirim inputan tanggal ke Form Laporan Crystal Report.
   
 Formlaporan.myreport1.SetParameterValue("awal", DateTimePicker1.Text)  
 Formlaporan.myreport1.SetParameterValue("akhir", DateTimePicker2.Text)  
 Formlaporan.Show()  
   
Link download ada dibawah dan jangan lupa untuk mengganti nama server SQL Servernya dengan nama server SQL Server di komputer / laptop anda.

Download Source Program

Baca juga di blog ini :
Anda ingin dapat uang dengan hanya menjawab survey..?

Adakalanya saat hendak membuat laporan dengan Crystal Report di VB.Net 2008, kita perlu mengirim parameter tertentu ke Crystal Report karena kita hanya ingin menampilkan sebagian data saja dari suatu tabel.

Sebagai contoh kali ini kita menggunakan 2 buah tabel seperti berikut : (kode SQL dapat didownload di akhir postingan)



Kita hendak membuat laporan untuk buku yang kategori dan pengarangnya dapat kita tentukan sendiri, berarti kita perlu 2 parameter untuk memisahkan kategori buku dan pengarang.

Pertama buat sebuah database di SQL Server dengan nama testing dan buat tabel seperti gambar diatas (disediakan SQL Query di akhir postingan).

Buat Project baru di VB.Net 2008 dan beri nama laporan. Abaikan terlebih dahulu Form1.vb, dan buat File laporan dengan Crystal Report (Project - Add new Item - (Reporting) - Crystal Report) dan beri nama laporanparameter.rpt dan klik Add, pilih As a Blank Report dan OK.

Melalui Field Explorer pada bar kanan layar (bila tidak muncul, panggil melalui menu Crystal Report - Field Explorer) klik kanan Database Field lalu pilih Database Expert. Klik tanda + pada opsi Create New Connection dan pilih OLE DB(ADO), lalu pilih Microsoft OLE DB Provider for SQL Server dan klik Next, isikan sesuai konfigurasi database SQL Server anda (dalam hal ini saya menggunakan Integrated Security) dan klik Next lalu Finish.

Pada tab Data, drag / pindahkan tabel tbl_buku dan tbl_kategori ke sisi kanan (Selected tables), Lihat contoh gambar dibawah:



Kemudian pada tab link buat penghubung (link) antara field komik di tbl_buku dengan id di tbl_kategori. Lihat gambar:



Melalui Field Explorer, klik kanan di Parameter Fields dan pilih New. Pada Field Nama isikan kategori dan klik OK. Dengan cara yang sama, klik kanan di Parameter Fields dan pilih New. Pada Field Nama kali ini isikan pengarang.

Klik kanan di form laporan pilih Report - Selection Formula - Record. Pada parameter editor, tarik field kategori di tbl_kategori dan samakan dengan parameter kategori lalu tarik field kategori di tbl_buku dan samakan dengan field id di tbl_kategori serta tarik field pengarang di tbl_buku dan samakan dengan parameter pengarang. Lihat contoh berikut :



Buat form laporan seperti gambar berikut :



Kemudian Buat Form Baru dan berinama formlaporan.vb dan drag CrystalReportViewer di toolbox ke Form. Melalui Propertiesnya, pilih ReportSource dengan laporan yang kita buat tadi.

Untuk di Form1 Buat seperti berikut :



Untuk kode program sebagai berikut (Kode Untuk tombol Enter) :   

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
     formlaporan.laporanparameter1.SetParameterValue("kategori", TextBoxKategori.Text)  
     formlaporan.laporanparameter1.SetParameterValue("pengarang", TextBoxPengarang.Text)   
 formlaporan.Show()   
 End Sub  
Program diatas meminta nama kategori dan pengarang yang kita inginkan dibuatkan laporannya. Tombol Enter mengirim 2 parameter kategori dan pengarang ke Form Laporan.

Untuk memudahkan anda bisa download source code program di akhir postingan.  Jangan lupa untuk mengganti nama server SQL Servernya dengan nama server SQL Server di komputer / laptop anda.

Download Disini.

Baca juga di blog ini :
Anda ingin dapat uang dengan hanya menjawab survey..?

Di postingan Kali ini kita akan membuat laporan sederhana menggunakan Crystal Report, Crystal Report yang kita gunakan adalah versi yang dibundle bersama Visual Studio 2008.

Pertama-tama buat database di SQL Server dan beri nama testing. Kemudian buat tabel tbl_buku seperti berikut ini : (Script SQL dapat didownload di akhir postingan)


Buat project baru VB.Net 2008 lalu berinama bikinlaporan kemudian buatlah sebuah code file untuk koneksi caranya (Project - Add New Item -> Pilih Code File). Isikan kode berikut ini :
 Imports System.Data.SqlClient  
 Public Module modulkoneksi  
 #Region "Deklarasi Variabel"  
   Public koneksi As SqlConnection = Nothing  
   Public cmd As SqlCommand = Nothing  
 #End Region  
 #Region "Fungsi Testing Koneksi Database"  
   Public Sub TestKoneksi()  
     Dim connString As String = "Data Source=ZHENLONK-342572;Initial Catalog=testing;Integrated Security=True"  
     koneksi = New SqlClient.SqlConnection(connString)  
     Try  
       koneksi.Open()  
       koneksi.Close()  
     Catch ex As Exception  
       MessageBox.Show("Database Connection Error : " & ex.Message)  
     End Try  
   End Sub  
 #End Region  
 End Module  
Untuk Data Source (nama Server) dan Initial Catalog (nama Database) dapat disesuaikan dengan kondisi di komputer anda.

Untuk membuat file laporan, klik project - Add new Item - Crystal Report dan beri nama laporan.rpt (lihat gambar berikut)

 

Kemudian pada kotak dialog Crystal Report Gallery pilih As a Blank Report dan kita akan mendapat report kosong.

Munculkan Field Explorer (Apabila tidak muncul dapat dipanggil melalui menu Crystal Report - Field Explorer). Melalui Field Explorer klik kanan Database Fields dan pilih Database Expert, lalu pada Tree View pilih Create New Connection - OLE DB (ADO) lalu pilih Microsoft OLE DB Provider for SQL Server dan klik Next. Lalu pada settingan Server masukkan nama server anda (Atau bisa gunakan Computer Name), dalam hal ini saya menggunakan Integrated Security (bila anda tidak menggunakannya, masukkan username dan password login SQL Server anda) kemudian pilih database di opsi Database. Kemudian Klik Next dan Finish.

Koneksi sudah terbentuk, lalu pindahkan tabel tbl_buku sebagai selected tables dan Klik OK. Lihat gambar :



Melalui Field Explorer klik Database Fields, masukkan Field-field di tabel tbl_buku ke lembar laporan dan atur seperti contoh dibawah ini dan Save.



Buka Form1 dan melalui Toolbox cari CrystalReportViewer dan masukkan ke Form1. Melalui properties CrystalReportViewer, isikan ReportSource dengan laporan yang kita buat tadi. Run (F5) VB dan Report akan ditampilkan.

Anda Bisa Download Sample Program Disini

Jangan lupa untuk mengganti nama server SQL Servernya dengan nama server SQL Server di komputer / laptop anda.

Baca juga di blog ini :
Anda ingin dapat uang dengan hanya menjawab survey..?