temp table itu hanya ada selama session koneksi ke database dalam keadaan open, kalo temp table nya di buat di dalam SP, setiap meng execute SP nya itu adalah session yg sedang aktif misalnya SQL1 ="exec get_customer_transaction_per_branch '" & strBranch & "'" trus di execute dengan recordset1
SQL2 ="exec get_customer_transaction_per_branch '" & strBranch & "'" trus di execute dengan recordset2 antara recordset1 ama recordset2, masing2 akan membuat temp table yg berbeda tapi satu nama #customer, masing2 di session yg bebeda. satu session satu temp table kalo mau bukti in, 1.buka query analyzer nya sql 2. buka 2 window query. 3. di window query ke satu buat table temp ---> select 'doel' as nama into #customer 4. kemudian coba lakukan (masih dalam window query yg ke satu) ----> select * from #customer 5. maka akan muncul hasilnya 6 pindahin ke window query ke dua 7.kemudian coba lakukan ----> select * from #customer 8 hasil ---> Invalid object name '#customer' karena itu session yg berbeda itu yg di maksud sessionnya berbeda, jadi setiap buka koneksi ke database, sql akan membuat satu session, jadi setiap koneksi jgn lupa di close, emang sih di vb, masalah nge close koneksi database akan dilakukan otomatis kalo programnya sudah keluar, tapi kan kalo keluar, kalo belum keluar, trus ada yg jalanin program kita lagi ( multi user), sampe banyak user, apa yg ter jadi? ...... itu namanya memory leak ...jgn heran kalo istilah memory leak bisa terjadi di vb .... biasanya istilah itu di kenal di kalangan programmer C. soalnya team gue pernah ngalaminnya. temp table itu di buatnya di database tempdb itu, bukan di table kita, makanya lognya tempdb suka bengkak filenya. makanya di anjurkan untuk selalu melakukan drop table #customer kalo di dlm SP nya tidak di perlukan lagi. gitchuuuuuu ..... FYI : di dlm sql server ada dua cara membuat temp table 1. dengan perintah Create table #customer ..... dst 2. dengan perintah declare @customer table(nama varchar(20)) ..dst untuk yg nomor 2, itu prosesnya lebih cepat lagi dibandingkan dengan nomor 1 kenapa bisa lebih cepat? ..... karena temp tablenya dibuat di memory, sama seperti kalo kita men declare variable, jadi itu namanya variable bertipe table, jadi kalo datanya banyak, otomatis akan makan memory banyak juga (bukan space nya hardisk loh), gue sendiri jarang menggunakan nomor 2, karena terlalu banyak makan memory. moga bermanfaat .... --------------------------------- From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Opie Purnama Sent: Thursday, July 05, 2007 3:52 PM To: [email protected] Subject: Re: [indoprog-vb] Re: Cara mudah bikin file temp di SQL Server sori nanya juga kl seandainya buat temp table dgn nama #customer ini disimpan ga di Database? kl disimpan dgn nama apa? apa yg terjadi kl seandainya ada orang lain juga yg buka SP ini? apakah akan mereplace temp dari user yg buka duluan pertama? terima kasih ----- Original Message ----- From: rudy chasan To: [email protected] Sent: Thursday, July 05, 2007 1:42 PM 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 ....... . [Non-text portions of this message have been removed] #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 { } --------------------------------- Kunjungi halaman depan Yahoo! Indonesia yang baru! [Non-text portions of this message have been removed]
