Re: possibilities for SQL optimization

From: Chris Stephens <cstephens16(at)gmail(dot)com>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org >> PG-General Mailing List" <pgsql-general(at)postgresql(dot)org>
Subject: Re: possibilities for SQL optimization
Date: 2020-04-16 14:57:13
Message-ID: CAEFL0sy14WNHmtenn-_kSz6ygXM82nNVr97sW1R8Z9kmuA9Vrw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

disastrous :)

Planning Time: 7.569 ms
Execution Time: 316969.474 ms

On Thu, Apr 16, 2020 at 9:23 AM Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
wrote:

>
>
> čt 16. 4. 2020 v 16:08 odesílatel Chris Stephens <cstephens16(at)gmail(dot)com>
> napsal:
>
>> PG12
>> RHEL 8
>>
>> I suspect there's little I can do to get the following query to run
>> faster/more efficiently but thought I'd post to list and confirm.
>>
>> Caveat: I'm coming from an Oracle background and am extremely wet behind
>> ears w/ respect to postgresql (please be kind :)).
>>
>> Right now, we can't change the software generating the SQL though that is
>> very possible/likely in the future. For now, the query is what it is. I can
>> alter indexing, add table partitioning, or anything else that doesn't
>> change logical structure of table.
>>
>> This is a very wide table holding astronomical data which will be used to
>> track changes in the sky to generate alerts for astronomers to evaluate.
>> The query has a variable number of "pixelId BETWEEN" predicates. As data
>> volume in DiaSource increases, performance of query decreases. I need to
>> confirm this but I suspect the primary reason for the decreased performance
>> is increased number of "pixelId BETWEEN" predicates generated by
>> application. Predicate count is the only thing that changes. I don't think
>> performance would otherwise degrade given execution plan.
>>
>> [local] xxxx(at)zzzzz=# \dS+ "DiaSource"
>> Table
>> "public.DiaSource"
>> Column | Type | Collation |
>> Nullable | Default | Storage | Stats target | Description
>>
>> -----------------------------+-----------------------------+-----------+----------+-----------------------+---------+--------------+-------------
>> diaSourceId | bigint | |
>> not null | '0'::bigint | plain | |
>> ccdVisitId | bigint | |
>> not null | '0'::bigint | plain | |
>> diaObjectId | bigint | |
>> | '0'::bigint | plain | |
>> ssObjectId | bigint | |
>> | '0'::bigint | plain | |
>> parentDiaSourceId | bigint | |
>> | '0'::bigint | plain | |
>> prv_procOrder | integer | |
>> not null | 0 | plain | |
>> ssObjectReassocTime | timestamp without time zone | |
>> | | plain | |
>> midPointTai | double precision | |
>> not null | '0'::double precision | plain | |
>> ra | double precision | |
>> not null | '0'::double precision | plain | |
>> raSigma | double precision | |
>> not null | '0'::double precision | plain | |
>> decl | double precision | |
>> not null | '0'::double precision | plain | |
>> declSigma | double precision | |
>> not null | '0'::double precision | plain | |
>> ra_decl_Cov | double precision | |
>> not null | '0'::double precision | plain | |
>> x | double precision | |
>> not null | '0'::double precision | plain | |
>> xSigma | double precision | |
>> not null | '0'::double precision | plain | |
>> y | double precision | |
>> not null | '0'::double precision | plain | |
>> ySigma | double precision | |
>> not null | '0'::double precision | plain | |
>> x_y_Cov | double precision | |
>> not null | '0'::double precision | plain | |
>> apFlux | double precision | |
>> not null | '0'::double precision | plain | |
>> apFluxErr | double precision | |
>> not null | '0'::double precision | plain | |
>> snr | double precision | |
>> not null | '0'::double precision | plain | |
>> psFlux | double precision | |
>> | '0'::double precision | plain | |
>> psFluxSigma | double precision | |
>> | '0'::double precision | plain | |
>> psRa | double precision | |
>> | '0'::double precision | plain | |
>> psRaSigma | double precision | |
>> | '0'::double precision | plain | |
>> psDecl | double precision | |
>> | '0'::double precision | plain | |
>> psDeclSigma | double precision | |
>> | '0'::double precision | plain | |
>> psFlux_psRa_Cov | double precision | |
>> | '0'::double precision | plain | |
>> psFlux_psDecl_Cov | double precision | |
>> | '0'::double precision | plain | |
>> psRa_psDecl_Cov | double precision | |
>> | '0'::double precision | plain | |
>> psLnL | double precision | |
>> | '0'::double precision | plain | |
>> psChi2 | double precision | |
>> | '0'::double precision | plain | |
>> psNdata | integer | |
>> | 0 | plain | |
>> trailFlux | double precision | |
>> | '0'::double precision | plain | |
>> trailFluxSigma | double precision | |
>> | '0'::double precision | plain | |
>> trailRa | double precision | |
>> | '0'::double precision | plain | |
>> trailRaSigma | double precision | |
>> | '0'::double precision | plain | |
>> trailDecl | double precision | |
>> | '0'::double precision | plain | |
>> trailDeclSigma | double precision | |
>> | '0'::double precision | plain | |
>> trailLength | double precision | |
>> | '0'::double precision | plain | |
>> trailLengthSigma | double precision | |
>> | '0'::double precision | plain | |
>> trailAngle | double precision | |
>> | '0'::double precision | plain | |
>> trailAngleSigma | double precision | |
>> | '0'::double precision | plain | |
>> trailFlux_trailRa_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailFlux_trailDecl_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailFlux_trailLength_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailFlux_trailAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailRa_trailDecl_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailRa_trailLength_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailRa_trailAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailDecl_trailLength_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailDecl_trailAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailLength_trailAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> trailLnL | double precision | |
>> | '0'::double precision | plain | |
>> trailChi2 | double precision | |
>> | '0'::double precision | plain | |
>> trailNdata | integer | |
>> | 0 | plain | |
>> dipMeanFlux | double precision | |
>> | '0'::double precision | plain | |
>> dipMeanFluxSigma | double precision | |
>> | '0'::double precision | plain | |
>> dipFluxDiff | double precision | |
>> | '0'::double precision | plain | |
>> dipFluxDiffSigma | double precision | |
>> | '0'::double precision | plain | |
>> dipRa | double precision | |
>> | '0'::double precision | plain | |
>> dipRaSigma | double precision | |
>> | '0'::double precision | plain | |
>> dipDecl | double precision | |
>> | '0'::double precision | plain | |
>> dipDeclSigma | double precision | |
>> | '0'::double precision | plain | |
>> dipLength | double precision | |
>> | '0'::double precision | plain | |
>> dipLengthSigma | double precision | |
>> | '0'::double precision | plain | |
>> dipAngle | double precision | |
>> | '0'::double precision | plain | |
>> dipAngleSigma | double precision | |
>> | '0'::double precision | plain | |
>> dipMeanFlux_dipFluxDiff_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipMeanFlux_dipRa_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipMeanFlux_dipDecl_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipMeanFlux_dipLength_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipMeanFlux_dipAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipFluxDiff_dipRa_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipFluxDiff_dipDecl_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipFluxDiff_dipLength_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipFluxDiff_dipAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipRa_dipDecl_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipRa_dipLength_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipRa_dipAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipDecl_dipLength_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipDecl_dipAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipLength_dipAngle_Cov | double precision | |
>> | '0'::double precision | plain | |
>> dipLnL | double precision | |
>> | '0'::double precision | plain | |
>> dipChi2 | double precision | |
>> | '0'::double precision | plain | |
>> dipNdata | integer | |
>> | 0 | plain | |
>> totFlux | double precision | |
>> | '0'::double precision | plain | |
>> totFluxErr | double precision | |
>> | '0'::double precision | plain | |
>> diffFlux | double precision | |
>> | '0'::double precision | plain | |
>> diffFluxErr | double precision | |
>> | '0'::double precision | plain | |
>> fpBkgd | double precision | |
>> | '0'::double precision | plain | |
>> fpBkgdErr | double precision | |
>> | '0'::double precision | plain | |
>> ixx | double precision | |
>> | '0'::double precision | plain | |
>> ixxSigma | double precision | |
>> | '0'::double precision | plain | |
>> iyy | double precision | |
>> | '0'::double precision | plain | |
>> iyySigma | double precision | |
>> | '0'::double precision | plain | |
>> ixy | double precision | |
>> | '0'::double precision | plain | |
>> ixySigma | double precision | |
>> | '0'::double precision | plain | |
>> ixx_iyy_Cov | double precision | |
>> | '0'::double precision | plain | |
>> ixx_ixy_Cov | double precision | |
>> | '0'::double precision | plain | |
>> iyy_ixy_Cov | double precision | |
>> | '0'::double precision | plain | |
>> ixxPSF | double precision | |
>> | '0'::double precision | plain | |
>> iyyPSF | double precision | |
>> | '0'::double precision | plain | |
>> ixyPSF | double precision | |
>> | '0'::double precision | plain | |
>> extendedness | double precision | |
>> | '0'::double precision | plain | |
>> spuriousness | double precision | |
>> | '0'::double precision | plain | |
>> flags | bigint | |
>> not null | '0'::bigint | plain | |
>> pixelId | bigint | |
>> not null | '0'::bigint | plain | |
>> Indexes:
>> "PK_DiaSource" PRIMARY KEY, btree ("diaSourceId")
>> "IDX_DiaSource_ccdVisitId" btree ("ccdVisitId")
>> "IDX_DiaSource_diaObjId" btree ("diaObjectId")
>> "IDX_DiaSource_htmId20" btree ("pixelId")
>> "IDX_DiaSource_ssObjId" btree ("ssObjectId")
>> Access method: heap
>>
>> explain analyze SELECT "DiaSource"."diaSourceId",
>> "DiaSource"."ccdVisitId", "DiaSource"."diaObjectId",
>> "DiaSource"."ssObjectId", "DiaSource"."parentDiaSourceId",
>> "DiaSource"."prv_procOrder", "DiaSource"."ssObjectReassocTime",
>> "DiaSource"."midPointTai", "DiaSource".ra, "DiaSource"."raSigma",
>> "DiaSource".decl, "DiaSource"."declSigma", "DiaSource"."ra_decl_Cov",
>> "DiaSource".x, "DiaSource"."xSigma", "DiaSource".y, "DiaSource"."ySigma",
>> "DiaSource"."x_y_Cov", "DiaSource"."apFlux", "DiaSource"."apFluxErr",
>> "DiaSource".snr, "DiaSource"."psFlux", "DiaSource"."psFluxSigma",
>> "DiaSource"."psRa", "DiaSource"."psRaSigma", "DiaSource"."psDecl",
>> "DiaSource"."psDeclSigma", "DiaSource"."psFlux_psRa_Cov",
>> "DiaSource"."psFlux_psDecl_Cov", "DiaSource"."psRa_psDecl_Cov",
>> "DiaSource"."psLnL", "DiaSource"."psChi2", "DiaSource"."psNdata",
>> "DiaSource"."trailFlux", "DiaSource"."trailFluxSigma",
>> "DiaSource"."trailRa", "DiaSource"."trailRaSigma", "DiaSource"."trailDecl",
>> "DiaSource"."trailDeclSigma", "DiaSource"."trailLength",
>> "DiaSource"."trailLengthSigma", "DiaSource"."trailAngle",
>> "DiaSource"."trailAngleSigma", "DiaSource"."trailFlux_trailRa_Cov",
>> "DiaSource"."trailFlux_trailDecl_Cov",
>> "DiaSource"."trailFlux_trailLength_Cov",
>> "DiaSource"."trailFlux_trailAngle_Cov",
>> "DiaSource"."trailRa_trailDecl_Cov", "DiaSource"."trailRa_trailLength_Cov",
>> "DiaSource"."trailRa_trailAngle_Cov",
>> "DiaSource"."trailDecl_trailLength_Cov",
>> "DiaSource"."trailDecl_trailAngle_Cov",
>> "DiaSource"."trailLength_trailAngle_Cov", "DiaSource"."trailLnL",
>> "DiaSource"."trailChi2", "DiaSource"."trailNdata",
>> "DiaSource"."dipMeanFlux", "DiaSource"."dipMeanFluxSigma",
>> "DiaSource"."dipFluxDiff", "DiaSource"."dipFluxDiffSigma",
>> "DiaSource"."dipRa", "DiaSource"."dipRaSigma", "DiaSource"."dipDecl",
>> "DiaSource"."dipDeclSigma", "DiaSource"."dipLength",
>> "DiaSource"."dipLengthSigma", "DiaSource"."dipAngle",
>> "DiaSource"."dipAngleSigma", "DiaSource"."dipMeanFlux_dipFluxDiff_Cov",
>> "DiaSource"."dipMeanFlux_dipRa_Cov", "DiaSource"."dipMeanFlux_dipDecl_Cov",
>> "DiaSource"."dipMeanFlux_dipLength_Cov",
>> "DiaSource"."dipMeanFlux_dipAngle_Cov",
>> "DiaSource"."dipFluxDiff_dipRa_Cov", "DiaSource"."dipFluxDiff_dipDecl_Cov",
>> "DiaSource"."dipFluxDiff_dipLength_Cov",
>> "DiaSource"."dipFluxDiff_dipAngle_Cov", "DiaSource"."dipRa_dipDecl_Cov",
>> "DiaSource"."dipRa_dipLength_Cov", "DiaSource"."dipRa_dipAngle_Cov",
>> "DiaSource"."dipDecl_dipLength_Cov", "DiaSource"."dipDecl_dipAngle_Cov",
>> "DiaSource"."dipLength_dipAngle_Cov", "DiaSource"."dipLnL",
>> "DiaSource"."dipChi2", "DiaSource"."dipNdata", "DiaSource"."totFlux",
>> "DiaSource"."totFluxErr", "DiaSource"."diffFlux",
>> "DiaSource"."diffFluxErr", "DiaSource"."fpBkgd", "DiaSource"."fpBkgdErr",
>> "DiaSource".ixx, "DiaSource"."ixxSigma", "DiaSource".iyy,
>> "DiaSource"."iyySigma", "DiaSource".ixy, "DiaSource"."ixySigma",
>> "DiaSource"."ixx_iyy_Cov", "DiaSource"."ixx_ixy_Cov",
>> "DiaSource"."iyy_ixy_Cov", "DiaSource"."ixxPSF", "DiaSource"."iyyPSF",
>> "DiaSource"."ixyPSF", "DiaSource".extendedness, "DiaSource".spuriousness,
>> "DiaSource".flags, "DiaSource"."pixelId" FROM "DiaSource" WHERE
>> "DiaSource"."pixelId" BETWEEN 10729436479488 AND 10729440673791 OR
>> "DiaSource"."pixelId" BETWEEN 10729449062400 AND 10729499394047 OR
>> "DiaSource"."pixelId" BETWEEN 10729532948480 AND 10729537142783 OR
>> "DiaSource"."pixelId" BETWEEN 10729542385664 AND 10729542451199 OR
>> "DiaSource"."pixelId" BETWEEN 10729542516736 AND 10729542647807 OR
>> "DiaSource"."pixelId" BETWEEN 10729546579968 AND 10729546711039 OR
>> "DiaSource"."pixelId" BETWEEN 10729546776576 AND 10729546842111 OR
>> "DiaSource"."pixelId" BETWEEN 10729566502912 AND 10729570697215 OR
>> "DiaSource"."pixelId" BETWEEN 10729570959360 AND 10729571090431 OR
>> "DiaSource"."pixelId" BETWEEN 10729571155968 AND 10729571221503 OR
>> "DiaSource"."pixelId" BETWEEN 10729571745792 AND 10729573056511 OR
>> "DiaSource"."pixelId" BETWEEN 10729573122048 AND 10729574105087 OR
>> "DiaSource"."pixelId" BETWEEN 10729574170624 AND 10729583280127 OR
>> "DiaSource"."pixelId" BETWEEN 10729601105920 AND 10729601171455 OR
>> "DiaSource"."pixelId" BETWEEN 10729604251648 AND 10729608445951 OR
>> "DiaSource"."pixelId" BETWEEN 10729613164544 AND 10729613295615 OR
>> "DiaSource"."pixelId" BETWEEN 10729613361152 AND 10729613426687 OR
>> "DiaSource"."pixelId" BETWEEN 10729614737408 AND 10729614868479 OR
>> "DiaSource"."pixelId" BETWEEN 10729614934016 AND 10729615065087 OR
>> "DiaSource"."pixelId" BETWEEN 10729615130624 AND 10729615261695 OR
>> "DiaSource"."pixelId" BETWEEN 10729615654912 AND 10729615720447 OR
>> "DiaSource"."pixelId" BETWEEN 10729616048128 AND 10729616113663 OR
>> "DiaSource"."pixelId" BETWEEN 10729621028864 AND 10729625223167 OR
>> "DiaSource"."pixelId" BETWEEN 10729625747456 AND 10729625812991 OR
>> "DiaSource"."pixelId" BETWEEN 10729625878528 AND 10729626009599 OR
>> "DiaSource"."pixelId" BETWEEN 10729626337280 AND 10729626796031 OR
>> "DiaSource"."pixelId" BETWEEN 10729626861568 AND 10729628893183 OR
>> "DiaSource"."pixelId" BETWEEN 10729628958720 AND 10729630466047 OR
>> "DiaSource"."pixelId" BETWEEN 10729630597120 AND 10729630662655 OR
>> "DiaSource"."pixelId" BETWEEN 10729630793728 AND 10729630859263 OR
>> "DiaSource"."pixelId" BETWEEN 10729630990336 AND 10729631383551 OR
>> "DiaSource"."pixelId" BETWEEN 10729631449088 AND 10729633611775 OR
>> "DiaSource"."pixelId" BETWEEN 10729650388992 AND 10729650651135 OR
>> "DiaSource"."pixelId" BETWEEN 10729650716672 AND 10729651437567 OR
>> "DiaSource"."pixelId" BETWEEN 10729652748288 AND 10729653010431 OR
>> "DiaSource"."pixelId" BETWEEN 10729653141504 AND 10729653207039 OR
>> "DiaSource"."pixelId" BETWEEN 10729653272576 AND 10729653338111 OR
>> "DiaSource"."pixelId" BETWEEN 10729653600256 AND 10729653665791 OR
>> "DiaSource"."pixelId" BETWEEN 10729653796864 AND 10729654059007 OR
>> "DiaSource"."pixelId" BETWEEN 10729654190080 AND 10729654255615 OR
>> "DiaSource"."pixelId" BETWEEN 10729654321152 AND 10729654386687 OR
>> "DiaSource"."pixelId" BETWEEN 10729654452224 AND 10729654583295 OR
>> "DiaSource"."pixelId" BETWEEN 10729734275072 AND 10729734799359 OR
>> "DiaSource"."pixelId" BETWEEN 10729735061504 AND 10729735585791 OR
>> "DiaSource"."pixelId" BETWEEN 10729735847936 AND 10729736372223 OR
>> "DiaSource"."pixelId" BETWEEN 10729737945088 AND 10729738207231 OR
>> "DiaSource"."pixelId" BETWEEN 10729738993664 AND 10729739124735 OR
>> "DiaSource"."pixelId" BETWEEN 10729739190272 AND 10729739255807 OR
>> "DiaSource"."pixelId" BETWEEN 10729740566528 AND 10729740697599 OR
>> "DiaSource"."pixelId" BETWEEN 10729740763136 AND 10729740894207 OR
>> "DiaSource"."pixelId" BETWEEN 10729740959744 AND 10729741090815 OR
>> "DiaSource"."pixelId" BETWEEN 10729741484032 AND 10729741549567 OR
>> "DiaSource"."pixelId" BETWEEN 10729741877248 AND 10729741942783 OR
>> "DiaSource"."pixelId" BETWEEN 10729748955136 AND 10729749020671 OR
>> "DiaSource"."pixelId" BETWEEN 10729868492800 AND 10729868754943 OR
>> "DiaSource"."pixelId" BETWEEN 10729869082624 AND 10729869148159 OR
>> "DiaSource"."pixelId" BETWEEN 10729869344768 AND 10729869410303 OR
>> "DiaSource"."pixelId" BETWEEN 10776494538752 AND 10776494604287;
>>
>> Bitmap Heap Scan on "DiaSource" (cost=541.17..33856.16 rows=7831
>> width=848) (actual time=2.108..39.744 rows=8524 loops=1)
>> Recheck Cond: ((("pixelId" >= '10729436479488'::bigint) AND ("pixelId"
>> <= '10729440673791'::bigint)) OR (("pixelId" >= '10729449062400'::bigint)
>> AND ("pixelId" <= '10729499394047'::bigint)) OR (("pixelId" >=
>> '10729532948480'::bigint) AND ("pixelId" <= '10729537142783'::bigint))
>> OR (("pixelId" >= '10729542385664'::bigint) AND ("pixelId" <=
>> '10729542451199'::bigint)) OR (("pixelId" >= '10729542516736'::bigint) AND (
>> "pixelId" <= '10729542647807'::bigint)) OR (("pixelId" >=
>> '10729546579968'::bigint) AND ("pixelId" <= '10729546711039'::bigint)) OR
>> (("pixelId" >= '10729546776576'::bigint) AND ("pixelId" <=
>> '10729546842111'::b
>> igint)) OR (("pixelId" >= '10729566502912'::bigint) AND ("pixelId" <=
>> '10729570697215'::bigint)) OR (("pixelId" >= '10729570959360'::bigint) AND
>> ("pixelId" <= '10729571090431'::bigint)) OR (("pixelId" >= '10729
>> 571155968'::bigint) AND ("pixelId" <= '10729571221503'::bigint)) OR
>> (("pixelId" >= '10729571745792'::bigint) AND ("pixelId" <=
>> '10729573056511'::bigint)) OR (("pixelId" >= '10729573122048'::bigint) AND
>> ("pixelI
>> d" <= '10729574105087'::bigint)) OR (("pixelId" >=
>> '10729574170624'::bigint) AND ("pixelId" <= '10729583280127'::bigint)) OR
>> (("pixelId" >= '10729601105920'::bigint) AND ("pixelId" <=
>> '10729601171455'::bigint))
>> OR (("pixelId" >= '10729604251648'::bigint) AND ("pixelId" <=
>> '10729608445951'::bigint)) OR (("pixelId" >= '10729613164544'::bigint) AND
>> ("pixelId" <= '10729613295615'::bigint)) OR (("pixelId" >= '107296133611
>> 52'::bigint) AND ("pixelId" <= '10729613426687'::bigint)) OR (("pixelId"
>> >= '10729614737408'::bigint) AND ("pixelId" <= '10729614868479'::bigint))
>> OR (("pixelId" >= '10729614934016'::bigint) AND ("pixelId" <= '
>> 10729615065087'::bigint)) OR (("pixelId" >= '10729615130624'::bigint) AND
>> ("pixelId" <= '10729615261695'::bigint)) OR (("pixelId" >=
>> '10729615654912'::bigint) AND ("pixelId" <= '10729615720447'::bigint)) OR
>> (("
>> pixelId" >= '10729616048128'::bigint) AND ("pixelId" <=
>> '10729616113663'::bigint)) OR (("pixelId" >= '10729621028864'::bigint) AND
>> ("pixelId" <= '10729625223167'::bigint)) OR (("pixelId" >=
>> '10729625747456'::bi
>> gint) AND ("pixelId" <= '10729625812991'::bigint)) OR (("pixelId" >=
>> '10729625878528'::bigint) AND ("pixelId" <= '10729626009599'::bigint)) OR
>> (("pixelId" >= '10729626337280'::bigint) AND ("pixelId" <= '1072962
>> 6796031'::bigint)) OR (("pixelId" >= '10729626861568'::bigint) AND
>> ("pixelId" <= '10729628893183'::bigint)) OR (("pixelId" >=
>> '10729628958720'::bigint) AND ("pixelId" <= '10729630466047'::bigint)) OR
>> (("pixelId
>> " >= '10729630597120'::bigint) AND ("pixelId" <=
>> '10729630662655'::bigint)) OR (("pixelId" >= '10729630793728'::bigint) AND
>> ("pixelId" <= '10729630859263'::bigint)) OR (("pixelId" >=
>> '10729630990336'::bigint) A
>> ND ("pixelId" <= '10729631383551'::bigint)) OR (("pixelId" >=
>> '10729631449088'::bigint) AND ("pixelId" <= '10729633611775'::bigint)) OR
>> (("pixelId" >= '10729650388992'::bigint) AND ("pixelId" <= '10729650651135
>> '::bigint)) OR (("pixelId" >= '10729650716672'::bigint) AND ("pixelId" <=
>> '10729651437567'::bigint)) OR (("pixelId" >= '10729652748288'::bigint) AND
>> ("pixelId" <= '10729653010431'::bigint)) OR (("pixelId" >= '1
>> 0729653141504'::bigint) AND ("pixelId" <= '10729653207039'::bigint)) OR
>> (("pixelId" >= '10729653272576'::bigint) AND ("pixelId" <=
>> '10729653338111'::bigint)) OR (("pixelId" >= '10729653600256'::bigint) AND
>> ("pi
>> xelId" <= '10729653665791'::bigint)) OR (("pixelId" >=
>> '10729653796864'::bigint) AND ("pixelId" <= '10729654059007'::bigint)) OR
>> (("pixelId" >= '10729654190080'::bigint) AND ("pixelId" <=
>> '10729654255615'::bigi
>> nt)) OR (("pixelId" >= '10729654321152'::bigint) AND ("pixelId" <=
>> '10729654386687'::bigint)) OR (("pixelId" >= '10729654452224'::bigint) AND
>> ("pixelId" <= '10729654583295'::bigint)) OR (("pixelId" >= '10729734
>> 275072'::bigint) AND ("pixelId" <= '10729734799359'::bigint)) OR
>> (("pixelId" >= '10729735061504'::bigint) AND ("pixelId" <=
>> '10729735585791'::bigint)) OR (("pixelId" >= '10729735847936'::bigint) AND
>> ("pixelId"
>> <= '10729736372223'::bigint)) OR (("pixelId" >= '10729737945088'::bigint)
>> AND ("pixelId" <= '10729738207231'::bigint)) OR (("pixelId" >=
>> '10729738993664'::bigint) AND ("pixelId" <= '10729739124735'::bigint)) OR
>> (("pixelId" >= '10729739190272'::bigint) AND ("pixelId" <=
>> '10729739255807'::bigint)) OR (("pixelId" >= '10729740566528'::bigint) AND
>> ("pixelId" <= '10729740697599'::bigint)) OR (("pixelId" >= '10729740763136'
>> ::bigint) AND ("pixelId" <= '10729740894207'::bigint)) OR (("pixelId" >=
>> '10729740959744'::bigint) AND ("pixelId" <= '10729741090815'::bigint)) OR
>> (("pixelId" >= '10729741484032'::bigint) AND ("pixelId" <= '107
>> 29741549567'::bigint)) OR (("pixelId" >= '10729741877248'::bigint) AND
>> ("pixelId" <= '10729741942783'::bigint)) OR (("pixelId" >=
>> '10729748955136'::bigint) AND ("pixelId" <= '10729749020671'::bigint)) OR
>> (("pix
>> elId" >= '10729868492800'::bigint) AND ("pixelId" <=
>> '10729868754943'::bigint)) OR (("pixelId" >= '10729869082624'::bigint) AND
>> ("pixelId" <= '10729869148159'::bigint)) OR (("pixelId" >=
>> '10729869344768'::bigin
>> t) AND ("pixelId" <= '10729869410303'::bigint)) OR (("pixelId" >=
>> '10776494538752'::bigint) AND ("pixelId" <= '10776494604287'::bigint)))
>> Heap Blocks: exact=2377
>> -> BitmapOr (cost=541.17..541.17 rows=7831 width=0) (actual
>> time=1.699..1.699 rows=0 loops=1)
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..11.92 rows=335 width=0) (actual time=0.137..0.137 rows=406
>> loops=1)
>> Index Cond: (("pixelId" >= '10729436479488'::bigint) AND
>> ("pixelId" <= '10729440673791'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..100.33 rows=3976 width=0) (actual time=0.810..0.810 rows=4886
>> loops=1)
>> Index Cond: (("pixelId" >= '10729449062400'::bigint) AND
>> ("pixelId" <= '10729499394047'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..11.92 rows=335 width=0) (actual time=0.043..0.043 rows=333
>> loops=1)
>> Index Cond: (("pixelId" >= '10729532948480'::bigint) AND
>> ("pixelId" <= '10729537142783'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.008..0.008 rows=1 loops=1)
>> Index Cond: (("pixelId" >= '10729542385664'::bigint) AND
>> ("pixelId" <= '10729542451199'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.003..0.003 rows=16
>> loops=1)
>> Index Cond: (("pixelId" >= '10729542516736'::bigint) AND
>> ("pixelId" <= '10729542647807'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.008..0.008 rows=5 loops=1)
>> Index Cond: (("pixelId" >= '10729546579968'::bigint) AND
>> ("pixelId" <= '10729546711039'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.003..0.003 rows=8 loops=1)
>> Index Cond: (("pixelId" >= '10729546776576'::bigint) AND
>> ("pixelId" <= '10729546842111'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..11.92 rows=335 width=0) (actual time=0.035..0.035 rows=318
>> loops=1)
>> Index Cond: (("pixelId" >= '10729566502912'::bigint) AND
>> ("pixelId" <= '10729570697215'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.002..0.002 rows=0 loops=1)
>> Index Cond: (("pixelId" >= '10729570959360'::bigint) AND
>> ("pixelId" <= '10729571090431'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.002..0.003 rows=8 loops=1)
>> Index Cond: (("pixelId" >= '10729571155968'::bigint) AND
>> ("pixelId" <= '10729571221503'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..5.65 rows=108 width=0) (actual time=0.018..0.018 rows=108
>> loops=1)
>> Index Cond: (("pixelId" >= '10729571745792'::bigint) AND
>> ("pixelId" <= '10729573056511'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..5.39 rows=82 width=0) (actual time=0.010..0.010 rows=105
>> loops=1)
>> Index Cond: (("pixelId" >= '10729573122048'::bigint) AND
>> ("pixelId" <= '10729574105087'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..19.80 rows=723 width=0) (actual time=0.063..0.063 rows=674
>> loops=1)
>> Index Cond: (("pixelId" >= '10729574170624'::bigint) AND
>> ("pixelId" <= '10729583280127'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.008..0.008 rows=1 loops=1)
>> Index Cond: (("pixelId" >= '10729601105920'::bigint) AND
>> ("pixelId" <= '10729601171455'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..11.92 rows=335 width=0) (actual time=0.074..0.074 rows=343
>> loops=1)
>> Index Cond: (("pixelId" >= '10729604251648'::bigint) AND
>> ("pixelId" <= '10729608445951'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.009..0.009 rows=16
>> loops=1)
>> Index Cond: (("pixelId" >= '10729613164544'::bigint) AND
>> ("pixelId" <= '10729613295615'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.002..0.002 rows=2 loops=1)
>> Index Cond: (("pixelId" >= '10729613361152'::bigint) AND
>> ("pixelId" <= '10729613426687'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.009..0.009 rows=2 loops=1)
>> Index Cond: (("pixelId" >= '10729614737408'::bigint) AND
>> ("pixelId" <= '10729614868479'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.003..0.003 rows=12
>> loops=1)
>> Index Cond: (("pixelId" >= '10729614934016'::bigint) AND
>> ("pixelId" <= '10729615065087'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.003..0.003 rows=11
>> loops=1)
>> Index Cond: (("pixelId" >= '10729615130624'::bigint) AND
>> ("pixelId" <= '10729615261695'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.003..0.003 rows=10
>> loops=1)
>> Index Cond: (("pixelId" >= '10729615654912'::bigint) AND
>> ("pixelId" <= '10729615720447'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.002..0.002 rows=2 loops=1)
>> Index Cond: (("pixelId" >= '10729616048128'::bigint) AND
>> ("pixelId" <= '10729616113663'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..11.92 rows=335 width=0) (actual time=0.036..0.036 rows=254
>> loops=1)
>> Index Cond: (("pixelId" >= '10729621028864'::bigint) AND
>> ("pixelId" <= '10729625223167'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.009..0.009 rows=15
>> loops=1)
>> Index Cond: (("pixelId" >= '10729625747456'::bigint) AND
>> ("pixelId" <= '10729625812991'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.003..0.003 rows=17
>> loops=1)
>> Index Cond: (("pixelId" >= '10729625878528'::bigint) AND
>> ("pixelId" <= '10729626009599'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.98 rows=41 width=0) (actual time=0.004..0.004 rows=32
>> loops=1)
>> Index Cond: (("pixelId" >= '10729626337280'::bigint) AND
>> ("pixelId" <= '10729626796031'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..6.22 rows=165 width=0) (actual time=0.029..0.029 rows=144
>> loops=1)
>> Index Cond: (("pixelId" >= '10729626861568'::bigint) AND
>> ("pixelId" <= '10729628893183'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..5.80 rows=123 width=0) (actual time=0.016..0.016 rows=100
>> loops=1)
>> Index Cond: (("pixelId" >= '10729628958720'::bigint) AND
>> ("pixelId" <= '10729630466047'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.005..0.005 rows=4 loops=1)
>> Index Cond: (("pixelId" >= '10729630597120'::bigint) AND
>> ("pixelId" <= '10729630662655'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.003..0.003 rows=2 loops=1)
>> Index Cond: (("pixelId" >= '10729630793728'::bigint) AND
>> ("pixelId" <= '10729630859263'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.92 rows=35 width=0) (actual time=0.006..0.006 rows=22
>> loops=1)
>> Index Cond: (("pixelId" >= '10729630990336'::bigint) AND
>> ("pixelId" <= '10729631383551'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..6.32 rows=175 width=0) (actual time=0.031..0.031 rows=155
>> loops=1)
>> Index Cond: (("pixelId" >= '10729631449088'::bigint) AND
>> ("pixelId" <= '10729633611775'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.82 rows=25 width=0) (actual time=0.022..0.022 rows=58
>> loops=1)
>> Index Cond: (("pixelId" >= '10729650388992'::bigint) AND
>> ("pixelId" <= '10729650651135'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..5.18 rows=61 width=0) (actual time=0.009..0.009 rows=63
>> loops=1)
>> Index Cond: (("pixelId" >= '10729650716672'::bigint) AND
>> ("pixelId" <= '10729651437567'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.82 rows=25 width=0) (actual time=0.019..0.019 rows=30
>> loops=1)
>> Index Cond: (("pixelId" >= '10729652748288'::bigint) AND
>> ("pixelId" <= '10729653010431'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.006..0.006 rows=10
>> loops=1)
>> Index Cond: (("pixelId" >= '10729653141504'::bigint) AND
>> ("pixelId" <= '10729653207039'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.004..0.004 rows=1 loops=1)
>> Index Cond: (("pixelId" >= '10729653272576'::bigint) AND
>> ("pixelId" <= '10729653338111'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.003..0.003 rows=0 loops=1)
>> Index Cond: (("pixelId" >= '10729653600256'::bigint) AND
>> ("pixelId" <= '10729653665791'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.82 rows=25 width=0) (actual time=0.006..0.006 rows=20
>> loops=1)
>> Index Cond: (("pixelId" >= '10729653796864'::bigint) AND
>> ("pixelId" <= '10729654059007'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.003..0.003 rows=1 loops=1)
>> Index Cond: (("pixelId" >= '10729654190080'::bigint) AND
>> ("pixelId" <= '10729654255615'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.003..0.003 rows=2 loops=1)
>> Index Cond: (("pixelId" >= '10729654321152'::bigint) AND
>> ("pixelId" <= '10729654386687'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.003..0.003 rows=2 loops=1)
>> Index Cond: (("pixelId" >= '10729654452224'::bigint) AND
>> ("pixelId" <= '10729654583295'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..5.03 rows=46 width=0) (actual time=0.026..0.026 rows=47
>> loops=1)
>> Index Cond: (("pixelId" >= '10729734275072'::bigint) AND
>> ("pixelId" <= '10729734799359'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..5.03 rows=46 width=0) (actual time=0.009..0.009 rows=45
>> loops=1)
>> Index Cond: (("pixelId" >= '10729735061504'::bigint) AND
>> ("pixelId" <= '10729735585791'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..5.03 rows=46 width=0) (actual time=0.018..0.019 rows=54
>> loops=1)
>> Index Cond: (("pixelId" >= '10729735847936'::bigint) AND
>> ("pixelId" <= '10729736372223'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.82 rows=25 width=0) (actual time=0.039..0.039 rows=42
>> loops=1)
>> Index Cond: (("pixelId" >= '10729737945088'::bigint) AND
>> ("pixelId" <= '10729738207231'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.006..0.006 rows=8 loops=1)
>> Index Cond: (("pixelId" >= '10729738993664'::bigint) AND
>> ("pixelId" <= '10729739124735'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.006..0.006 rows=20
>> loops=1)
>> Index Cond: (("pixelId" >= '10729739190272'::bigint) AND
>> ("pixelId" <= '10729739255807'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.004..0.004 rows=4 loops=1)
>> Index Cond: (("pixelId" >= '10729740566528'::bigint) AND
>> ("pixelId" <= '10729740697599'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.005..0.005 rows=16
>> loops=1)
>> Index Cond: (("pixelId" >= '10729740763136'::bigint) AND
>> ("pixelId" <= '10729740894207'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.72 rows=15 width=0) (actual time=0.005..0.005 rows=13
>> loops=1)
>> Index Cond: (("pixelId" >= '10729740959744'::bigint) AND
>> ("pixelId" <= '10729741090815'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.020..0.020 rows=23
>> loops=1)
>> Index Cond: (("pixelId" >= '10729741484032'::bigint) AND
>> ("pixelId" <= '10729741549567'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.005..0.005 rows=3 loops=1)
>> Index Cond: (("pixelId" >= '10729741877248'::bigint) AND
>> ("pixelId" <= '10729741942783'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.012..0.012 rows=11
>> loops=1)
>> Index Cond: (("pixelId" >= '10729748955136'::bigint) AND
>> ("pixelId" <= '10729749020671'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.82 rows=25 width=0) (actual time=0.013..0.013 rows=15
>> loops=1)
>> Index Cond: (("pixelId" >= '10729868492800'::bigint) AND
>> ("pixelId" <= '10729868754943'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.006..0.006 rows=11
>> loops=1)
>> Index Cond: (("pixelId" >= '10729869082624'::bigint) AND
>> ("pixelId" <= '10729869148159'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.004..0.004 rows=1 loops=1)
>> Index Cond: (("pixelId" >= '10729869344768'::bigint) AND
>> ("pixelId" <= '10729869410303'::bigint))
>> -> Bitmap Index Scan on "IDX_DiaSource_htmId20"
>> (cost=0.00..4.67 rows=10 width=0) (actual time=0.040..0.040 rows=12
>> loops=1)
>> Index Cond: (("pixelId" >= '10776494538752'::bigint) AND
>> ("pixelId" <= '10776494604287'::bigint))
>> First execution:
>> Planning Time: 4.742 ms
>> Execution Time: 272.052 ms
>> Subsequent executions:
>> Planning Time: 1.070 ms
>> Execution Time: 40.963 ms
>>
>> select count(*) from "DiaSource"
>> [more] - > ;
>> count
>> -----------
>> 302971183
>>
>> So PG is taking each predicate -> searching through IDX_DiaSource_htmId20
>> -> building bitmap of ctid's (i think that's corollary to oracle's rowid)
>> -> visiting table blocks containing any of those pixelID ranges 1x for
>> additional columns. That seems extremely efficient to me.
>>
>> I did try a "create table x as select * from diasource" sorting the table
>> by pixelID and creating a brin index to see how that went. Not well (~2.5
>> second response time). My other thought was to range partition by pixelID +
>> brin index. I might also play w/ parallel query but process communication
>> overhead and scalability implications (100's of concurrent processes
>> running similar SQL) probably make that a dead end.
>>
>> Anyways, I figured I'd submit this to the list first to see if there
>> might be better possibilities.
>>
>
> It is hard to do some better - just you can check if without bitmap index
> scan this query will be better
>
> set enable_bitmapscan to off';
>
> and repeat EXPLAIN ANALYZE ..
>
> Regards
>
> Pavel
>
>
>> Thanks for any input!
>>
>> Chris
>>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Olivier Gautherot 2020-04-16 15:20:48 Re: possibilities for SQL optimization
Previous Message Pavel Stehule 2020-04-16 14:22:36 Re: possibilities for SQL optimization