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]

Kirim email ke