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

Bagaimana saya bisa menulis kueri postgres ini di Amazon redshift sehingga dioptimalkan seperti di postgres?

Pengoptimalan kueri redshift berasal dari Cluster, Desain Tabel, Pemuatan Data, Penyedotan Data &Analisis di atas tabel.

Biarkan saya menjawab beberapa poin inti dalam daftar di atas.1. Pastikan tabel Anda mytable, detail, klien memiliki SORT_KEY, DIST_KEY2 yang tepat. Pastikan semua tabel Anda di join dianalisa dan di-vaccum dengan benar.

Ini adalah versi lain dari SQL Anda yang sama yang ditulis dalam format Redshift.

Beberapa Tweak yang saya buat adalah

  1. Menggunakan "Dengan Klausa" untuk menghitung tingkat Cluster yang Dioptimalkan
  2. Bekas Bergabung dengan cara yang benar dan pastikan gabung kiri/kanan berdasarkan data.
  3. Menggunakan rentang_tanggal dengan tabel klausa untuk jenis orientasi objek.
  4. Grup Oleh yang Digunakan dalam SQL utama di bawah ini.

Versi Redshift SQL Saya

/** Date Range Computation **/
with date_range as (
    select ( current_Date - interval '2 weeks' ) as two_weeks
),
/** Filter main ResultSet**/
myGroupSet as (
    SELECT b.val AS myGroup,
           c.username,
           a.someCode,
           a.timeTaken,
           (case when (b.name == 'name1') THEN b.val::INTEGER ELSE 0 END ) as name11,
           (case when (b.name == 'name2') THEN b.val::INTEGER ELSE 0 END ) as name12
      FROM database.myTable a,
      join date_range dr on a.date > dr.two_weeks
      join database.detail b on b.id = a.id
      join database.client c on c.c_id = a.c_id
     where a.date > current_Date - interval '2 weeks'
)
/** Apply Aggregation **/
select myGroup, username, someCode, timeTaken, date,
       sum(name1), sum(name2)
  from myGroupSet
  group by myGroup, username, someCode, timeTaken, date



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat tabel dalam mode pengguna tunggal di postgres

  2. Postgres INTERVAL menggunakan nilai dari tabel

  3. Cara melintasi struktur struktur pohon hierarkis ke belakang menggunakan kueri rekursif

  4. Lewati beberapa nilai dalam parameter tunggal

  5. Bagaimana Ceiling() Bekerja di PostgreSQL