/* */

Wednesday, June 8, 2011

Re: [belajar-access] Re: access with BE mysql (tweak)



Kalau soal kecepatan, ini pengalaman saya, tidak ada perubahan. Database seperti berada
di localhost (127.0.0.1). Jadi, cepat sekali.
 
Saya pernah coba bandingkan memakai database Ms Acces, yang saya letakkan diserver. Ternyata tingkat kecepatan aksesnya lebih lambat.
 
Cuma memang, karena proses hapus, create tabel, dan isi tabel dilakukan terus menerus, besaran interface mdb menjadi membesar. Ini saya kira wajar. Seperti juga web, kalau sering kita buka dan browsing, otomatis temporery filenya makin banyak.
 
Maka, jalan keluar yang saya lakukan adalah, mengcompact dan merepair, secara berkala. Sama seperti web. Biar lebih enteng dan mengurangi space.
 
Masalah lainnya akan muncul, kalau kita sering mengganti-ganti IP. Misal, karena melakukan percobaan, kita pakai localhost. Di saat yang lain kita pakai IP server. Mungkin Ms Access kebingungan, IP mana sejatinya yang dipakai. Jalan keluarnya, saya buat mdb baru, saya import semua. Lalu, saya ganti ip yang sudah tetap. Compact repair.
 
Ini hanya pendapat dan pengalaman saya. Tentu banyak pendapat lain, yang mungkin jauh lebih baik dan lebih cespleng.
Semoga bisa membantu dan memberi semangat.
Hariyanto (Surabaya)
http://110.139.57.19

--- On Wed, 8/6/11, sudarsono <jkssbma@live.com> wrote:

From: sudarsono <jkssbma@live.com>
Subject: [belajar-access] Re: access with BE mysql (tweak)
To: belajar-access@yahoogroups.com
Date: Wednesday, 8 June, 2011, 11:58 AM

 
Sori ,Master. Apa pada form master detail , penggunaan Temporary Table tetap bisa efisien . Karena tiap kali master berpindah data , maka table temporary perlu di hapus ( data nya , buka tabelnya ) dan diisi ulang. Jika begitu apa malah menurunkan kualitas ( loading / update data asli ).
'==========

--- In belajar-access@yahoogroups.com, hari yanto <har_i20002000@...> wrote:
>
> Letak Tabel temporer bukan di database. Tapi interface. Untuk kebutuhan menampilkan data.
>  
> Kalau yang dimaksud query seperti di Ms Access, kita buat dalam bentuk SQL-nya > dijalankan via VBA > hasilnya ditaruh di tabel temporer Ms Access (interface). Jadi tabel temporer bukan berbentuk query. Tapi hasil SQL dari database.
>  
> Agar kecepatan optimal, saya biasa gunakan "select .. from (select ...) as t". Misalnya:
>  
> Set rss = conn.Execute("SELECT T.x_grade" _
>         & " ,SUM(IF(dTahun = '2008',1,0)) AS `2008`" _
>         & " ,SUM(IF(dTahun = '2009',1,0)) AS `2009`" _
>         & " ,SUM(IF(dTahun = '2010',1,0)) AS `2010`" _
>         & " ,SUM(IF(dTahun = '2011',1,0)) AS `2011`" _
>         & " FROM (SELECT bu_1.NRBU, bu_1.ID_AS_URUT, bu_1.dTAHUN," _
>         & " Max(bu_1.GRADE) AS x_grade FROM bu_1" _
>         & " where bu_1.ID_as_urut>'1'" _
>         & " and bu_1.GRADE>1 GROUP BY bu_1.NRBU,bu_1.dTAHUN) as t" _
>         & " GROUP BY t.x_grade")
>  
> Hasilnya lantas dimasukkan ke tabel temporer, misal:
>  
>        If Not rss.EOF Then
>             Do While Not rss.EOF
>                 Set rd = CurrentDb.OpenRecordset(PROG)
>                     rd.AddNew
>                     rd!d_ass = "Grade " & rss.Fields(0)
>                     rd!DATA_1 = rss.Fields(1)
>                     rd!DATA_2 = rss.Fields(2)
>                     rd!DATA_3 = rss.Fields(3)
>                     rd!DATA_4 = rss.Fields(4)
>                     rd.Update
>                     rd.Close
>                 Set rd = Nothing
>                 rss.MoveNext
>             Loop
>         End If
>         rss.Close
>         Set rss = Nothing
>  
> Tabel Temporer hanya salah satu strategi untuk menampilkan data yang ada database. Cara lain bisa dipilih. Misalnya memakai label (mirip web). Bisa seperti ini:
>  
>      If Not rss.EOF Then
>             Do While Not rss.EOF
>                    for i = 0 to 4
>                         Me("label" & i).Caption = rss.Fields(i)
>                    next i
>                 rss.MoveNext
>             Loop
>         End If
>         rss.Close
>         Set rss = Nothing
>  
> Kalau memakai link, ini pengalaman saya, berat sekali. Apalagi kalau data tambah banyak. Ditambah lagi, --- asumsi tidak security apapun --, user bisa saja mengotak-atik data seenaknya. Berbeda kalau tidak link. User hanya bisa mengubah data sesuai dengan keinginan kita.
>  
> Sekali lagi, ini hanya pendapat dan pengalaman saya. Tentu banyak pendapat lain, yang mungkin jauh lebih baik dan lebih cespleng.
>  
> Semoga bisa membantu dan memberi semangat.
>
> Hariyanto (Surabaya)
> http://110.139.57.19
>
> --- On Wed, 8/6/11, sudarsono jkssbma@... wrote:
>
>
> From: sudarsono jkssbma@...
> Subject: [belajar-access] Re: access with BE mysql (tweak)
> To: belajar-access@yahoogroups.com
> Date: Wednesday, 8 June, 2011, 10:24 AM
>
>
>  
>
>
>
>
> Penggunaan Temporary Tabel , sebenarnya bisa disiasati di SQL Server dengan gunakan Function Table ( temporary yang dibuat sudah dioptimisasikan oleh Server Database ) . Lebih enak kalau LINQ sih....
> Apa Query juga bisa menggantikan Table Query di Access ? secara teori saya sih belum tahu .
> Pak Aksan , bisa memberikan infonya ( query sbg pengganti Tabel Temporary ) ?
> '============
>
> --- In belajar-access@yahoogroups.com, hari yanto har_i20002000@ wrote:
> >
> > Kalau pengalaman saya begini. Defaut konfigurasi di MySql tidak pernah saya otak-atik. Saya biarkan apa adanya.
> >  
> > Agar memperoleh kecepatana optimal, lebih baik tidak pakai link. Tapi pakai ODBC yang disetting dengan VBA. Contoh scriptnya (saya taruh di module):
> >  
> > Public conn As New ADODB.Connection
> > Public Function connToDB(serverName As String, _
> >    UserName As String, userPass As String, _
> >    dbPath As String, dbName As String)
> > Dim strCon As String
> >     On Error GoTo errHandle
> >    
> >     strCon = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=" _
> >     & serverName & ";DATABASE=" & dbName & ";" & _
> >     "UID=" & UserName & ";PWD=" & userPass & ";OPTION=16426"
> >     Set conn = New ADODB.Connection
> >     conn.Open strCon
> >     Exit Function
> > errHandle:
> >     MsgBox "SERVER SEDANG TIDAK AKTIF", , "NON AKTIF"
> >     conn.Close
> >     Set conn = Nothing
> > End Function
> >  
> > Function KONEKSI()
> >     connToDB "ip", "username", "password", 3306, "database"
> > End Function
> >
> > ip bisa localhost atau 127.0.0.1 (berarti di computer yang sedang berjalan). Kalau database berada di server gunakan ip yang ada di server. Misal 192.168.1.100.
> >  
> > Untuk menguji, lakukan script ini:
> >  
> > Private Sub Command82_Click()
> > dim mm as variant
> >  
> > mm = "gagal"
> >     KONEKSI
> >     If conn.State <> 0 Then
> >         mm = "Sukses"    
> >     End If
> >     conn.Close
> >     Set conn = Nothing
> >  
> > msgbox mm
> >
> > End Sub
> >
> >  
> > Sedangkan untuk menampilkan data, tergantung data yang mau ditampilkan. Kalau misalnya hanya 1 record, nggak perlu pakai tabel temporer. Contoh scriptnya:
> >  
> > KONEKSI
> >     If conn.State <> 0 Then
> >         Set rsp = New ADODB.Recordset
> >         rsp.Open "SELECT Max(IDR) As x_t FROM PROFESI_1", conn
> >             textbox1 = rsp!x_t
> >         rsp.Close
> >         Set rsp = Nothing
> >     End If
> >     conn.Close
> >     Set conn = Nothing
> >  
> > Namun, kalau data yang mau ditampilkan lebih dari 1, pakai tabel temporer untuk recordsourcenya.
> >  
> > Semoga bisa membantu dan memberi semangat.
> >  
> > Hariyanto (Surabaya)
> > http://110.139.57.19
> >  
> >
> > --- On Wed, 8/6/11, sudarsono jkssbma@ wrote:
> >
> >
> > From: sudarsono jkssbma@
> > Subject: [belajar-access] Re: access with BE mysql (tweak)
> > To: belajar-access@yahoogroups.com
> > Date: Wednesday, 8 June, 2011, 9:15 AM
> >
> >
> >  
> >
> >
> >
> >
> > Pendapat saya sebaiknya nanyakan juga di komunitas mySQL ( nanyakan pada ahlinya )
> > Menurut saya masalah kecepatan sebaiknya gunakan cara koneksi lewat vba dengan driver odbc connector daripada Link . Sayangnya tehnologi Access , belum mendukung .NET Library ( LINQ ) . Dengan LINQ , koneksi bisa lebih cepat ( karena di sesuaikan dengan karakteristik Database masing2 dan mendukung secara alami koneksi terputus ) .
> > '=====
> >
> > --- In belajar-access@yahoogroups.com, "Deden" soeasy_goin@ wrote:
> > >
> > > dear master access,
> > > mohon sharingnya, dengan BE mysql server 5.0, format default my.ini seperti terlampir, apakah setting default terlampir sudah bagus dari sisi client yg mengakses server(takutnya malah cepetan menggunakan BE msaccess), atau ada trick lain untuk mempercepat koneksi client-server.
> > >
> > > "ATAU" malah saya salah persepsi setting ini gak ngaruh sama performance client (Harap maklum baru belajar pak..:))
> > >
> > > mohon penjelasannya & terima kasih banyak atas masukannya
> > >
> > > #### start ####
> > >
> > > [mysql]
> > >
> > > default-character-set=latin1
> > >
> > > [mysqld]
> > >
> > > # The TCP/IP Port the MySQL Server will listen on
> > > port=3306
> > >
> > > basedir="C:/Program Files/MySQL/MySQL Server 5.0/"
> > > basedir="C:/Program Files/MySQL/MySQL Server 5.0/data/"
> > >
> > > default-character-set=latin1
> > >
> > > default-storage-engine=INNODB
> > >
> > > sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
> > >
> > > max_connections=100
> > >
> > > query_cache_size=0
> > >
> > > table_cache=256
> > >
> > > tmp_table_size=17M
> > >
> > > thread_cache_size=8
> > >
> > > myisam_max_sort_file_size=100G
> > >
> > > myisam_max_extra_sort_file_size=100G
> > >
> > > myisam_sort_buffer_size=34M
> > >
> > > key_buffer_size=25M
> > >
> > > read_buffer_size=64K
> > > read_rnd_buffer_size=256K
> > >
> > > sort_buffer_size=256K
> > >
> > > innodb_additional_mem_pool_size=2M
> > >
> > > innodb_flush_log_at_trx_commit=1
> > >
> > > innodb_log_buffer_size=1M
> > >
> > > innodb_buffer_pool_size=47M
> > >
> > > innodb_log_file_size=24M
> > >
> > > innodb_thread_concurrency=8
> > >
> > > #### end ####
> > >
> >
>


__._,_.___


SPAM IS PROHIBITED



Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

No comments:

Post a Comment