Rabu, 29 Juni 2011

Re: [belajar-access] Re: Prinsip kerja Link Table

 

Oh,...ok mas,,berarti malah saya dapat 2 data eksperimen,,,yang dari Mas tentang cara kerja Access dalam penarikan data yg dilakukan dgn VBA
melalui operasi recordset (hehehe,,betul gak sih) ... yg data eksperimen saya adalah data cara kerja Link Table khusus pada waktu file dibuka awal.
Ok mas, dah bisa narik kesimpulan sekarang.

Rerards
Hendra


From: aksankurdin <aksan.kurdin@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Thu, June 30, 2011 7:37:05 AM
Subject: [belajar-access] Re: Prinsip kerja Link Table

 

semua data pencatatan memori yang saya lakukan adalah yang ditunjukkan oleh process explorer untuk msaccess.exe. Jadi belum diapa-apain (bukan selisih).
percobaan saya lakukan dengan membuka access hingga penggunaan memori stabil, saya catat di access init.
semua percobaan saya lakukan dengan code vba, contoh untuk buka query yang isinya select dari link tabel, saya open pakai recordset DAO, lalu saya trace record dengan menggunakan movefirst dan movelast, agar meyakinkan access meload semua record, baru saya close dan dispose dari memory. saya lalu mencatat penggunaan memori oleh msaccess.exe .
access saya tutup, memori kembali dilepas oleh msaccess.exe. baru start access lagi untuk thread baru, dan mengulangi cara diatas untuk setiap item percobaan.

aksan kurdin

--- In belajar-access@yahoogroups.com, Hendra Agestha Hamid <the_agestha@...> wrote:
>
> Supaya kesimpulan saya bener mas, nanya dulu soalnya masih bingung (eksperimen
> saya sendiri aja msh bingung ),
> Data kolom Access Init itu maksudnya data memory pada keadaan file Access sudah
> terbuka tapi belum buka Tabelnya ya mas..?dan 2 kolom
> sebelahnya adalah data memory keadaan FE sudah terbuka kemudian tabel didalamnya
> dibuka.
> Ataukah
> Access Init itu adalah data kenaikan memory dari awal FE tertutup kemudian
> dibuka, kemudian kolom kedua adalah data kenaikan memory
> dari FE tertutup kemudian dibuka, kolom ketiga juga sama (intinya data kenaikan
> memory)
>
> Entah benar atau tidak konsep saya adalah mencari data kenaikan memory yg
> terjadi waktu file dibuka awal saja baik FE yang kosong tanpa tabel,
> dan FE yang berisi Link Tabel.
> Karena masih bingung ini saya coba rangkum sebisa saya hasil eksperimen saya
> berdampingan dengan data eksperimen Mas Aksan, jujur masih bingung
> euy narik kesimpulan....
>
> Regards
> Hendra
>
>
>
>
>
>
> ________________________________
> From: Aksan Kurdin <aksan.kurdin@...>
> To: belajar-access@yahoogroups.com
> Sent: Tue, June 28, 2011 11:44:06 AM
> Subject: Re: [belajar-access] Re: Prinsip kerja Link Table [1 Attachment]
>
>
> [Attachment(s) from Aksan Kurdin included below]
> Berikut saya sertakan hasil test saya, data kantor saya import ke accdb dan
> sql server, sebanyak 60 ribu baris, dan besar data access adalah 30 MB
> Hasil filter adalah sekitar 10000 record.
> bagaimana bisa di tarik kesimpulan kan ?
>
> aksan kurdin
>
> On 6/28/2011 7:44 AM, Hendra Agestha Hamid wrote:
>
> >Trima kasih Mas Aksan, saya sebelumnya gak punya ide untuk
> >men-test nya, setelah Mas kasih petunjuk dengan Task Manager
> >baru saya sadar bisa di test lewat task manager.
> >
> >Ini hasil eksperimen saya yg betul2 newbie dalam segala hal
> >komputer termasuk database , mohon bimbingannya atas hasil
> >eksperimen di bawah ini :
> >Sementara ini data terbanyak yang saya punya adalah
> >Northwind yg kalo berisi tabel saja besar file 1,25 M.
> >Kemudian saya copy paste Northwind itu sampai 10 kali, jadi
> >ada Northwind1.mdb sampai Northwind10.mdb...kemudian saya
> >buat
> >mdb baru (Coba.mdb) saya misalkan jadi FE dan saya link
> >semua tabel yg ada di Northwind1 - 10 itu ke Coba.Mdb tsb
> >sehingga
> >di coba.mdb ada 87 link tabel. Kemudian saya buat Coba2.mdb
> >yg tidak berisi apa2 sama sekali.
> >Saya lakukan 4 kali percobaan buka- tutup Coba.mdb dan
> >menghitung kenaikan kerja memory lewat Task Manager tiap
> >buka file Coba.mdb,
> >Hal serupa saya lakukan juga 4 kali utk Coba2.mdb.(sebelum melakukan
> >semua percobaan itu semua aplikasi saya tutup)
> >Hasilnya setelah saya rata2 untuk membuka Coba.mdb terjadi
> >kenaikan kerja memory sebesar 12,5 MB dan utk Coba2.mdb
> >sebesar 9,25 MB..
> >jadi hanya selisih 3,25 MB. (ini utk kasus link table ke
> >File Access)
> >
> >Kemudian Northwind1 sampai 10 semua tabelnya saya transfer
> >ke MySql (DSN=CobaNorthwind), lalu saya buat Coba3.mdb
> >yang saya link ke
> >
> >CobaNorthwind tsb, saya buka tutup Coba3.mdb 4 kali juga,
> >setelah dirata2 terdapat kenaikan 10,25 MB.(kasus link
> >table ke MySQL)
> >
> >Jujur saya gak bisa mengartikan angka2 tsb, tapi kalo
> >logika saya termudah perbandingan antara buka file Access
> >tanpa Tabel sama sekali (Coba2.mdb)
> >T.Manager naik 9,25 MB, kemudian buka File Access berisi
> >87 link Tabel MySql (Coba3.mdb) T.M naik 10,25 MB...dan
> >secara waktu pembukaan
> >yg diperlukan kedua file tsb gak ada beda.
> >Jadi kesimpulan saya memang Link Table tidak meload data pada waktu
> >file FE dibuka, Link Table hanya bersifat koneksi
> >
> >Mohon commentnya nih Mas Aksan, mungkin ada yg kurang dari
> >eksperimen saya di atas.
> >
> >Regards
> >Hendra
> >
> >
> >
> >
> >
> >
> >
> >
> >
> ________________________________
> From: aksankurdin <aksan.kurdin@...>
> >To: belajar-access@yahoogroups.com
> >Sent: Tue, June 28, 2011 4:34:25 AM
> >Subject: [belajar-access] Re: Prinsip kerja Link Table
> >
> >
> >maaf, saya ulangi lagi, ya bang hendra:
> >> Ganti backend dengan client server engine, lalu tarik
> >>data tidak lewat link
> >>
> >> tabel, tetapi query ke store procedure. kalau model
> >>begini, maka jika isi
> >>
> >> store procedurenya adalah:
> >> select * from customer where city = 'jakarta'
> >>
> >> maka data yang masuk ke front end access juga hanya
> >>customer jakarta saja,
> >>
> >> filter sudah dilaksanakan di server.
> >
> >sekarang bagaimana kalau gantian, daripada kita bicara
> >teori, nah ... coba bang hendra riset dengan memanggil
> >link table antara back end access mdb/accdb dan back
> >end mysql/sqlserver/postgress dll. usahakan
> >datanya yang gede, bisa pantau dari penggunaan memori
> >di task manager windows atau dengan process explorer
> >punya sysinternal. nanti akan ketahuan hasil omongan
> >panjang lebar kita di sini, betulkah teori dan hasil
> >diskusi tersebut ?
> >
> >:)
> >
> >aksan kurdin
> >
> >--- In belajar-access@yahoogroups.com, Hendra Agestha
> >Hamid <the_agestha@> wrote:
> >>
> >> Matur nuwun Mas Aksan....
> >>
> >> Kalo kalo saya gak salah tangkap dari penjelasan Mas,
> >>Link Table sebenarnya
> >>
> >> memang adalah fungsi koneksi saja ya mas, seperti
> >>
> >> kalo kita tulis di VBA. Cuma Link Table dibuat dengan
> >>koneksi DAO sbg default
> >>
> >> access..?
> >>
> >> Kemudian tentang cara kerja eksekusi Query atau
> >>perintah SQL seperti yang mas
> >>
> >> jelaskan bahwa seluruh tabel akan di donload
> >> dulu baru di filter di FE, Jika kita pakai BE MySQL
> >>apakah juga seperti itu cara
> >>
> >> kerjanya..? pointnya adalah apapun BE nya maka
> >> cara kerja FE Access adalah tetap seperti yang mas
> >>jelaskan itu.
> >>
> >> Regards
> >> Hendra
> >>
> >>
> >>
> >>
> >>
> >> ________________________________
> >> From: Aksan Kurdin <aksan.kurdin@>
> >> To: belajar-access@yahoogroups.com
> >> Sent: Mon, June 27, 2011 4:25:14 PM
> >> Subject: Re: [belajar-access] Prinsip kerja Link
> >>Table
> >>
> >>
> >> pola umum pembahasannya adalah mengakses database
> >>melalui perangkat
> >>
> >> developer tools seperti .net (vb/c#) atau dari
> >>delphi, bukan dari access to
> >>
> >> access :)
> >>
> >> quotes:
> >> Jadi, apa benar ada link table ? Tidak. Yang ada
> >>adalah Access memindahkan
> >>
> >> seluruh data dari asal ke dalam memori, dengan
> >>rentang refresh data yaitu
> >>
> >> setiap ada eksekusi query yang merujuk ke "link
> >>table" ini. Bisa
> >>
> >> dibayangkan ? Coba tambahkan bayangannya sebagai
> >>berikut :
> >> Ketika ada perintah dari form untuk ambil semua data
> >>dari field nama di
> >>
> >> link tabel ( SELECT nama FROM myLinkTable ) dan
> >>anggap saja diberi nama
> >>
> >> q1, maka Access akan segera membaca tabel di database
> >>awal, menyusun
> >>
> >> temporary table, dan mengeksekusi query q1. Bagaimana
> >>jika q1 dilakukan
> >>
> >> setiap detik ?
> >>
> >> aksan:
> >> loh beneran ada ....., tuh iconnya tampak :)
> >> query dari link table di access memang kerjanya
> >>begitu, bahkan jika
> >>
> >> membuka query melalui code vba - obyek
> >>command/recordset/connection.
> >> semua tabel selalu di download ke client dulu, baru
> >>di client filter akan
> >>
> >> dilakukan.
> >> select * from customer where city = 'jakarta'
> >> perintah ini, baik dari link table customer, atau
> >>dari script vba, akan
> >>
> >> selalu mengerjakan select * from customer dulu, baru
> >>where citiy =
> >>
> >> 'jakarta' di lakukan di client.
> >> itu kekurangan front end access untuk link tabel /
> >>script vba yang
> >>
> >> memanggil query / tabel.
> >> mengenai obyek link table, itu beneran ada, ia adalah
> >>referensi yang
> >>
> >> menunjuk ke tabel yang sebenarnya di database yang
> >>sebenarnya, jadi
> >>
> >> menghemat penulisan connection string saja.
> >> pertanyaan selanjutnya, bagaimana jika q1 dilakukan
> >>setiap detik ?
> >>
> >> jawabannya sama seperti untuk quotes berikutnya:
> >>
> >>
> >> quotes:
> >> Oke... sampai sini, dapat disimpulkan bahwa satu link
> >>table pasti berupa
> >>
> >> satu koneksi dan satu recordset.
> >> Jika punya 17 link table bagaimana ? Jika setiap
> >>table berisi data 500 MB
> >>
> >> bagaimana ? Jangan lupa, memori yang digunakan adalah
> >>RAM + pagefile OS.
> >>
> >> Jadi, bagaimana jika kapasitas harddisk tidak
> >>mencukupi ? hehehehe....
> >>
> >> hang kali ya... atau ada pesan error data yang
> >>diminta terlalu banyak,
> >>
> >> jadi link table tidak bisa dilakukan (hanya mungkin
> >>loh)
> >> Padahal q1 yang lengkap dengan klausa WHERE hanya kan
> >>menghasilkan
> >>
> >> maksimal 100 record dari 3 kolom saja (misalnya),
> >>
> >> kenapa harus repot menyediakan semua data di memori ?
> >>
> >>
> >> aksan:
> >> jika sampai 17 table tersebut berisi 500 MB data,
> >>jawabannya access mdb
> >>
> >> sudah tidak tepat jadi back-end-nya.
> >>
> >> Ganti backend dengan client server engine, lalu tarik
> >>data tidak lewat link
> >>
> >> tabel, tetapi query ke store procedure. kalau model
> >>begini, maka jika isi
> >>
> >> store procedurenya adalah:
> >> select * from customer where city = 'jakarta'
> >>
> >> maka data yang masuk ke front end access juga hanya
> >>customer jakarta saja,
> >>
> >> filter sudah dilaksanakan di server.
> >>
> >>
> >>
> >> aksan kurdin
> >>
> >>
> >>
> >>
> >> On 6/27/2011 12:13 PM, hari yanto wrote:
> >>
> >> >Uraian dan pemahaman yang menarik. Dasar
> >> >logika umum pembuatan program. Memisahkan
> >> >antara database, bahasa komunikasi dengan
> >> >database, dan cara menayangkan hasil.
> >> >
> >> >
> >> >--- On Sun, 26/6/11, Hendra Agestha Hamid
> >> ><the_agestha@> wrote:
> >> >
> >> >
> >> >>From: Hendra Agestha Hamid <the_agestha@>
> >> >>Subject: [belajar-access] Prinsip kerja Link
> >> >>Table
> >> >>To: belajar-access@yahoogroups.com
> >> >>Date: Sunday, 26 June, 2011, 8:47 AM
> >> >>
> >> >>
> >> >>
> >> >>Dear Warga Milis,...
> >> >>Saya ada "ngobrol" dengan seseorang,
> >> >>sampai kemudian pembahasan tentang
> >> >>Link Table, mohon terutama tanggapan
> >> >>rekan2 semua apa benar
> >> >>prinsip kerja Link Table seperti
> >> >>dibawah ini (saya Copas dari "obrolan"
> >> >>saya) :
> >> >>
> >> >>
> >> >>Mari diurai satu per satu.
> >> >>
> >> >>A. Database dan table/view
> >> >>Database adalah kumpulan data yang
> >> >>satu tema. Database berisi tabel dan
> >> >>view yang masing-masingnya adalah
> >> >>satu pokok bahasan.
> >> >>Database memiliki struktur, antara
> >> >>lain struktur :
> >> >>1. cara berhubungan dengan dunia
> >> >>luar yang sering disebut koneksi,
> >> >>yang kalimat percakapannya
> >> >>disebut Connection String.
> >> >>Komunikasi dengan dunia luar
> >> >>dilakukan oleh database melalui agen
> >> >>database. Agen database sering
> >> >>disebut Data Provider. Pihak luar
> >> >>yang berhubungan dengan database
> >> >>adalah Data Object seperti DAO dan
> >> >>ADO. Jadi, siapa saja dan darimana
> >> >>saja pihak luar yang akan
> >> >>berhubungan dengan database, pasti
> >> >>butuh sosok Data Object dan Data
> >> >>Provider.
> >> >>2. cara menginterogasi database yang
> >> >>sering disebut Command Text, yang
> >> >>bahasanya hanya satu, yaitu SQL.
> >> >>Versi SQL dan varian SQL yang
> >> >>digunakan, tergantung database
> >> >>tersebut. Contoh, MS SQL Server
> >> >>menggunakan versi SQL ANSI 90 dengan
> >> >>varian T-SQL. Oracle dengan ANSI 90
> >> >>varian PL/SQL, dsb.
> >> >>3. katalog object database yang
> >> >>berisi daftar tabel beserta struktur
> >> >>tabel, relasi antar tabel maupun
> >> >>antar view, dan semua object
> >> >>database seperti security, view (di
> >> >>akses sering disebut Query Object),
> >> >>object programmability (akses tidak
> >> >>punya), trigger dan validasi (akses
> >> >>hanya punya validasi berdasar
> >> >>datatype saja).
> >> >>
> >> >>B. Koneksi.
> >> >>Koneksi database selalu membutuhkan Connection
> >> >>String.
> >> >>
> >> >>C. Interogasi database
> >> >>Selalu berupa query yang dieksekusi
> >> >>oleh Data Object melalu object
> >> >>Connection-nya.
> >> >>
> >> >>D. Wujud database.
> >> >>Bisa terikat kepada sebuah server,
> >> >>ataupun sebagai file mandiri. Contoh
> >> >>yang terikat kepada server data
> >> >>adalah database di MySQL, Oracle,
> >> >>DB2, MS SQL Server. Contoh sebagai
> >> >>file mandiri adalah database SQLite,
> >> >>Access (bukan bagian VBA nya, tapi
> >> >>murni tabel dan object query nya),
> >> >>Excel, Text File terstruktur, dsb.
> >> >>
> >> >>Nah.. dari hal-hal diatas,
> >> >>Dimanakah letak link table ?
> >> >>Link table adalah sebutan untuk
> >> >>proses koneksi ke database lain. Di
> >> >>belakang layar link table, ada
> >> >>proses koneksi oleh data object
> >> >>(DAO) menggunakan Data Provider yang
> >> >>bisa berupa ODBC maupun OLE DB,
> >> >>melalui kalimat percakapan yang
> >> >>disebut Connection String, disertai
> >> >>sebuah kalimat interogasi database
> >> >>yang disebut Command Text yang
> >> >>berupa Query.
> >> >>
> >> >>Jika hubungan antar database pada
> >> >>link table itu dituliskan sebagai
> >> >>sebuah script, maka yang dibutuhkan
> >> >>adalah script dengan maksimal 5
> >> >>baris, mulai dari koneksi sampai
> >> >>memegang hasil query. Koneksi
> >> >>dikelola oleh data object berupa
> >> >>object connection. Hasil query
> >> >>dikelola oleh data object berupa
> >> >>object recordset. Jadi link table
> >> >>selalu berisi 2 object pokok, yaitu
> >> >>object connection dan object
> >> >>recordset. Kedua object ini adalah
> >> >>milik data object, yang di access by
> >> >>default adalah DAO. Proses akan
> >> >>melalui pembacaan katalog database
> >> >>yang dikoneksi, untuk mendapatkan
> >> >>struktur tabel yang akan di-"link",
> >> >>disertai pembuatan temporary table
> >> >>berdasar katalog itu. Query yang
> >> >>digunakan oleh link table pada
> >> >>bagian menghubungkan database ini,
> >> >>adalah SELECT * FROM
> >> >>nama_tabel_pilihan_user
> >> >>
> >> >>Usai membentuk hubungan, kemudian
> >> >>dilakukan poenyusunan virtual
> >> >>catalog, yang lebih tepat disebut
> >> >>pemanfaatan temporary table. Hasil
> >> >>query oleh bagian hubungan akan di
> >> >>query insert into ke temporary
> >> >>table. Jadi query lengkap yang
> >> >>digunakan oleh link table bisa
> >> >>berupa :
> >> >>
> >> >>SELECT * FROM
> >> >>nama_tabel_pilihan_user INTO
> >>access_temporary_table_bernama_anu
> >> >>
> >> >>Seluruh object query atau eksekusi
> >> >>query yang merujuk ke "link table"
> >> >>adalah merujuk ke temporary table
> >> >>ini.
> >> >>
> >> >>Jadi, apa benar ada link table ?
> >> >>Tidak. Yang ada adalah Access
> >> >>memindahkan seluruh data dari asal
> >> >>ke dalam memori, dengan rentang
> >> >>refresh data yaitu setiap ada
> >> >>eksekusi query yang merujuk ke "link
> >> >>table" ini. Bisa dibayangkan ? Coba
> >> >>tambahkan bayangannya sebagai
> >> >>berikut :
> >> >>Ketika ada perintah dari form untuk
> >> >>ambil semua data dari field nama di
> >> >>link tabel ( SELECT nama FROM
> >> >>myLinkTable ) dan anggap saja diberi
> >> >>nama q1, maka Access akan segera
> >> >>membaca tabel di database awal,
> >> >>menyusun temporary table, dan
> >> >>mengeksekusi query q1. Bagaimana
> >> >>jika q1 dilakukan setiap detik ?
> >> >>
> >> >>Tidak ada link table di-dunia
> >> >>database kecuali jika disebut
> >> >>otomasi membaca data dari luar
> >> >>database. Semua bentuk seperti ini,
> >> >>pasti akan lambat, meski dilakukan
> >> >>berupa linked server di MS SQL
> >> >>Server. Link table di Access berbeda
> >> >>dengan Linked Server di MS SQL
> >> >>Server. Linked Server tidak pernah
> >> >>membuat temporary table dan
> >> >>memindahkan semua data yang
> >> >>dikoneksi ke dalam server. Itu
> >> >>sebabnya linked server relatif lebih
> >> >>cepat, karena yang dieksekusi selalu
> >> >>query dari user dan hasilnya
> >> >>langsung ditampilkan dari recordset
> >> >>yang terbentuk oleh data object
> >> >>milik si server. Data object milik
> >> >>server lebih robust dan sangat cepat
> >> >>bekerja dibanding data object
> >> >>seperti DAO maupun ADO, sayangnya,
> >> >>hanya bisa digunakan oleh server itu
> >> >>sendiri karena terkait dengan system
> >> >>server secara keseluruhan.
> >> >>
> >> >>Oke... sampai sini, dapat
> >> >>disimpulkan bahwa satu link table
> >> >>pasti berupa satu koneksi dan satu
> >> >>recordset.
> >> >>Jika punya 17 link table bagaimana ?
> >> >>Jika setiap table berisi data 500 MB
> >> >>bagaimana ? Jangan lupa, memori yang
> >> >>digunakan adalah RAM + pagefile OS.
> >> >>Jadi, bagaimana jika kapasitas
> >> >>harddisk tidak mencukupi ?
> >> >>hehehehe.... hang kali ya... atau
> >> >>ada pesan error data yang diminta
> >> >>terlalu banyak, jadi link table
> >> >>tidak bisa dilakukan (hanya mungkin
> >> >>loh)
> >> >>Padahal q1 yang lengkap dengan
> >> >>klausa WHERE hanya kan menghasilkan
> >> >>maksimal 100 record dari 3 kolom
> >> >>saja (misalnya),
> >> >>
> >> >>kenapa harus repot menyediakan semua
> >> >>data di memori ?
> >> >>
> >> >>
> >>
> >
> >
>

__._,_.___
Recent Activity:
SPAM IS PROHIBITED
.

__,_._,___

Tidak ada komentar:

Posting Komentar