タグ付けされた質問 「postgresql-10」

1
PostgreSQLがより高価な結合順序を選択するのはなぜですか?
デフォルトを使用したPostgreSQL、および default_statistics_target=1000 random_page_cost=1.5 バージョン PostgreSQL 10.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6.4.0) 6.4.0, 64-bit 掃除機をかけて分析しました。クエリは非常に簡単です。 SELECT r.price FROM account_payer ap JOIN account_contract ac ON ap.id = ac.account_payer_id JOIN account_schedule "as" ON ac.id = "as".account_contract_id JOIN schedule s ON "as".id = s.account_schedule_id JOIN rate r ON s.id = r.schedule_id WHERE …

1
なぜこのLEFT JOINがLEFT JOIN LATERALよりもパフォーマンスがそれほど悪いのですか?
次の表があります(Sakilaデータベースから取得)。 film:film_idはpkeyです 俳優:actor_idはpkeyです film_actor:film_idとactor_idは、映画/俳優のfkeyです 特定の映画を選択しています。この映画では、すべての俳優がその映画に参加することも望んでいます。これには2つのクエリがあります。1つのクエリLEFT JOINと1 つのクエリですLEFT JOIN LATERAL。 select film.film_id, film.title, a.actors from film left join ( select film_actor.film_id, array_agg(first_name) as actors from actor inner join film_actor using(actor_id) group by film_actor.film_id ) as a on a.film_id = film.film_id where film.title = 'ACADEMY DINOSAUR' order by film.title; select film.film_id, film.title, …

2
Postgresの「遷移テーブル」とは何ですか?
Postgres 10の新機能を説明するページには、「トリガー用の移行テーブル」が記載されています。 トリガーの遷移表 この機能はAFTER STATEMENT、必要に応じて古い行と新しい行をクエリに公開することにより、トリガーを有用かつ高性能にします。この機能の前は、AFTER STATEMENTトリガーはこれらに直接アクセスできませんでした。回避策はビザンチンであり、パフォーマンスが低下していました。多くのトリガーロジックをとして記述できるようになりAFTER STATEMENT、FOR EACH ROWトリガーが必要とする各行で高価なコンテキストスイッチを行う必要がなくなりました。 遷移表とは何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.