Received: from maia.hub.org (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id 581A46327EF for ; Thu, 15 Oct 2009 04:47:43 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 19257-07 for ; Thu, 15 Oct 2009 07:47:35 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from qw-out-2122.google.com (qw-out-2122.google.com [74.125.92.26]) by mail.postgresql.org (Postfix) with ESMTP id B278F6324FF for ; Thu, 15 Oct 2009 04:47:34 -0300 (ADT) Received: by qw-out-2122.google.com with SMTP id 9so169113qwb.61 for ; Thu, 15 Oct 2009 00:47:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=lfgm/QLuwgvxfH5egSqO0KPRvRaZoSbqM9ag1mhoaHU=; b=FNMVxVfGTDngL1GHY8NlDUbzM5qzQuF6Fs5cJ0JS34FV4itZsJdlgLPcyy1tCSOlpx VatNjQeTPCBx+Zz5/0hdrYkZgp+n8xn4tFI24X+BkJOlGDUOoDTJEoVZeIZ9vr/KLiSa rnK8d1Fw2ypeGgi5wnNv3lXrwybegiqBhbsTw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=Dw7P3PXA+daEyRFsUkKNYXsLGjGBRPDBTZWsmHTuh75upd0Sk+cMypTL74YBCNNeqH GewCmQ1kk8MjRdIiegB87rBztYrPlI6AUcU9x3aia5IiyQCg5hkI+94jhIsgJqYO+ZtU CSef6QZ2nJqklLshRZACMCOAWcWdycMi6nAuw= MIME-Version: 1.0 Received: by 10.229.117.130 with SMTP id r2mr3959342qcq.12.1255592853271; Thu, 15 Oct 2009 00:47:33 -0700 (PDT) Date: Thu, 15 Oct 2009 14:47:33 +0700 Message-ID: <14692fe50910150047m58566950k7f837d10f7dece61@mail.gmail.com> Subject: help-simplify query From: Muhammad Rafizeldi To: pgsql-sql@postgresql.org Content-Type: multipart/alternative; boundary=000e0cd5cca600746b0475f47ec2 X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-2.598 tagged_above=-10 required=5 tests=BAYES_00=-2.599, HTML_MESSAGE=0.001 X-Spam-Level: X-Archive-Number: 200910/66 X-Sequence-Number: 33265 --000e0cd5cca600746b0475f47ec2 Content-Type: text/plain; charset=ISO-8859-1 Dear All I need to simplify this query, It takes a lot of time to execute Since "skala_rental" table has 2.3million rows(Table Size:387 MB, Indexes Size: 132MB) and scanned 6 times in the execution. cf_application_id has +100000rows, Table Size: 21 MB, Indexes Size: 18MB I guest the problem is on this subquery sr.counter =(SELECT MIN(counter) FROM skala_rental WHERE cf_application_id = cf.cf_application_id AND (payment_date IS NULL OR payment_date > '2008/1/1') AND counter <> 0) This part is really slow in execution and there are redundant "WHERE clause"/Filters between subqueries I cannot provide my server configuarion, i have no access there Is there any idea/suggestion to make this better query? Please help me to find the better one ---------->This is my query that need to simplfy SELECT --principle_1 2009 COALESCE ((SELECT SUM(principle) FROM skala_rental WHERE cf_application_id = cf.cf_application_id AND (payment_date IS NULL OR payment_date > '2008/1/1') AND counter <> 0 AND due_date <= DATEADD('year',1,'2008/1/1')), 0) AS principle_1, --interest_1 2009 COALESCE ((SELECT SUM(interest) FROM skala_rental WHERE cf_application_id = cf.cf_application_id AND (payment_date IS NULL OR payment_date > '2008/1/1') AND counter <> 0 AND due_date <= DATEADD('year',1,'2008/1/1')), 0) AS interest_1, --principle_2 2010 COALESCE ((SELECT SUM(principle) FROM skala_rental WHERE cf_application_id = cf.cf_application_id AND due_date BETWEEN DATEADD('day',1,DATEADD('year',1,'2008/1/1')) AND DATEADD('year',2,'2008/1/1')),0) AS principle_2, --interest_2 2010 COALESCE ((SELECT SUM(interest) FROM skala_rental WHERE cf_application_id = cf.cf_application_id AND due_date BETWEEN DATEADD('day',1,DATEADD('year',1,'2008/1/1')) AND DATEADD('year',2,'2008/1/1')),0) AS interest_2 FROM cf_application cf JOIN skala_rental sr ON sr.cf_application_id = cf.cf_application_id WHERE 1=1 AND cf.drawdown_date <= '2008/1/1' AND (cf.terminate_date IS NULL OR cf.terminate_date > '2008/1/1') AND sr.counter = (SELECT MIN(counter) FROM skala_rental WHERE cf_application_id = cf.cf_application_id AND (payment_date IS NULL OR payment_date > '2008/1/1') AND counter <> 0) AND cf.branch_id = 2 ORDER BY cf.cf_drawdown_number ----------> This is skala_rental & cf_application schema, some unecessary fields were removed CREATE TABLE skala_rental ( skala_rental_id bigint NOT NULL, counter integer NOT NULL, due_date date NOT NULL, payment_date date, rental double precision NOT NULL, principle double precision NOT NULL, interest double precision NOT NULL, cf_application_id bigint, CONSTRAINT skala_rental_pkey PRIMARY KEY (skala_rental_id) ) WITH (OIDS=FALSE); CREATE INDEX ix_skala_rental ON skala_rental USING btree (cf_application_id, counter, payment_date, due_date); CREATE TABLE cf_application ( cf_application_id bigint NOT NULL, cf_application_number character varying(32), old_cf_application_number character varying(32), organization_id bigint, branch_id bigint NOT NULL, drawdown_date date, terminate_date date, last_due_date date, CONSTRAINT cf_application_pkey PRIMARY KEY (cf_application_id), CONSTRAINT fk9889f3744997923b FOREIGN KEY (record_status_id) REFERENCES status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH (OIDS=FALSE); CREATE INDEX ix_cf_application ON cf_application USING btree (cf_application_number, cf_drawdown_number, application_date, corporate_id, personal_id, branch_id, record_status_id, marketing_id, product_id, cf_application_id, old_cf_application_number, drawdown_date, terminate_date, organization_id); ----------> The Explain Analyze: "Sort (cost=1185871.07..1185871.81 rows=297 width=29) (actual time=24472.933..24474.260 rows=1770 loops=1)" " Sort Key: cf.cf_drawdown_number" " Sort Method: quicksort Memory: 268kB" " -> Nested Loop (cost=3.26..1185858.87 rows=297 width=29) (actual time=33.743..24460.729 rows=1770 loops=1)" " -> Seq Scan on cf_application cf (cost=0.00..4557.67 rows=2750 width=29) (actual time=15.873..82.538 rows=1770 loops=1)" " Filter: ((drawdown_date <= '2008-01-01'::date) AND ((terminate_date IS NULL) OR (terminate_date > '2008-01-01'::date)) AND (branch_id = 2))" " -> Index Scan using ix_skala_rental on skala_rental sr (cost=3.26..18.79 rows=6 width=12) (actual time=0.008..0.009 rows=1 loops=1770)" " Index Cond: ((sr.cf_application_id = cf.cf_application_id) AND (sr.counter = (subplan)))" " SubPlan" " -> Result (cost=3.25..3.26 rows=1 width=0) (actual time=0.030..0.031 rows=1 loops=1770)" " InitPlan" " -> Limit (cost=0.00..3.25 rows=1 width=4) (actual time=0.025..0.026 rows=1 loops=1770)" " -> Index Scan using ix_skala_rental on skala_rental (cost=0.00..709.19 rows=218 width=4) (actual time=0.022..0.022 rows=1 loops=1770)" " Index Cond: (cf_application_id = $0)" " Filter: ((counter IS NOT NULL) AND ((payment_date IS NULL) OR (payment_date > '2008-01-01'::date)) AND (counter <> 0))" " -> Result (cost=3.25..3.26 rows=1 width=0) (actual time=0.030..0.031 rows=1 loops=1770)" " InitPlan" " -> Limit (cost=0.00..3.25 rows=1 width=4) (actual time=0.025..0.026 rows=1 loops=1770)" " -> Index Scan using ix_skala_rental on skala_rental (cost=0.00..709.19 rows=218 width=4) (actual time=0.022..0.022 rows=1 loops=1770)" " Index Cond: (cf_application_id = $0)" " Filter: ((counter IS NOT NULL) AND ((payment_date IS NULL) OR (payment_date > '2008-01-01'::date)) AND (counter <> 0))" " SubPlan" " -> Aggregate (cost=1002.55..1002.56 rows=1 width=8) (actual time=5.594..5.595 rows=1 loops=1770)" " -> Index Scan using ix_skala_rental on skala_rental (cost=0.00..1002.44 rows=43 width=8) (actual time=4.381..5.576 rows=6 loops=1770)" " Index Cond: (cf_application_id = $0)" " Filter: ((due_date <= dateadd('year'::character varying, 2, '2008-01-01 00:00:00'::timestamp without time zone)) AND (due_date >= dateadd('day'::character varying, 1, dateadd('year'::character varying, 1, '2008-01-01 00:00:00'::timestamp without time zone))))" " -> Aggregate (cost=1002.55..1002.56 rows=1 width=8) (actual time=5.592..5.593 rows=1 loops=1770)" " -> Index Scan using ix_skala_rental on skala_rental (cost=0.00..1002.44 rows=43 width=8) (actual time=4.378..5.574 rows=6 loops=1770)" " Index Cond: (cf_application_id = $0)" " Filter: ((due_date <= dateadd('year'::character varying, 2, '2008-01-01 00:00:00'::timestamp without time zone)) AND (due_date >= dateadd('day'::character varying, 1, dateadd('year'::character varying, 1, '2008-01-01 00:00:00'::timestamp without time zone))))" " -> Aggregate (cost=808.10..808.11 rows=1 width=8) (actual time=1.257..1.258 rows=1 loops=1770)" " -> Index Scan using ix_skala_rental on skala_rental (cost=0.00..807.92 rows=73 width=8) (actual time=0.079..1.229 rows=11 loops=1770)" " Index Cond: (cf_application_id = $0)" " Filter: (((payment_date IS NULL) OR (payment_date > '2008-01-01'::date)) AND (counter <> 0) AND (due_date <= dateadd('year'::character varying, 1, '2008-01-01 00:00:00'::timestamp without time zone)))" " -> Aggregate (cost=808.10..808.11 rows=1 width=8) (actual time=1.264..1.264 rows=1 loops=1770)" " -> Index Scan using ix_skala_rental on skala_rental (cost=0.00..807.92 rows=73 width=8) (actual time=0.080..1.235 rows=11 loops=1770)" " Index Cond: (cf_application_id = $0)" " Filter: (((payment_date IS NULL) OR (payment_date > '2008-01-01'::date)) AND (counter <> 0) AND (due_date <= dateadd('year'::character varying, 1, '2008-01-01 00:00:00'::timestamp without time zone)))" "Total runtime: 24476.272 ms" --000e0cd5cca600746b0475f47ec2 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Dear All
I need to simplify this query, It takes a lot of time to execut= e
Since "skala_rental" table has 2.3million rows(Table Size:38= 7 MB, Indexes Size: 132MB) and scanned 6 times in the execution. cf_applica= tion_id has +100000rows, Table Size: 21 MB, Indexes Size: 18MB
I guest the problem is on this subquery
sr.counter =3D(SELECT MIN(counte= r)
=A0=A0=A0 FROM skala_rental
=A0=A0=A0 WHERE cf_application_id =3D = cf.cf_application_id
=A0=A0=A0 AND (payment_date IS NULL OR payment_date= > '2008/1/1') AND counter <> 0)
This part is really slow in execution
and there are redundant "WHER= E clause"/Filters between subqueries
I cannot provide my server con= figuarion, i have no access there
Is there any idea/suggestion to make t= his better query?
Please help me to find the better one

---------->This is my query= that need to simplfy
SELECT
--principle_1 2009
COALESCE ((SELECT = SUM(principle)
=A0 FROM skala_rental
=A0 WHERE cf_application_id =3D = cf.cf_application_id
=A0=A0=A0 AND (payment_date IS NULL OR payment_date > '2008/1/1'= )
=A0=A0=A0 AND counter <> 0
=A0=A0=A0 AND due_date <=3D DAT= EADD('year',1,'2008/1/1')), 0) AS principle_1,
--interes= t_1 2009
COALESCE ((SELECT SUM(interest)
=A0 FROM skala_rental
=A0 WHERE cf_application_id =3D cf.cf_application_= id
=A0=A0=A0 AND (payment_date IS NULL OR payment_date > '2008/1/= 1')
=A0=A0=A0 AND counter <> 0
=A0=A0=A0 AND due_date <= =3D DATEADD('year',1,'2008/1/1')), 0) AS interest_1,

--principle_2 2010
COALESCE ((SELECT SUM(principle)
=A0 FROM skal= a_rental
=A0 WHERE cf_application_id =3D cf.cf_application_id
=A0=A0= =A0 AND due_date BETWEEN DATEADD('day',1,DATEADD('year',1,&= #39;2008/1/1'))
=A0=A0=A0 AND DATEADD('year',2,'2008/1/1')),0) AS principle= _2,
--interest_2 2010
COALESCE ((SELECT SUM(interest)
=A0 FROM ska= la_rental
=A0 WHERE cf_application_id =3D cf.cf_application_id
=A0=A0= =A0 AND due_date BETWEEN DATEADD('day',1,DATEADD('year',1,&= #39;2008/1/1'))
=A0=A0=A0 AND DATEADD('year',2,'2008/1/1')),0) AS interest_= 2
FROM
=A0 cf_application cf
=A0 JOIN skala_rental sr ON sr.cf_app= lication_id =3D cf.cf_application_id
WHERE 1=3D1
=A0 AND cf.drawdown_= date <=3D '2008/1/1'
=A0 AND (cf.terminate_date IS NULL OR cf.terminate_date > '2008/1/1&= #39;)
=A0 AND sr.counter =3D
=A0=A0 (SELECT MIN(counter)
=A0=A0=A0= FROM skala_rental
=A0=A0=A0 WHERE cf_application_id =3D cf.cf_applicati= on_id
=A0=A0=A0 AND (payment_date IS NULL OR payment_date > '2008= /1/1')
=A0=A0=A0 AND counter <> 0)
=A0 AND cf.branch_id =3D 2
ORDER BY= cf.cf_drawdown_number


----------> This is skala_rental &= cf_application schema,
some unecessary fields were removed
CREATE TA= BLE skala_rental
( skala_rental_id bigint NOT NULL, counter integer NOT NULL,
=A0 due_dat= e date NOT NULL, payment_date date,
=A0 rental double precision NOT NULL= , principle double precision NOT NULL,
=A0 interest double precision NOT= NULL, cf_application_id bigint,
=A0 CONSTRAINT skala_rental_pkey PRIMARY KEY (skala_rental_id)
) WITH (O= IDS=3DFALSE);

CREATE INDEX ix_skala_rental ON skala_rental
=A0 US= ING btree (cf_application_id, counter, payment_date, due_date);


= CREATE TABLE cf_application
( cf_application_id bigint NOT NULL, cf_application_number character varyin= g(32),
=A0 old_cf_application_number character varying(32), organization= _id bigint,
=A0 branch_id bigint NOT NULL, drawdown_date date,
=A0 te= rminate_date date, last_due_date date,
=A0 CONSTRAINT cf_application_pkey PRIMARY KEY (cf_application_id),
=A0 = CONSTRAINT fk9889f3744997923b FOREIGN KEY (record_status_id)
=A0=A0=A0= =A0=A0 REFERENCES status (status_id) MATCH SIMPLE
=A0=A0=A0=A0=A0 ON UPD= ATE NO ACTION ON DELETE NO ACTION
) WITH (OIDS=3DFALSE);

CREATE INDEX ix_cf_application ON cf_applicat= ion
=A0 USING btree (cf_application_number, cf_drawdown_number, applicat= ion_date, corporate_id, personal_id, branch_id, record_status_id, marketing= _id, product_id, cf_application_id, old_cf_application_number, drawdown_dat= e, terminate_date, organization_id);


----------> The Explain Analyze:
"Sort=A0 (cost=3D118587= 1.07..1185871.81 rows=3D297 width=3D29) (actual time=3D24472.933..24474.260= rows=3D1770 loops=3D1)"
"=A0 Sort Key: cf.cf_drawdown_number&= quot;
"=A0 Sort Method:=A0 quicksort=A0 Memory: 268kB"
"=A0 ->=A0 Nested Loop=A0 (cost=3D3.26..1185858.87 rows=3D297 width= =3D29) (actual time=3D33.743..24460.729 rows=3D1770 loops=3D1)"
&qu= ot;=A0=A0=A0=A0=A0=A0=A0 ->=A0 Seq Scan on cf_application cf=A0 (cost=3D= 0.00..4557.67 rows=3D2750 width=3D29) (actual time=3D15.873..82.538 rows=3D= 1770 loops=3D1)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Filter: ((drawdown_date <= =3D '2008-01-01'::date) AND ((terminate_date IS NULL) OR (terminate= _date > '2008-01-01'::date)) AND (branch_id =3D 2))"
&qu= ot;=A0=A0=A0=A0=A0=A0=A0 ->=A0 Index Scan using ix_skala_rental on skala= _rental sr=A0 (cost=3D3.26..18.79 rows=3D6 width=3D12) (actual time=3D0.008= ..0.009 rows=3D1 loops=3D1770)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Index Cond: ((sr.cf_applicati= on_id =3D cf.cf_application_id) AND (sr.counter =3D (subplan)))"
&q= uot;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 SubPlan"
"=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Result=A0 (cost=3D3.25..3.= 26 rows=3D1 width=3D0) (actual time=3D0.030..0.031 rows=3D1 loops=3D1770)&q= uot;
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 InitP= lan"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 ->=A0 Limit=A0 (cost=3D0.00..3.25 rows=3D1 width=3D4) (a= ctual time=3D0.025..0.026 rows=3D1 loops=3D1770)"
"=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 ->=A0 Index Scan using ix_skala_rental on skala_rental=A0 (cost=3D0.= 00..709.19 rows=3D218 width=3D4) (actual time=3D0.022..0.022 rows=3D1 loops= =3D1770)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Index Cond: (cf_application_id =3D $0)= "
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Filter: ((counter IS NOT N= ULL) AND ((payment_date IS NULL) OR (payment_date > '2008-01-01'= ::date)) AND (counter <> 0))"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Result=A0 (cos= t=3D3.25..3.26 rows=3D1 width=3D0) (actual time=3D0.030..0.031 rows=3D1 loo= ps=3D1770)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 InitPlan"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Limit=A0 (cost=3D0.00..3.25 r= ows=3D1 width=3D4) (actual time=3D0.025..0.026 rows=3D1 loops=3D1770)"=
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 ->=A0 Index Scan using ix_skala_rental on skala_renta= l=A0 (cost=3D0.00..709.19 rows=3D218 width=3D4) (actual time=3D0.022..0.022= rows=3D1 loops=3D1770)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Index= Cond: (cf_application_id =3D $0)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Filter: ((counter IS NOT NULL) AND ((p= ayment_date IS NULL) OR (payment_date > '2008-01-01'::date)) AND= (counter <> 0))"
"=A0=A0=A0=A0=A0=A0=A0 SubPlan""=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Aggregate=A0 (cost=3D1002.55..= 1002.56 rows=3D1 width=3D8) (actual time=3D5.594..5.595 rows=3D1 loops=3D17= 70)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Index Scan usi= ng ix_skala_rental on skala_rental=A0 (cost=3D0.00..1002.44 rows=3D43 width= =3D8) (actual time=3D4.381..5.576 rows=3D6 loops=3D1770)"
"=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Index Cond: (c= f_application_id =3D $0)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Filte= r: ((due_date <=3D dateadd('year'::character varying, 2, '20= 08-01-01 00:00:00'::timestamp without time zone)) AND (due_date >=3D= dateadd('day'::character varying, 1, dateadd('year'::chara= cter varying, 1, '2008-01-01 00:00:00'::timestamp without time zone= ))))"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Aggregate=A0 (cost=3D1002.55..10= 02.56 rows=3D1 width=3D8) (actual time=3D5.592..5.593 rows=3D1 loops=3D1770= )"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Ind= ex Scan using ix_skala_rental on skala_rental=A0 (cost=3D0.00..1002.44 rows= =3D43 width=3D8) (actual time=3D4.378..5.574 rows=3D6 loops=3D1770)" "=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Index= Cond: (cf_application_id =3D $0)"
"=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Filter: ((due_date <=3D dateadd(= 'year'::character varying, 2, '2008-01-01 00:00:00'::timest= amp without time zone)) AND (due_date >=3D dateadd('day'::charac= ter varying, 1, dateadd('year'::character varying, 1, '2008-01-= 01 00:00:00'::timestamp without time zone))))"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Aggregate=A0 (cost=3D808.10..808= .11 rows=3D1 width=3D8) (actual time=3D1.257..1.258 rows=3D1 loops=3D1770)&= quot;
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Index= Scan using ix_skala_rental on skala_rental=A0 (cost=3D0.00..807.92 rows=3D= 73 width=3D8) (actual time=3D0.079..1.229 rows=3D11 loops=3D1770)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Index= Cond: (cf_application_id =3D $0)"
"=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Filter: (((payment_date IS NULL) OR= (payment_date > '2008-01-01'::date)) AND (counter <> 0) A= ND (due_date <=3D dateadd('year'::character varying, 1, '200= 8-01-01 00:00:00'::timestamp without time zone)))"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Aggregate=A0 (cost=3D808.10..808= .11 rows=3D1 width=3D8) (actual time=3D1.264..1.264 rows=3D1 loops=3D1770)&= quot;
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ->=A0 Index= Scan using ix_skala_rental on skala_rental=A0 (cost=3D0.00..807.92 rows=3D= 73 width=3D8) (actual time=3D0.080..1.235 rows=3D11 loops=3D1770)"
"=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Index= Cond: (cf_application_id =3D $0)"
"=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Filter: (((payment_date IS NULL) OR= (payment_date > '2008-01-01'::date)) AND (counter <> 0) A= ND (due_date <=3D dateadd('year'::character varying, 1, '200= 8-01-01 00:00:00'::timestamp without time zone)))"
"Total runtime: 24476.272 ms"


--000e0cd5cca600746b0475f47ec2--