PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Performa tidak meningkat bahkan menambah ukuran work_mem

Meningkatkan work_mem tampaknya membuat pengurutan sekitar 8 kali lebih cepat:(172639.670 - 169311.063) / (167975.549 - 167570.669) . Tetapi karena pengurutan hanya mengambil sebagian kecil dari keseluruhan waktu eksekusi, membuatnya bahkan 1000 kali lebih cepat tidak dapat membuat segalanya jauh lebih baik secara keseluruhan. Pemindaian seqlah yang memakan waktu.

Sebagian besar waktu dalam pemindaian seq mungkin dihabiskan untuk IO. Anda dapat melihat dengan menjalankan EXPLAIN (ANALYZE, BUFFERS) setelah mengaktifkan track_io_timing.

Juga, memparalelkan pemindaian seq seringkali tidak terlalu membantu, karena sistem IO biasanya mampu mengirimkan kapasitas penuhnya ke satu pembaca, karena keajaiban readahead. Dan terkadang pembaca paralel bahkan dapat saling menginjak, membuat keseluruhan kinerja menjadi lebih buruk. Anda dapat menonaktifkan paralelisasi dengan set max_parallel_workers_per_gather TO 0; Ini mungkin membuat segalanya lebih cepat, dan jika tidak, setidaknya akan membuat rencana EXPLAIN lebih mudah dipahami.

Anda mengambil lebih dari 3% tabel:193963 / (193963 + 6041677) . Indeks mungkin tidak terlalu membantu saat Anda mengambil begitu banyak. Jika memang demikian, Anda akan menginginkan indeks gabungan, bukan indeks individual. Jadi Anda ingin indeks pada (client, event_name, date(datetime)) . Maka Anda juga perlu mengubah kueri untuk menggunakan date(datetime) daripada to_char(datetime, 'YYYY-MM-DD') . Anda perlu melakukan perubahan ini karena to_char tidak dapat diubah, sehingga tidak dapat diindeks.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Butuh metode cepat untuk mengonversi double menjadi string dalam jumlah besar

  2. Cara Membuat Pengguna di PostgreSQL

  3. HostName tidak diverifikasi pesan kesalahan pada koneksi SSL di postgresql

  4. Bagaimana Anda bisa membuat pengguna aktif terhubung ke database postgreSQL melalui SQL?

  5. Django OneToOneField dengan kemungkinan bidang kosong