thanks ini benar2 menambah pengetahuan saya
salam,
wayan
johan max <[EMAIL PROTECTED]> wrote:
Autonumber memiliki keunggulan sebagai berikut :
1. mudah digenerate dan murah (tergantung pada
algoritma pembuatan number)
kekurangan :
bisa menyebabkan disk contention dimana serangkaian
row yang memiliki id berdekatan diakses oleh beberapa
thread
Algoritma yang anda gunakan mengenerate untuk
autonumber seperti di bawah
cenderung boros proses.
Lebih jelasnya
select count dan max itu bisa berarti traversal table
select count mungkin tidak jika statistik databasenya
ada tapi jika tidak ada akan terjadi table traversal
select max pasti melakukan tabel traversal.
Table traversal adalah sebuah proses menjelajahi
seluruh isi table.
Selain itu solusi ini tidak scalable yaitu tidak
mungkin diterapkan pada sistem yang kritis karena
maasalah konkurensi dimana 2 atau lebih proses hendak
membuat id dengan cara yang seperti tadi. Apalagi tadi
lock yang digunakan adalah lock optimistic. Ini jelas
masalah.
Cara yang feasible adalah
1. menggunakan fitur autonumber dari msaccess atau
fitur identity dari MSSQL Server 2k
2. membuat table ID generator
contoh taIDGen ( namatable varchar(128), nomor int,
primary key (namatable))
untuk menggunakannya gunakan cara berikut
lock taidgen
select nomor+1 as nomor2 from taidgen
where namatable='nama table'
update taidgen set nomor=nomor+1
where namatable='nama table'
commit;
releaselock taidgen.
Untuk lebih detailnya silahkan lihat manual. Sorry
agak lupa
--- Padu Arsana W <[EMAIL PROTECTED]> wrote:
> thanks atas koreksinya mas Lim. :) bener banget
> kelemahannya jika ada yg terhapus maka udah pasti
> ini akan manghasilkan nomor yang sama.
>
> cara hapus yg saya pake sih dgn tidak menghapus
> record dari tabel tp memberi status record tersebut.
>
>
> Salam,
> Padu Arsana
>
>
> [EMAIL PROTECTED] wrote:
>
> sorry ya mas Padu, nambahin dikit nih,
> Sekedar input buat mr. thoyib, kalo pake fungsi
> aggregate COUNT,
> Rs.Open "SELECT Count(PMASUK.No_PM) AS JmREC From
> MASUK", CN, adOpenDynamic, adLockOptimistic
> kelemahannya adalah kalau ada record yang dihapus di
> tengah2 maka fungsi count bisa menghasilkan
> penomoran yang terduplikasi.
>
> mungkin bisa juga menggunakan fungsi MAX, cuma ya
> agak reprot dikit.
> misal :
> SELECT CAST(MAX(RIGHT(NO_PM,3)) AS INT) AS JMREC
> FROM MASUK
> tapi ada kelemahannya juga, yaitu pada saat posisi
> record masih kosong dia akan menghasilkan nilai
> NULL.
> jadi mesti dicek kalo isnull JMREC maka nomor
> langsung dapet 001.
>
> semua kembali pada kita mo pake yang mana.
>
> Brgds,
> Lim Agus Fitrian
>
>
>
> Padu Arsana W <[EMAIL PROTECTED]>
> Sent by: [email protected] 01/27/2006
> 15:53 Please respond to
> [email protected]
>
>
> To
> [email protected] cc
> Subject
> Re: [Programmer-VB] Auto Number
>
>
>
>
> Dear Mr. thoyib
>
>
> kayaknya udah pernah ada yang nanya and jawab ini!
> but just to help u
> ...........
>
>
>
> Wahana Programmer Groups Links
>
>
>
>
>
>
>
> SPONSORED LINKS
> Programmer Indonesia Basic programming
> language Computer programming languages
> Programming languages Java programming language
>
> ---------------------------------
> YAHOO! GROUPS LINKS
>
>
> Visit your group "Programmer-VB" on the web.
>
> To unsubscribe from this group, send an email
> to:
> [EMAIL PROTECTED]
>
> Your use of Yahoo! Groups is subject to the
> Yahoo! Terms of Service.
>
>
> ---------------------------------
>
>
>
>
>
>
> ---------------------------------
> Bring words and photos together (easily) with
> PhotoMail - it's free and works with Yahoo! Mail.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Wahana Programmer Groups Links
<*> Untuk mengunjungi sponsor milis ini, klik link berikut:
http://wahanaprogrammer.net
<*> Untuk menghubungi owner milis ini, kirim email ke:
[EMAIL PROTECTED]
<*> Konsultasi pemrogramman bisa chat disini:
Yahoo! Messenger: wahanaprogrammer
Bring words and photos together (easily) with
PhotoMail - it's free and works with Yahoo! Mail.
Wahana Programmer Groups Links
<*> Untuk mengunjungi sponsor milis ini, klik link berikut:
http://wahanaprogrammer.net
<*> Untuk menghubungi owner milis ini, kirim email ke:
[EMAIL PROTECTED]
<*> Konsultasi pemrogramman bisa chat disini:
Yahoo! Messenger: wahanaprogrammer
YAHOO! GROUPS LINKS
- Visit your group "Programmer-VB" on the web.
- To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
- Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
