Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

SELECT QUERY LEMOT

Mau tanya rekan rekan,

Saya sudah sering membuat aplikasi delphi dengan database Ms.Acess dengan komponent TADO untuk koneksinya.
Pada jumlah record kurang lebih 10000, query select nya terasa berat dan lama pada saat di running, begitupun juga pencariannya.
Apakah anda yang tahu agar waktu proses select itu tidak terlalu berat.

Terima kasih, Mohon sarannya.

Comments

  • tergantung query yg elo susun kaya apa ...
  • Iya query standart mas,

    ada temen yang ngasih tau jangan pake select * untuk jumlah field yang terlalu banyak, itu udah aku turutin, tapi ngga terlalu ngefek. kalau mas kurakura pernah buat aplikasi paling banyak berapa record yang pada saat select datanya ndak berat?
  • edited December 2013
    query standar itu menurut ukuran orang bisa beda-beda
    jadi standar menurut penilaian elo, belum tentu standar menurut penilaian gw

    karena gw kagak ngeliat query yg elo pake kaya apa
    jadi tetep, komentar gw umum saja : tergantung query yg elo susun kaya apa

    beda cerita kalo elo posting sample koding query yg menurut elo lambat
    jadi yg baca bisa ngeliat dan menilai kira-kira yg bermasalah dimana



    kalo tanya aplikasi yg gw bangun pernah handle data berapa banyak ...
    gw agak lupa, tapi sekitar 2M record, itu pake oracle (kagak bisa gw pastikan, karena gw mesti on-site)
    yg mysql, 200-an table, tertinggi 2jt record di 1 table, dan yg angkanya di atas 1jt bukan cuma di 1 table (bisa gw pastikan, karena sebagian data ada di local gw dan gw juga bisa remote)

    image

    yg oracle, koding pake php + java
    yg mysql, koding php + delphi

    normal saja
  • edited December 2013
    Master kura"...ikut nanya nih dikit

    apa dengan data sebesar itu tidak perlu ada adjust value pada mysql nya ??? atau pada PHP.ini

    value max_excecution_time, max_input_time, memory_limit

  • Gue seh belum pernah kelola data segede itu,
    Ya secara logika masak mo nampilin data sebnyak itu dalam sekali  excute di layar monitor,...@-) ..
    INI menurut aku ya,
    * pake paging untuk nampilin datanya
    * pake pencarian kategori,tipe data,isi data, dsb tertentu untuk seleksi
    * bisa berdasarkan tahun,bulan
    * apa lagi ya... 8-|

    Kita tunggu comment mas kura2,.
  • @master dhryasa

    tapi tetap saja server itu harus mencari terlebih dahulu....semakin besar datebase semakin lambat kinerja mysqlnya gitu khan ?

    dulu aq main dengan mssql dengan power builder, yah seperti itu...makin besar datanya makin lambat manggil report" seperti SOA (report statement AR atau AP ) meskipun sudah memakai kategory pencarian bulan tahun dan nama debtor / creditor

    nah kalau PHP dgn mysql barang baru buatku....apa meski value pada PHP.INI di edit dari nilai default nya

    atau pada mysql nya dengan edit nilai buffer_pool, log_file_size, max_allow packet, dan sebagainya yang aq kurang begitu paham juga 

    :D

    Perlu pencerahan para master nih....
  • edited December 2013
    endragst jangan manggil aku master.. aku masih junior malu sama masternya dweb...[-X
    Sambil nunggu master kura2 comments.. kita ngupi dulu abis ujan2an... :D

    *Tapi secara umum juga MYSQL ngejelasin untuk mengelola data seabrek kita perlu penggunaan kata kunci
    Kalo lengkapx coba deh baca ini : http://dev.mysql.com/doc/refman/5.0/en/using-explain.html
  • @dhryasa;

    master kura" lg Jalan"...
    :-))

    //jangan manggil aku master..

    =)) =)) syukur junior, aq newbie....

    anyway bushway dhryasa lo dari mana ? (sambil nunggu master kura" sama master BOO yg lg muter" )
    =))
  • apa dengan data sebesar itu tidak perlu ada adjust value pada mysql nya ??? atau pada PHP.ini

    value max_excecution_time, max_input_time, memory_limit

    Kalo untuk mengatur ulang value di atas ya tergantung kebutuhan,
    Misal limit size untuk upload, kalo gak salah defaultnya itu 2M kalo gak salah ya, tapi lo pingin upload data dengan ukuran misalnya 10mb, ya elo harus kasi value biar allow upload data dengan ukura 10mb..
  • edited December 2013
    betul...default:

    post_max_size=8M
    upload_max_lifesize=2M
    max-execution_time=30
    max_input_time=60
    memorry_limit=8M

    dengan data seperti master kura" apa di php.ini tidak perlu di adjust default value nya....

    Ini baru di PHP. INI,,,,,ada lg di Mysql nya.....
  • edited December 2013
    kalo urusan db yg di tuning cukup setting mysql ...
    bukan php, jadi kagak perlu ulik php.ini

    tapi yg diatas, yg gw pake setting standar apa adanya
    soalnya dari hasil stress test gw, waktu eksekusi masih wajar dan dapat diterima
  • @master kura"..

    //kalo urusan db yg di tuning cukup setting mysql ...
    kasi pencerahan dunk master tuning nya dan perubahan value nya ngaruhnya kemana saja....


    bener gak lemot master di onlinekan ? terutama saat manggil report ?
    trus saat backup kemudian coba kita import khan max 2 MB di phpmyadmin, itu gimana master ? pakai sql splitter ? ada cara lain ??


  • max 2MB ini elo pake di server apa ? shared hosting kah ?
  • server sendiri master pakai windows xampp
  • edited January 2014
    ngupi dulu...  sambil nunggu dosen datang.. :)
  • rasanya phpmyadmin kagak kasih batasan limit upload
    yg kasih batasan upload itu php nya

    coba cari di php.ini upload_max_filesize di set berapa ?
  • Maximum allowed size for uploaded files.
    ; http://php.net/upload-max-filesize
    upload_max_filesize=2M




  • ya diganti dong, biar batasannya kagak cuma 2M
  • Master kura"..
    Mantap master ...upload_max_filesize=750M

    image
  • kalo ukuran segitu, kemungkinan max execution time nya php juga mesti di lepas
    soalnya kalo kagak, pasti over limit execution
  • @master kura";

    max_execution_time=5000
    max_input_time=5000
    memory_limit=

    nah pd memory limit ini gimana master, jika server windows ku MMR nya 2GB di memory_limit ditaruh berapa ??
  • max_execution_time dan max_input_time di 0 kan saja, artinya tanpa batas waktu

    memory_limit, value default 128M cukup
  • @master kura"...

    SIAP NDAN....LAksanakan>>>menuju TKP
    ^:)^
  • @master kurakura.. master kan dah pengalaman handle data puluhan ribu n fine2 aja. nah saya nih lagi bermasalah untuk menampilkan data yang banyak.

    ini query saya 

    $query = "
            SELECT tgl_reserv2, manager2,
            ( SELECT COUNT( * ) 
               FROM  reserv 
               WHERE sn2 = 'Section' AND manager2=t.manager2
               AND tgl_reserv2 between '{$reserv21}' AND '{$reserv22}'
            ) AS section,
            ( SELECT COUNT( * ) 
               FROM  reserv 
               WHERE sn2 = 'Nomination' AND manager2=t.manager2
               AND tgl_reserv2 between '{$reserv21}' AND '{$reserv22}'
            ) AS nomination,
      ( SELECT COUNT( * ) 
               FROM  reserv 
               WHERE sn2 = 'Family' AND manager2=t.manager2
               AND tgl_reserv2 between '{$reserv21}' AND '{$reserv22}'
            ) AS family,
      ( SELECT COUNT( * ) 
               FROM  reserv 
               WHERE reservasi2 = 'Manager' AND manager2=t.manager2
               AND tgl_reserv2 between '{$reserv21}' AND '{$reserv22}'
            ) AS bymanager,
      ( SELECT COUNT( * ) 
               FROM  reserv 
               WHERE reservasi2 = 'WalkIn' AND manager2=t.manager2
               AND tgl_reserv2 between '{$reserv21}' AND '{$reserv22}'
            ) AS walkin
            FROM  reserv AS t
            WHERE tgl_reserv2 between '{$reserv21}' AND '{$reserv22}' and status_reserv = 'Exit'
            GROUP BY manager2 order by manager2 asc";
      
        $dt = mysql_query( $query );
        $jumlahs = 0;
        $jumlahn = 0;
     $jumlahrbm = 0;
        $jumlahrw = 0;
     $jumlahf = 0;
      
      while ( $data = mysql_fetch_array( $dt ) )
     {
      $jumlahs += $data["section"];
            $jumlahn += $data["nomination"];
      $jumlahf += $data["family"];
      $jumlahrbm += $data["bymanager"];
            $jumlahrw += $data["walkin"];
      ?> 


    nah ketika di eksekusi muncul "Fatal error: Maximum execution time of 60 seconds exceeded in ..."

    gimana ya master cara merampingkan query saya ini, biar ketika di eksekusi tdk berat n lemot dan bisa tampil datanya.... makasihh buat petunjuknyaaa masterr...
  • edited March 2014
    modyar ... itu sub query buanyak buener ... :))

    kagak bisa di sederhanakan apa ya ?

    contoh value $reserv21 dan $reserv22 apa ?

    gw cut dulu yg lainnya, testing pake query ini dulu langsung di db gui yg elo pake

    SELECT tgl_reserv2, manager2,
    ( SELECT COUNT( * )
    FROM  reserv
    WHERE sn2 = 'Section' AND manager2=t.manager2
    AND tgl_reserv2 between '{$reserv21}' AND '{$reserv22}'
    ) AS section
    FROM  reserv AS t
    WHERE tgl_reserv2 between '{$reserv21}' AND '{$reserv22}' and status_reserv = 'Exit'
    GROUP BY manager2 order by manager2 asc

    lalu coba query ini :

    SELECT tgl_reserv2, manager2,
    SUM(IF(sn2 = 'Section',1,0)) AS section
    FROM  reserv AS t
    WHERE tgl_reserv2 between '{$reserv21}' AND '{$reserv22}' and status_reserv = 'Exit'
    GROUP BY manager2
    ORDER BY manager2 ASC

    dengan syarat, {$reserv21} dan {$reserv22} diganti dgn value nya masing-masing

    hasilnya sama atau tidak ?
Sign In or Register to comment.