Saya ada pernah dapat link Mas, sepertinya ini bisa menolong untuk membangun Query di Access supaya lebih efisien..
saya belum pernah coba soalnya otaknya gak kuat kebanyakan yg dipelajari,,,hehehehe...mungkin Mas mau share penggunaannya,
ini link yg pernah saya baca :
http://www.techrepublic.com/article/use-microsoft-jets-showplan-to-write-more-efficient-queries/5064388
Regards
Hendra
From: Sofyan Efendi <sofyanefendi@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Tuesday, March 27, 2012 2:10 PM
Subject: Re: [belajar-access] Kecepatan Query dan Hidden Tables
Terima kasih Mas Hendra, ini masukan yang sangat bermanfaat buat saya...
Untuk data BE dari SQL Server, proses dilakukan di Server, terkecuali untuk yang disebutkan dibawah, diantaranya membuat query dng data dari table yang dilink dari SQL Server dan Ms Access dalam satu query. Maka ini bekerja secara local computer. Namun penggunaan query standard dng data dari table yang dilink dari SQL Server saja, maka semua data diproses diserver, terkecuali query yg disebutkan dibawah. Info yang bermanfaat, terima kasih sekali lagi...
Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi.
Sofyan Efendi.
----- Original Message -----From: Hendra Agestha HamidSent: Tuesday, March 27, 2012 1:59 PMSubject: Re: [belajar-access] Kecepatan Query dan Hidden TablesOh gitu ya Mas,,,itu untuk murni ADP atau juga berlaku untuk non ADP. (sekedar FE Access + BE SQL Server) ?apakah proses itu bisa begitu untuk semua konstruksi SQL dalam sebuah query ..? karena dari yg saya baca beberapakonstruksi SQL bagaimanapun akan memaksa Access untuk bekerja lokal (ambil semua baru saring), seperti link ini mas :http://msdn.microsoft.com/en-us/library/dd942824%28v=office.12%29.aspxsaya kutipkan ringkasannya :Don't Force Local Query Processing
Don't use query constructs that cause processing to be done by Access on the local computer. The following query operations force the Jet database engine to perform local data processing:
- Join operations between tables that are linked to different data source (that is, a join between a SQL table and a linked Access table).
- Join operations based on query that uses the DISTINCT keyword, or a query that contains a GROUP BY clause.
- Outer joins that contain syntax that is not directly supported by the remote database server.
- The LIKE operator used with Text or Memo fields
- Multi-level grouping and totaling operations
- GROUP BY clauses that are based on a query with the DISTINCT keyword, or the GROUP BY clause.
- Crosstab queries that have more than one aggregate, or that have field, row, or column headings that contain aggregates, or that have an ORDER BY clause
- User-defined functions, or functions that are not supported by the remote server
- Complex combinations of INNER JOIN, LEFT JOIN, or RIGHT JOIN operations in nested queries.
Mengenai masalah Query dan VBA kalau yang Mas jelaskan mungkin saya sudah paham, maaksud saya Query Access dibanding Perintah SQLdi Visual Basic (bukan VBA), karena setau saya VB tdk ada Query jadi semua perintah harus lewat coding di Form/Module...ataukah VB punyacara sendiri untuk mengcompile codingnya sehingga tetap cepat...Terima kasih MasRegardsHendra
From: Sofyan Efendi <sofyanefendi@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Tuesday, March 27, 2012 1:37 PM
Subject: Re: [belajar-access] Kecepatan Query dan Hidden Tables
Ya Mas Hendra.. BE nya Access memang bukan yg memproses, karena saat sebagai BE, Access hanya berupa file tempat menyimpan data, bukan memproses data. Tapi untuk SQL Server, salah satu keunggulannya, dia dapat mengirimkan data sesuai yg kita ambil. Cukup jauh perbandingannya dalam hal kecepatan.Adapun yg dimaksud Query lebih cepat dari VBA, yg dimaksud adalah penggunaan query nya menggunakan kode SQL secara langsung di VBA, bukan membandingan query dengan VBA. Misal:DoCmd.RunSQL "UPDATE Finishing_Goods_DB INNER JOIN dbo_IMA ON Finishing_Goods_DB.ID_Article_MRP = dbo_IMA.IMA_ItemID SET Finishing_Goods_DB.ConversiUnitMeasure = [IMA_SalesConvUnitMeasure]" _
& "WHERE Finishing_Goods_DB.ConversiUnitMeasure Is Null;"Diatas adalah salah satu contoh penggunaan query update di VBA. Padahal selain cara diatas, kita bisa juga buat query update di Access, kemudian dijalankan dengan perintah docmd.openquery "nama querynya".Nah, yg dibandingkan, cepat mana antara DoCmd.RunSQL dengan docmd.openquery.Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi.----- Original Message -----From: Hendra Agestha HamidSent: Tuesday, March 27, 2012 12:40 PMSubject: Re: [belajar-access] Kecepatan Query dan Hidden TablesMaaf Mas saya nimbrung,,,
Masalah pemrosesan data oleh Access ini salah satu issue Access yg paling saya tertarik, saya belum pernah mencoba langsung tapidari yg saya baca dan dulu pernah juga dibahas di Milis bahwa sebenarnya bukan BE nya yg membuat proses data oleh Accessseperti yg Mas jelaskan, apapun BE nya jika FE nya Access kecuali dgn metoda Pass Through Queries, maka seluruh data tetapakan ditarik ke PC user baru nanti disaring...sangat tidak efisien memang. Mas Aksan malah sudah memberi hasil eksperimennyatentang ini dan memang begitu cara kerja Access (kecuali pake Pass Through Queries), sayangnya PT Queries tidak bisa dipakaiutk BE Access.Tentang Query lebih cepat dari VBA yg saya mau tanyakan apakah berarti Query Access lebih cepat dari Visual Basic ? karenasetau saya VB tdk ada Query, semuanya harus lewat coding,,,dan kalo tdk salah juga sama2 pake JET Engine ya mas?Mohon penjelasannya Mas...RegardsHendra
From: Sofyan Efendi <sofyanefendi@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Tuesday, March 27, 2012 11:27 AM
Subject: Re: [belajar-access] Kecepatan Query dan Hidden Tables
Dear Mas Heru, untuk aplikasi multi user, dengan backend database menggunakan Access via jaringan LAN, sementara ini belum ada cara untuk mempercepatnya. Aplikasi multi user disarankan menggunakan SQL Server. SQL Server sangat mengurangi penggunaan lalu lintas data jaringan / network, sebab ia dapat mengirimkan dan mengambil data sesuai yang diinginkan oleh user saja. Sebagai contoh, jika kita hendak mencari suatu data karyawan yang bernama "Sofyan" saja, maka SQL Server akan mengirimkan melalui network, data yang namanya "Sofyan" saja. Sedangkan pada Access, seluruh data karyawan akan dikirimkan dahulu ke PC user melalui network, kemudian baru di pilih yang bernama "Sofyan" di PC usernya. Bisa dibayangkan jika data karyawan kita ada 1,000,000 record, maka akan sangat lama sekali jika menggunakan Access.Untuk Docmd.OpenQuery VS DoCmd.RunSQL , bila yg dibandingkan kecepatan, maka lebih cepat Docmd.OpenQuery. Sebab Access sudah meng-compile object query saat kita save query tsb. Adapun kode SQL di VBA berada dalam string petik dua, sehingga ketika dijalankan, Access akan mencheck dulu apakah kode SQL tsb error atau tidak, barulah query tersebut dijalankan.Untuk Hide All Tables, sepertinya ada table system yang ikut terbawa, karena Mas Heru menggunakan perintah For i = 1 To CurrentDb.TableDefs.Count. Coba tambahkan on error resume next bila memang ingin tetap menggunakan perintah tsb.Function HideAllTables()on error resume nextFor i = 1 To CurrentDb.TableDefs.CountCurrentDb.TableDefs(CurrentDb.TableDefs(i - 1).Name).Attributes = 2NextCurrentDb.TableDefs.RefreshEnd FunctionAlternatif lainnya, cukup table-table tertentu saja yang di hide.Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi.----- Original Message -----From: Heru WibowoSent: Tuesday, March 27, 2012 10:34 AMSubject: Re: [belajar-access] Kecepatan Query dan Hidden TablesThank's atas sarannya, sudah saya coba tetapi masih lambat mas.BTW...sudahkan ada yang pernah mencoba bila record sudah banyak, untuk query sbb :Docmd.OpenQuery VS DoCmd.RunSQL lebih cepetan mana yah dalam eksekusinya dan apa plus minusnya ?dan case yang ke-2 (hidden table) gmana yah ?hehehe.... sepertinya para suhu dan master access sedang pada sibuk nieh, udah jarang denger lagi MBA kasir solusi.....heheheheh...note :email sebelumnya tertulis "metode yang sementara dipakai adalah Docmd. Runquery" --> revisi menjadi Docmd.OpenQuerySalam anget dan jabat kenceng,(hehehe...biar MBA bisa ketawa...)....Sory Bang....b'canda....Salam,HerDja
2012/3/27 Hendra Agestha Hamid <the_agestha@yahoo.com>
Ini saya coba copas dari obrolan saya dengan Mas Toni "Covey", barusan kok , mungkin bisa dicoba :Saya juga lebih suka pakai Unbound Form, alasannya sama seperti Kang Adi utarakan, cuma yang biasa saya lakukan untuk
insert / update datanya di "On Click" tombol "Simpan" pakai Coding :
Private Sub cmdSimpan_Click()
Dim dbs As Database
Dim rst As Recordset
'Buka Tabel yang akan diupdate
Set dbs = DBEngine.Workspaces(0).OpenDatabase(LokasiDataMDB & FileMDB)
Set rst = dbs.OpenRecordset(TabelTujuan, dbOpenTable)
rst.AddNew 'Untuk tambah data
<Atau>
rst.Edit 'Untuk Update data
<Update Data ke Record>
rst.Update
rst.close
dbs.close
set dbs = Nothing
set rst = Nothing
End Sub
Dengan cara ini proses jauh lebih cepat, walaupun jaringan lagi lelet.
Semoga bermanfaat.RegardsHendra
From: Heru Wibowo <heru.wibowo4456@gmail.com>
To: Belajar Access <belajar-access@yahoogroups.com>
Sent: Monday, March 26, 2012 10:25 AM
Subject: [belajar-access] Kecepatan Query dan Hidden Tables
Salam sejahtera,Dear para suhu access....mohon bantuan info dan solusi sebagai berikut :Database full access 2010 ( FE dan BE) dengan data baru mencapai 10ribuan record (bekerja dalam jaringan LAN dengan 8 user), case :1. Manipulating data lambat (insert, update, delete record), dengan metode query seperti apakah supaya proses manipulating data dapat berjalan cepat (baca minimal normal) ?metode yang sementara dipakai adalah Docmd. Runquery...2. Ketika database dibuat Hidden table (very hidden) selalu muncul windows konfirmasi "Cannot update. Database or object is read-only", pada waktu open atau exit application, metode hidden tables menggunakan metode :Function HideAllTables()For i = 1 To CurrentDb.TableDefs.CountCurrentDb.TableDefs(CurrentDb.TableDefs(i - 1).Name).Attributes = 2NextCurrentDb.TableDefs.RefreshEnd FunctionSebagai perbandingan, sewaktu menggunakan Ms Access 2003 hal ini tidak dijumpai, apakah ada metode lain u/ hidden table agar tidak dapat diintip di ms Excel selain dengan metode hidden table menggunaan metode diatas ?sebab jika Attributes saya ganti dengan angka 1 windows konfirmasi tidak muncul, tetapi table dapat diintip dengan ms excel.Demikian hal ini disampaikan.Atas solusi dari para master dan suhu diucapkan terima kasih.Salam,HerDja
__._,_.___
SPAM IS PROHIBITED
.
__,_._,___
Tidak ada komentar:
Posting Komentar