Arsip: cara mengatasi program lambat gara2 field blob?
more 18 years ago
grounders
Ane punya masalah nih, saat ini saya menggunakan ADO untuk koneksi dengan MySQL dan ane mempunyai tabel master dengan filed longblob yang ane gunakan untuk menyimpan gambar...
Saat ini tabel tersebut sudah berisis 5000 data master dengan prosentase 80 persen dari record tersebut ada gambarnya, nah yang menjadi masalah adalah program tersebut lama-lama menjadi lambat gara2 ada field gambar tersebut, jika tidak ada gambarnya maka program akan menjadi cepat kembali..
Sebenarnya saya mempunyai 2 pikiran untuk pemecagannya, namun saya masih bingung mana yang terbaik dan termudah untuk dikerjakan, nah disini saya ingin meminta bantuan teman2...
Pemikiran-pemikiran saya adalah sbb:
1. Pada ADOTabel yang mengakses tabel gambar tersebut saya tidak mengikut sertakan field blobnya, nah ketika akan melihat gambar dari record yang bersangkutan maka saya akan menggunakan ADOSQL dengan Kode sebagai kuncinya...
2. Field blob tersebut saya kompress, nah disini yang menjadi masalah saya, sebelumnya saya sudah membaca artikel dari saudara kilmesoft mengenai enkripsi dan compress blob field, namun setelah saya baca ternyata harus menggunakan komponen baru, nah apabila saya menggunakan komponen baru apakah tidak merepotkan saya, kalo memang harus menngunakan komponen tersebut sebaiknya solusi agar tidak bentrok dengan ADO gimana? Syukur2 kalo ada teknik compress blob filed untuk ADO component..
Program ini sifatnya client server jadi terdapat perbedaan waktu yang cukup mencolok jika program dijialankan di server atau di client ketika mengakses tabel gambar tersebut, mohon tanggapan temen2...xixixixi
more 18 years ago
yuan_carlos
menurut saya.....(and pengalaman)....
file yg msk ke table berekstensi jpg/bmp....?
setau saya ....
kl pake bmp....emang data akan berat krn size file gede....
coba di konvert ke ekstensi jpg......
more 18 years ago
grounders
File yang masuk sudah berekstensi JPG mas...
Ane sudah menemukan solusinya,cara yang ane gunakan berhubung program sudah berjalan and sudah berisi data master yang cukup banyak maka solusi yang saya gunakan sebagai berikut :
1. Tabel master data barang sebelumnya mempunyai field picture untuk menyimpan data gambar saya rubah dengan menghilangkan field picture tersebut. Kemudian saya membuat tabel satu lagi khusus untuk menyimpan data gambar dengan relasi satu-satu dengan tabel master data barang
2. Tabel gambar tersebut saya akses dengan menggunakan SQL khusus pada record yang diperlukan saja dengan kunci kdbarang
Pada tingkat aplikasi ADOTabel yang mengakses tabel master barang sudah tidak lagi mengakses field picture sehingga aplikasi menjadi lebih cepat
more 18 years ago
kifmesoft
@grounders:
kompresi BLOB Field umumnya gak akan berpengaruh banyak untuk type Image soalnya tipe image itu sendiri juga udah terkompresi (seperti jpg, gif, dan yang lainnya).
fetch on demand (mengambil image hanya yang dibutuhkan saja) seperti itu bagus banget... ;)
jika butuh kecepetan lebih (meskipun agak lebih ribet)... bisa deh coba dengan menyimpan image (sesuai kebutuhan) yang sudah diambil dari server ke stream (misal TMemoryStream atau bisa juga dengan In Memory Table seperti TClientDataSet atau kbmMemTable)
jadi untuk menampilkan lagi image yang sama kan gak perlu load lagi dari server.. tetapi dibutuhkan signature untuk mendeteksi apakah image di server sudah berubah ? jika sudah berubah... ambil lagi, jika belum berubah.. tampilkan aja yang sudah ada..
more 18 years ago
grounders
Wah saat ini buat saya yang penting program sudah sesuai keinginan client dulu, tapi ane tertarik dengan teknik signature tersebut, mungkin sodara kilmesoft bisa memberi sedikit tip or url yg bisa saya akses untuk mempelajarinya,thanks before....
more 18 years ago
kifmesoft
wah, saya kurang tau juga nih URL yang membahas itu secara khusus... :(
tapi kalo menurutku sih begini..
buat aja field khusus untuk signature BLOB FIELD. Setiap kali kita melakukan proses update, maka kita update juga signature nya ...,
jadi.. signature ini diisikan pada saat proses insert dan update (bisa dilakukan dengan memanfaatkan trigger)
di sisi client.., (misal kita memanfaatkan Memory Table)
saat user ingin melihat suatu image, maka kita cek record image yg bersangkutan (di memory table),
jika signaturenya NULL maka image belum di load.. ambil dari server 1 image yang diinginkan tersebut lengkap beserta signaturenya kemudian tampilkan dan simpan di BLOB memory table.
jika signature pada memory table tidak NULL.. maka cek signature di server dan jika tidak sama maka load ulang,
tetapi jika sama.. ya kita berikan aja dengan image yang sudah kita punya di memory table :D
jadi, intinya signature ini hanya digunakan untuk membedakan data yang ada pada client dengan yang ada di server.
wujud dari signature ini bisa macam2, bisa bertipe Integer yang nilainya diambil dari generator (firebird), atau bisa juga dibentuk dengan fungsi MD5 (MySQL). Kalo mau di isi dengan tipe DateTime atau TimeStamp juga boleh.. ;)
more 18 years ago
budi_bunga
Kalo pengalaman saya sih mas, cukup nama gambar itu yang diinput dalam database berupa text, kemudaian pake timage untuk menampilkan apa yang ada dalam datatabase dengan menunjukkan lokasinya aja ams....
more 18 years ago
kifmesoft
@budi_bunga:
yoi, bisa aja sih dan lebih natural..
sama dengan rekan grounders dan rekan budi_bunga menggunakan akses ke file
tetapi.., bila image yang dikelola tersebut adalah hasil scanning dokumen2 penting yang aksesnya bersifat terbatas, saya rasa.. melibatkan database dengan memanfaatkan BLOB Field, mungkin akan menjadi lebih mudah... ;)
more 17 years ago
budi_bunga
@kifmesoft: @budi_bunga: yoi, bisa aja sih dan lebih natural.. sama dengan rekan grounders dan rekan budi_bunga menggunakan akses ke file tetapi.., bila image yang dikelola tersebut adalah hasil scanning dokumen2 penting yang aksesnya bersifat terbatas, saya rasa.. melibatkan database dengan memanfaatkan BLOB Field, mungkin akan menjadi lebih mudah... ;)Ato gini mas, simpan file gambarnya menjadi text alu pada saat diambil file text tersebut dijadikan gambar, meskipun agak ribet ... :O gimana
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- 1 dbGrid = 2 or 3 Tables ???
by octavian1972 in Tip n Trik Pemrograman more 18 years ago - Simpan dan Baca rumus Matematika
by kacungdelphi24 in Bedah Kasus more 16 years ago - Lazarus
by nolabel_id in Tip n Trik Pemrograman more 17 years ago - Cara bikin *.db secara otomatis
by krishy in Tip n Trik Pemrograman more 18 years ago - Ada yang pernah coba Zeos + SQLite3 + Delphi 2010?
by mambamaestro in Hal umum tentang Pascal Indonesia more 14 years ago - Konvert ke dll
by belajaraja in Tip n Trik Pemrograman more 17 years ago - tanya form
by sulth4n in Tip n Trik Pemrograman more 18 years ago - ToOl Is3ng BuaT mIndahIn dAta
by cyber_hecker in MsSQL more 18 years ago - Cara Cari beberapa kata dalam 1 kalimat
by joudie in Hal umum tentang Pascal Indonesia more 15 years ago - SMS pake Delphi ??
by peewee in Network, Files, I/O & System more 18 years ago