Dear Friend,
Untuk masalah temp table ini, gue uda terapkan di web aplikasi untuk bank danamon (gue ikut nimbrung di project ini), nah aplikasi itu di akses oleh semua cabang di danamon di seluruh Indonesia, bisa bayangkan banyaknya user yg akses dan besarnya data yg ditampung. >> Ini pakai client toolsnya apa yach ? ASP klasik atau .NET yach?.Kalo .NET bro, bukannya udah melenceng dari konsep Data set yang telah terdapat aplikasi .NET tersebut bro daripada bermain-main di databasenya. Soalnya aplikasi saya aja yang dulu masih sedikit client, sering time-out gara-gara memakai temp table ini. Akhirnya saya pindah semua kode server menggunakan teknik sub query. Kemungkinan dari aplikasi saya mungkin memang dari segi hardware sich, atau mungkin resourcenya bengkak karena user yang mengakses aplikasi lagi penuh sehingga temp table saya full. Seperti yang dijelaskan dan sebagai tambahan, takutnya kalo pakai temp table ini, multi-user aplikasi lebih dari 1 orang mengakses temp-tabel kita kalo koneksi penuh, bisa drop. Ada kemungkinan kita masih menyimpan temp table kita ( lupa menghapus). Daripada menduga-duga, biasanya saya gunakan temp-tabel di tahap development, setelah dibawa ke production, saya ubah kembali store procedure saya menjadi sub query. Memang susah sih cara bacanya jika pakai sub query pakai remarks/catatan biasanya, tapi performa aplikasi lebih cepat, apalagi kalo udah pakai client connection lookupnya ADODB menggunakan adUseClient. Dan di server nggak perlu create temporary table lagi, jadi istilahnya server nggak perlu kerja 2 kali, yang penting kita joinnya benar antar table, indexnya sudah kita pasang, datanya langsung keluar, dan kita nggak perlu kuatir kalo kita lupa drop table. Jadi kita pertimbangkan performa aplikasi kita sewaktu data diload. Contohnya aja untuk form lookup yang meliputi beberapa relationship table dan reporting tentunya. Apalagi kalo pakai function, saya biasanya ubah kode menjadi return table atau return value saja, jadi didalam t-sql diusahakan tidak ada declare table lagi.semuanya diubah ke sub-query menjadi 1 return table. Best Regards, _____ From: rudy chasan [mailto:[EMAIL PROTECTED] Sent: 05 Juli 2007 13:43 To: [email protected] Subject: FW: [indoprog-vb] Re: Cara mudah bikin file temp di SQL Server Untuk masalah temp table ini, gue uda terapkan di web aplikasi untuk bank danamon (gue ikut nimbrung di project ini), nah aplikasi itu di akses oleh semua cabang di danamon di seluruh Indonesia, bisa bayangkan banyaknya user yg akses dan besarnya data yg ditampung. nah untuk masalah temp table ini, saya gunakan untuk men "tune up" kecepatan proses dari store procedure yg sudah pernah dibuat. Salah satu store procedure sebelum menggunakan temp table, proses yg di lakukan bisa hampir setengah harian (dari jam 8 - abis makan siang), setelah mengganti beberapa proses dengan menggunakan temp table,proses yg dilakukan cuman 10 menit an..... mantap kan ..... mengenai penggunaan select into pada select distinct kode_customer into #customer from tblcustomer where branch = @branch ini tidak mempengaruhi masalah log system, semuanya di handle oleh SQL server nya, saya sering menggunakannya, karena lebih simple,tapi jika temp table di gunakan di dalam perintah if ... mis: if begin select * form #customer where nama='doel' end else begin select * form #customer where nama='bejo' end baru harus buat temp table nya dulu. ini script untuk meng shrink file log ... log database kita atau database tempdb dump tran tempdb with no_log dbcc shrinkdatabase (tempdb, 0) di atas contoh untuk meng shrink database tempdb, kalo mau database kita tinggal ganti tempdb jadi nama database kita, di jamin log nya nyusut..... tinggal taruh di schedule nya SQL (agentnya SQL). ini semua untuk di gunakan di sql server yah, kalo oracle laen lagi, apalagi access. sekedar info : kalo programing di SQL server (store procedure,function, view, dll) istilah bahasanya T-SQL tapi kalo di oracle istilahnya PL/SQL. kalo ada proses data kalo bisa gunain store procedur, lebih simple, lebih cepat ... jadi di vb nya tinggal tampilin datanya, atau di gunakan dalam proses loop, dimana cuman melakukan sekali loop nya,dibandingkan, ambil recordset untuk customer per cabangnya dulu, trus baru proses ngambil transaksinya, kemudian di cek satu2 customernya,kalo pake store procedure, tinggal kirim paramter cabangnya, trus tinggal proses recordsetnya aja (hanya menggunakan satu recordset). emang sih ini untuk tingkat menengah sampe ke tingkat lanjut, tapi bagi pemula jadi ada pikiran untuk menggunakan proses ini, karena aplikasi yang kita buat sebagian besar berhubungan dengan database. untuk masalah report menggunakan store procedure lebih mudah lagi, dan bisa mengatasi segala macam jenis report yg diminta. dan satu info lagi : semua jenis database server (SQL server,oracle,dll) , kalo mau merasakan betapa power full nya itu database server ... gunakan bahasanya tuh database. githuuuuuuu...... moga bermanfaat ...... --------------------------------- From: indoprog-vb@ <mailto:indoprog-vb%40yahoogroups.com> yahoogroups.com [mailto:indoprog-vb@ <mailto:indoprog-vb%40yahoogroups.com> yahoogroups.com] On Behalf Of David Joyo Mulyono Sent: Thursday, July 05, 2007 10:20 AM To: indoprog-vb@ <mailto:indoprog-vb%40yahoogroups.com> yahoogroups.com Subject: RE: [indoprog-vb] Re: Cara mudah bikin file temp di SQL Server Siip ... kaya gini donk milisnya ... jadi lebih hidup :-)) Untuk penggunaan Temp table, memang agak berbahaya jika tidak ditangani secara benar. Lebih baik dipergunakan untuk hal yang benar-benar penting saja. Cara lain bisa lewat array di program kita. Memang membutuhkan memori dan kecepatan prosesor yang lebih besar di pihak klien, tetapi dapat mengurangi masalah bottleneck dan masalah log. Semua cara yang sedang dibahas mempunyai kelebihan dan kekurangan masing-masing. Jadi seperti kata mas Eris, semuanya tergantung dari kebiasaan si programmer sendiri. Bisa menggunakan semua cara yang ada, tergantung dari apa yang dihadapi. Contoh: laporan stok mungkin bisa memakai temporary table, laporan penjualan menggunakan XML dan SOAP, laporan pembelian bisa menggunakan array, laporan keuangan menggunakan gabungan temporary dan array. Sehingga sedikit banyak bisa mengurangi beban dan masalah-masalah yang bakal muncul. Untuk mengatasi besarnya log, kadang tidak cuma cukup dengan shrink database aja. Walaupun sudah dishrink, tapi Log tetap makin membesar. Trik lain untuk mengatasi log yang besar (harus pada jam kosong) : 1. Detach database 2. Salin file *.MDF dan *.LDF dari database tersebut ke folder lain (untuk backup) 3. Attach database ke SQL Server yang lain 4. Shrink database 5. Detach database 6. Attach database ke SQL Server asal Jika masih membandel : 1. buat script dari database tersebut 2. Buat database baru 3. jalankan scriptnya di Query analyser 4. gunakan Export/Import data Best Regards, David J M Advess - ISV > Uupppss.. Padahal awal pertama saya kasih tip sederhana ini bagi mereka > yang > baru belajar supaya tidak dipusingkan pembuatan table temporary dengan > tidak > memperhatikan hal-hal lain seperti misalnya Log atau bottleneck yang > terjadi > (karena selanjutnya ada tips untuk mengakali log dan bottleneck itu > sendiri.) > > Ternyata ditanggapi oleh para pakar dibidangnya, > > Terima kasih atas tambahannya. > > > > Sementara untuk tingkat lanjutnya saya sependapat dengan yang Mas Rudy > Chasan paparkan. > > Tapi bagaimana pun itu tergantung kebiasaannya si programmer itu sendiri, > nah dengan ada sharring seperti ini tentunya akan banyak menambah masukan > yang sangat berarti sehingga pengetahuan pun tidak hanya mentok > disitu-situ > aja. #ygrp-mlmsg { FONT-SIZE: small; FONT-FAMILY: arial,helvetica,clean,sans-serif}#ygrp-mlmsg TABLE { }#ygrp-mlmsg SELECT { FONT: 99% arial,helvetica,clean,sans-serif}INPUT { FONT: 99% arial,helvetica,clean,sans-serif}TEXTAREA { FONT: 99% arial,helvetica,clean,sans-serif}#ygrp-mlmsg PRE { FONT: 100% monospace}CODE { FONT: 100% monospace}#ygrp-mlmsg { LINE-HEIGHT: 1.22em}#ygrp-text { FONT-FAMILY: Georgia}#ygrp-text P { MARGIN: 0px 0px 1em}#ygrp-tpmsgs { CLEAR: both; FONT-FAMILY: Arial}#ygrp-vitnav { FONT-SIZE: 77%; MARGIN: 0px; PADDING-TOP: 10px; FONT-FAMILY: Verdana}#ygrp-vitnav A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px}#ygrp-actbar { CLEAR: both; MARGIN: 25px 0px; COLOR: #666; WHITE-SPACE: nowrap; TEXT-ALIGN: right}#ygrp-actbar .left { FLOAT: left; WHITE-SPACE: nowrap}..bld { FONT-WEIGHT: bold}#ygrp-grft { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 15px; PADDING-TOP: 15px; FONT-FAMILY: Verdana}#ygrp-ft { PADDING-RIGHT: 0px; BORDER-TOP: #666 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; FONT-FAMILY: verdana}#ygrp-mlmsg #logo { PADDING-BOTTOM: 10px}#ygrp-vital { PADDING-RIGHT: 0px; PADDING-LEFT: 8px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 8px; PADDING-TOP: 2px; BACKGROUND-COLOR: #e0ecee}#ygrp-vital #vithd { FONT-WEIGHT: bold; FONT-SIZE: 77%; TEXT-TRANSFORM: uppercase; COLOR: #333; FONT-FAMILY: Verdana}#ygrp-vital UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 2px 0px; PADDING-TOP: 0px}#ygrp-vital UL LI { CLEAR: both; BORDER-RIGHT: #e0ecee 1px solid; BORDER-TOP: #e0ecee 1px solid; BORDER-LEFT: #e0ecee 1px solid; BORDER-BOTTOM: #e0ecee 1px solid; LIST-STYLE-TYPE: none}#ygrp-vital UL LI .ct { PADDING-RIGHT: 0.5em; FONT-WEIGHT: bold; FLOAT: right; WIDTH: 2em; COLOR: #ff7900; TEXT-ALIGN: right}#ygrp-vital UL LI .cat { FONT-WEIGHT: bold}#ygrp-vital A { TEXT-DECORATION: none}#ygrp-vital A:hover { TEXT-DECORATION: underline}#ygrp-sponsor #hd { FONT-SIZE: 77%; COLOR: #999}#ygrp-sponsor #ov { PADDING-RIGHT: 13px; PADDING-LEFT: 13px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: #e0ecee}#ygrp-sponsor #ov UL { PADDING-RIGHT: 0px; PADDING-LEFT: 8px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px}#ygrp-sponsor #ov LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; LIST-STYLE-TYPE: square}#ygrp-sponsor #ov LI A { FONT-SIZE: 130%; TEXT-DECORATION: none}#ygrp-sponsor #nc { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #eee}#ygrp-sponsor .ad { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 8px; PADDING-TOP: 8px}#ygrp-sponsor .ad #hd1 { FONT-WEIGHT: bold; FONT-SIZE: 100%; COLOR: #628c2a; LINE-HEIGHT: 122%; FONT-FAMILY: Arial}#ygrp-sponsor .ad A { TEXT-DECORATION: none}#ygrp-sponsor .ad A:hover { TEXT-DECORATION: underline}#ygrp-sponsor .ad P { MARGIN: 0px}o { FONT-SIZE: 0px}..MsoNormal { MARGIN: 0px}#ygrp-text TT { FONT-SIZE: 120%}BLOCKQUOTE { MARGIN: 0px 0px 0px 4px}..replbq { } --------------------------------- Lelah menerima spam? Surat Yahoo! mempunyai perlindungan terbaik terhadap spam. http://id.mail. <http://id.mail.yahoo.com/> yahoo.com/ [Non-text portions of this message have been removed] [Non-text portions of this message have been removed]
