私の関数は多くの結合によって作成され、比較的 "大きい" TABLE
を返します。SELECTと実行テーブルの選択実行時間
私の関数の中にreturn query select <complex query goes here>;
と書いてあると、実行には年齢がかかります(もっと10-15分ほどかかる)。
TABLE
を返す代わりに、私はVOID
を返し、単に関数本体内にテーブルを作成します。これは1分で終了します。
select <complex query goes here>
VS create table <table name> as select <complex query goes here>
、次にselect * from <table_name>
と同じ "複雑なクエリ"を実行する場合も同じです。
実行時間にこのような違いがあるのはなぜですか?
P.S.クエリのselect句には、内部にロジックを持つ約35列があります。
P.P.S.クエリは約90Kの行を返しますので、私はそれがネットワーク
データを取得する時間は?両者は同じである必要がある場合は、クライアントにデータを送信することです(表示する) –
これを確認するには、テーブルが高速版で作成されました。 –
そのテーブルからのSELECT *はデータを返すのに約10秒かかります – Dennis