Return-Path: <oracle-l-bounce@freelists.org>
X-Original-To: oracle-l@orafaq.com
Delivered-To: oracle-l@orafaq.com
Received: from turing.freelists.org (turing.freelists.org [206.53.239.180])
 by malta2546.startdedicated.com (Postfix) with ESMTPS id 489D61003A106F
 for <oracle-l@orafaq.com>; Tue, 10 Oct 2017 23:08:43 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id EAE491B2C0;
 Tue, 10 Oct 2017 17:08:41 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1507669722;
 bh=ht7wL86iS46OAHIpIZGZVG00jU+o82672CVjB6AJEPc=;
 h=References:In-Reply-To:From:Date:Subject:To:Cc:Reply-To:List-help:
	 List-unsubscribe:List-Id:List-subscribe:List-owner:List-post:
	 List-archive;
 b=rQOQphg94Dedi+HMnwJco1ZbcLqMCG3Z0in3EP9gTz82wIsdxTd6KDie09FbzGO/E
	 XQYwdoxW1a3/+59/tFy4tOBL7/lIVIhz0Vj/wt22fCTQoJHyf2MkfMdcff1OD0MHzc
	 1dwHn756d7ROpv4Vl4Q7xxi6NBQ3G2SmfUcqogTU=
X-Virus-Scanned: Debian amavisd-new at turing.freelists.org
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ZaClNRHgtujU; Tue, 10 Oct 2017 17:08:41 -0400 (EDT)
Received: from turing.freelists.org (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id D4A711B299;
 Tue, 10 Oct 2017 17:08:28 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1507669720;
 bh=ht7wL86iS46OAHIpIZGZVG00jU+o82672CVjB6AJEPc=;
 h=References:In-Reply-To:From:Date:Subject:To:Cc:Reply-To:List-help:
	 List-unsubscribe:List-Id:List-subscribe:List-owner:List-post:
	 List-archive;
 b=vKf3TLZ51uHzdI11ia1xkoJFwspdSsXN631vwFxXGDvqCjAxMs5NQsULFwHISjKko
	 p1S90SeWeI1SA7BikM8uvF4WbWaVMF/1KsPpxqNPX8C5+UEOZ6PPp1VIZ+PDCD1kUd
	 G9DEmEQasT4gV8oHIKuJPgw/LOyyxX+tseEH1hQM=
Received: with ECARTIS (v1.0.0; list oracle-l); Tue, 10 Oct 2017 17:07:07 -0400 (EDT)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 5C59719597
 for <oracle-l@freelists.org>; Tue, 10 Oct 2017 17:07:06 -0400 (EDT)
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id G_LAqx_FTXI3 for <oracle-l@freelists.org>;
 Tue, 10 Oct 2017 17:07:06 -0400 (EDT)
Received: from mail-io0-f179.google.com (mail-io0-f179.google.com [209.85.223.179])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 32A2C160B8
 for <oracle-l@freelists.org>; Tue, 10 Oct 2017 17:07:05 -0400 (EDT)
Received: by mail-io0-f179.google.com with SMTP id i38so231914iod.2
        for <oracle-l@freelists.org>; Tue, 10 Oct 2017 14:07:05 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=vJIVIiCkL67i1jRlexTw+uGUHSoo2+e1WMl+Ef06UcM=;
        b=aq69qFJEl6WiwDC3jH/a0K2OV8w6D2zdzsehCAfgG4AXS0bzl/8cmhMQ5LveYErpHb
         PzMDNReRIQ8KMYIPFG2nPvoP8S+cdKqdXMBfKpzej223ahdf2yWPQ05hxEu0WxNYfvVj
         2h8kljESMulVtQs2NMb81kvIRXtj62ml5cbxWBM6JMy8KbnSjhmCvwN+rpA6rkwmK9ht
         ju2F02ulOjZFtH80BGQ1oZMJMcLUzFeBgOMR1ZrLplmZrp6zOtqSIM6Cy3WiORihEmky
         8REX/XDL/KhWUoDkzhYywXV/y8nuh+jxHyOlJgo5jmZL+pDyseYi2hsavj2rzsKztpoq
         mu5g==
X-Gm-Message-State: AMCzsaXy8c4CuI4D1RKPeTfgRLyV9GpXtp6ZcWR6X4afxioQKd5h5Ly4
 kSLbDrovhX1eReHho0YgyI/lHU/aPM1dKnGAQVwz
X-Google-Smtp-Source: AOwi7QCo59DStQO3jjhlPPM4oOTcIIWfcvbthgO4hqzT3P7ytp8KjcP3zkB9lzXoIv2m5L6GEIuo33s7wZRhb3Elvzk=
X-Received: by 10.107.162.75 with SMTP id l72mr12183401ioe.57.1507669625494;
 Tue, 10 Oct 2017 14:07:05 -0700 (PDT)
MIME-Version: 1.0
References: <CAJkYCMEk3VLMxdkg59Z+bbUHA01ckL6fkh9xEXcUJaY_f4w76g@mail.gmail.com>
 <CAGYrQyvRLNfTOAONQGCPZTqWLyN_vQiG2A4sbs+xwdckcYoxZg@mail.gmail.com>
In-Reply-To: <CAGYrQyvRLNfTOAONQGCPZTqWLyN_vQiG2A4sbs+xwdckcYoxZg@mail.gmail.com>
From: John Thomas <jt2354@gmail.com>
Date: Tue, 10 Oct 2017 21:06:55 +0000
Message-ID: <CAOHpfbGcKiCvgqE719293x41Ha08PeiXEZHm4kKCOqH7BTD3QA@mail.gmail.com>
Subject: Re: Redo Generation
To: jcdrpllist@gmail.com, Michael Calisi <oracle455@gmail.com>
Cc: Oracle-L Freelists <oracle-l@freelists.org>
Content-Type: multipart/alternative; boundary="001a1140f8d07762c6055b37b06e"
X-archive-position: 69517
X-ecartis-version: Ecartis v1.0.0
Sender: oracle-l-bounce@freelists.org
Errors-to: oracle-l-bounce@freelists.org
X-original-sender: jt2354@gmail.com
Precedence: normal
Reply-To: jt2354@gmail.com
List-help: <mailto:ecartis@freelists.org?Subject=help>
List-unsubscribe: <oracle-l-request@freelists.org?Subject=unsubscribe>
List-software: Ecartis version 1.0.0
List-Id: oracle-l <oracle-l.freelists.org>
X-List-ID: oracle-l <oracle-l.freelists.org>
List-subscribe: <oracle-l-request@freelists.org?Subject=subscribe>
List-owner: <mailto:mark.bobak@proquest.com>
List-post: <mailto:oracle-l@freelists.org>
List-archive: <http://www.freelists.org/archives/oracle-l>
X-list: oracle-l
--001a1140f8d07762c6055b37b06e
Content-Type: text/plain; charset="UTF-8"

Hmm.

The precise answer is probably not. Test the statement in an isolated test
instance. Measure the redo generated, then you will have a good idea.

However you could roughly reckon on the average row size for an insert,
similar for delete, and maybe an approximation to double the data updated
for an UPDATE.

Depends how accurate you need to be. Undo generates redo, except using new
features for temporary segments etc...

Regards,

John

On Tue, 10 Oct 2017 at 19:47 Juan Carlos Reyes Pacheco <jcdrpllist@gmail.com>
wrote:

> I remember a talk about it from TKyte,
>
> but maybe sqlplus is not enough, check at the end please.
>
> SQL> SET AUTOT ON
> SQL> SELECT COUNT(*) FROM DBA_OBJECTS WHERE OBJECT_NAME LIKE '%A%';
>   COUNT(*)
> ----------
>      24254
> Execution Plan
> ----------------------------------------------------------
>
> ----------------------------------------------------------------------------
> | Id  | Operation               | Name        | Rows  | Bytes | Cost
> (%CPU)|
>
> ----------------------------------------------------------------------------
> |   0 | SELECT STATEMENT        |             |     1 |    66 |   280
>  (3)|
> |   1 |  SORT AGGREGATE         |             |     1 |    66 |
> |
> |   2 |   VIEW                  | DBA_OBJECTS | 28346 |  1826K|   280
>  (3)|
> |   3 |    UNION-ALL            |             |       |       |
> |
> |*  4 |     FILTER              |             |       |       |
> |
> |*  5 |      HASH JOIN          |             | 28343 |  1937K|   277
>  (3)|
> |   6 |       INDEX FULL SCAN   | I_USER2     |   305 |  1220 |     1
>  (0)|
> |*  7 |       HASH JOIN         |             | 28343 |  1826K|   275
>  (2)|
> |   8 |        INDEX FULL SCAN  | I_USER2     |   305 |  6710 |     1
>  (0)|
> |*  9 |        TABLE ACCESS FULL| OBJ$        | 28343 |  1217K|   274
>  (2)|
> |  10 |      NESTED LOOPS       |             |     1 |    29 |     2
>  (0)|
> |* 11 |       INDEX SKIP SCAN   | I_USER2     |     1 |    20 |     1
>  (0)|
> |* 12 |       INDEX RANGE SCAN  | I_OBJ4      |     1 |     9 |     1
>  (0)|
> |* 13 |     HASH JOIN           |             |     3 |    57 |     3
> (34)|
> |* 14 |      INDEX FULL SCAN    | I_LINK1     |     3 |    45 |     1
>  (0)|
> |  15 |      INDEX FULL SCAN    | I_USER2     |   305 |  1220 |     1
>  (0)|
>
> ----------------------------------------------------------------------------
>
> Predicate Information (identified by operation id):
> ---------------------------------------------------
>
>    4 - filter("O"."TYPE#"<>4 AND "O"."TYPE#"<>5 AND "O"."TYPE#"<>7 AND
>               "O"."TYPE#"<>8 AND "O"."TYPE#"<>9 AND "O"."TYPE#"<>11 AND
>               "O"."TYPE#"<>12 AND "O"."TYPE#"<>13 AND "O"."TYPE#"<>14 AND
>               "O"."TYPE#"<>22 AND "O"."TYPE#"<>87 AND "O"."TYPE#"<>88 OR
>               BITAND("U"."SPARE1",16)=0 OR ("O"."TYPE#"=4 OR "O"."TYPE#"=5
> OR
>               "O"."TYPE#"=7 OR "O"."TYPE#"=8 OR "O"."TYPE#"=9 OR
> "O"."TYPE#"=10 OR
>               "O"."TYPE#"=11 OR "O"."TYPE#"=12 OR "O"."TYPE#"=13 OR
> "O"."TYPE#"=14 OR
>               "O"."TYPE#"=22 OR "O"."TYPE#"=87) AND ("U"."TYPE#"<>2 AND
>               SYS_CONTEXT('userenv','current_edition_name')='ORA$BASE' OR
>               "U"."TYPE#"=2 AND
> "U"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_
>               edition_id')) OR  EXISTS (SELECT 0 FROM SYS."USER$"
> "U2",SYS."OBJ$"
>               "O2" WHERE "O2"."OWNER#"="U2"."USER#" AND "O2"."TYPE#"=88 AND
>               "O2"."DATAOBJ#"=:B1 AND "U2"."TYPE#"=2 AND
>
> "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('userenv','current_edition_id')))))
>    5 - access("O"."SPARE3"="U"."USER#")
>    7 - access("O"."OWNER#"="U"."USER#")
>    9 - filter("O"."NAME" LIKE '%A%' AND "O"."LINKNAME" IS NULL AND
>               "O"."TYPE#"<>10 AND "O"."NAME"<>'_NEXT_OBJECT' AND
>               "O"."NAME"<>'_default_auditing_options_' AND
> BITAND("O"."FLAGS",128)=0)
>   11 - access("U2"."TYPE#"=2 AND "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('us
>               erenv','current_edition_id')))
>        filter("U2"."TYPE#"=2 AND "U2"."SPARE2"=TO_NUMBER(SYS_CONTEXT('us
>               erenv','current_edition_id')))
>   12 - access("O2"."DATAOBJ#"=:B1 AND "O2"."TYPE#"=88 AND
>               "O2"."OWNER#"="U2"."USER#")
>   13 - access("L"."OWNER#"="U"."USER#")
>   14 - filter("L"."NAME" LIKE '%A%')
>
> Note
> -----
>    - 'PLAN_TABLE' is old version
>
>
> Statistics
> ----------------------------------------------------------
>           0  recursive calls
>           0  db block gets
>         991  consistent gets
>         985  physical reads
>           0  redo size
>         528  bytes sent via SQL*Net to client
>         500  bytes received via SQL*Net from client
>           2  SQL*Net roundtrips to/from client
>           0  sorts (memory)
>           0  sorts (disk)
>           1  rows processed
>
> SQL>
>
> 2017-10-10 14:27 GMT-04:00 Michael Calisi <oracle455@gmail.com>:
>
>>
>> Is there a way to determine how much redo will be generated by a
>> particular sql stmt?
>>
>> I have some sql stmt that generate GIGS of redo, and if would be nice
>> know before it runs.
>> --
>>
>>
> --

Regards,

John

--001a1140f8d07762c6055b37b06e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hmm.=C2=A0<div><br></div><div>The precise answer is probab=
ly not. Test the statement in an isolated test instance. Measure the redo g=
enerated, then you will have a good idea.=C2=A0</div><div><br></div><div>Ho=
wever you could roughly reckon on the average row size for an insert, simil=
ar for delete, and maybe an approximation to double the data updated for an=
 UPDATE.=C2=A0</div><div><br></div><div>Depends how accurate you need to be=
. Undo generates redo, except using new features for temporary segments etc=
...=C2=A0</div><div><br></div><div>Regards,=C2=A0</div><div><br></div><div>=
John=C2=A0</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Tu=
e, 10 Oct 2017 at 19:47 Juan Carlos Reyes Pacheco &lt;<a href=3D"mailto:jcd=
rpllist@gmail.com">jcdrpllist@gmail.com</a>&gt; wrote:<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex"><div dir=3D"ltr">I remember a talk about it from TKyte,=
=C2=A0<div><br></div><div>but maybe sqlplus is not enough, check at the end=
 please.</div><div><br></div><div>SQL&gt; SET AUTOT ON<br></div><div>SQL&gt=
; SELECT COUNT(*) FROM DBA_OBJECTS WHERE OBJECT_NAME LIKE &#39;%A%&#39;;<br=
></div><div><div>=C2=A0 COUNT(*)<br></div><div>----------</div><div>=C2=A0 =
=C2=A0 =C2=A024254</div><div>Execution Plan<br></div><div>-----------------=
-----------------------------------------</div><div>-----------------------=
-----------------------------------------------------<br></div><div>| Id=C2=
=A0 | Operation=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| Nam=
e=C2=A0 =C2=A0 =C2=A0 =C2=A0 | Rows=C2=A0 | Bytes | Cost (%CPU)|</div><div>=
---------------------------------------------------------------------------=
-</div><div>|=C2=A0 =C2=A00 | SELECT STATEMENT=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A01 |=C2=
=A0 =C2=A0 66 |=C2=A0 =C2=A0280=C2=A0 =C2=A0(3)|</div><div>|=C2=A0 =C2=A01 =
|=C2=A0 SORT AGGREGATE=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A01 |=C2=A0 =C2=A0 66 |=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |</div><div>|=C2=A0 =C2=A02 |=C2=
=A0 =C2=A0VIEW=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 | DBA_OBJECTS | 28346 |=C2=A0 1826K|=C2=A0 =C2=A0280=C2=A0 =C2=A0(3)|</=
div><div>|=C2=A0 =C2=A03 |=C2=A0 =C2=A0 UNION-ALL=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =
=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 |</div><div>|*=C2=A0 4 |=C2=A0 =C2=A0 =C2=A0FILTER=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0|=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |</div><div>|*=C2=A0 5 |=C2=A0 =
=C2=A0 =C2=A0 HASH JOIN=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 28343 |=C2=A0 1937K|=C2=A0 =C2=A0277=C2=
=A0 =C2=A0(3)|</div><div>|=C2=A0 =C2=A06 |=C2=A0 =C2=A0 =C2=A0 =C2=A0INDEX =
FULL SCAN=C2=A0 =C2=A0| I_USER2=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0305 |=C2=
=A0 1220 |=C2=A0 =C2=A0 =C2=A01=C2=A0 =C2=A0(0)|</div><div>|*=C2=A0 7 |=C2=
=A0 =C2=A0 =C2=A0 =C2=A0HASH JOIN=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 28343 |=C2=A0 1826K|=C2=A0 =C2=
=A0275=C2=A0 =C2=A0(2)|</div><div>|=C2=A0 =C2=A08 |=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 INDEX FULL SCAN=C2=A0 | I_USER2=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0305 |=
=C2=A0 6710 |=C2=A0 =C2=A0 =C2=A01=C2=A0 =C2=A0(0)|</div><div>|*=C2=A0 9 |=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 TABLE ACCESS FULL| OBJ$=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 | 28343 |=C2=A0 1217K|=C2=A0 =C2=A0274=C2=A0 =C2=A0(2)|</div><div>|=C2=
=A0 10 |=C2=A0 =C2=A0 =C2=A0 NESTED LOOPS=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A01 |=C2=A0 =
=C2=A0 29 |=C2=A0 =C2=A0 =C2=A02=C2=A0 =C2=A0(0)|</div><div>|* 11 |=C2=A0 =
=C2=A0 =C2=A0 =C2=A0INDEX SKIP SCAN=C2=A0 =C2=A0| I_USER2=C2=A0 =C2=A0 =C2=
=A0|=C2=A0 =C2=A0 =C2=A01 |=C2=A0 =C2=A0 20 |=C2=A0 =C2=A0 =C2=A01=C2=A0 =
=C2=A0(0)|</div><div>|* 12 |=C2=A0 =C2=A0 =C2=A0 =C2=A0INDEX RANGE SCAN=C2=
=A0 | I_OBJ4=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A01 |=C2=A0 =C2=A0 =C2=
=A09 |=C2=A0 =C2=A0 =C2=A01=C2=A0 =C2=A0(0)|</div><div>|* 13 |=C2=A0 =C2=A0=
 =C2=A0HASH JOIN=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A03 |=C2=A0 =C2=A0 57 |=
=C2=A0 =C2=A0 =C2=A03=C2=A0 (34)|</div><div>|* 14 |=C2=A0 =C2=A0 =C2=A0 IND=
EX FULL SCAN=C2=A0 =C2=A0 | I_LINK1=C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=
=A03 |=C2=A0 =C2=A0 45 |=C2=A0 =C2=A0 =C2=A01=C2=A0 =C2=A0(0)|</div><div>|=
=C2=A0 15 |=C2=A0 =C2=A0 =C2=A0 INDEX FULL SCAN=C2=A0 =C2=A0 | I_USER2=C2=
=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0305 |=C2=A0 1220 |=C2=A0 =C2=A0 =C2=A01=C2=
=A0 =C2=A0(0)|</div><div>--------------------------------------------------=
--------------------------</div><div><br></div><div>Predicate Information (=
identified by operation id):</div><div>------------------------------------=
---------------</div><div><br></div><div>=C2=A0 =C2=A04 - filter(&quot;O&qu=
ot;.&quot;TYPE#&quot;&lt;&gt;4 AND &quot;O&quot;.&quot;TYPE#&quot;&lt;&gt;5=
 AND &quot;O&quot;.&quot;TYPE#&quot;&lt;&gt;7 AND</div><div>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;O&quot;.&quot;TYPE#&quot;&lt;&gt;8=
 AND &quot;O&quot;.&quot;TYPE#&quot;&lt;&gt;9 AND &quot;O&quot;.&quot;TYPE#=
&quot;&lt;&gt;11 AND</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 &quot;O&quot;.&quot;TYPE#&quot;&lt;&gt;12 AND &quot;O&quot;.&quot;TY=
PE#&quot;&lt;&gt;13 AND &quot;O&quot;.&quot;TYPE#&quot;&lt;&gt;14 AND</div>=
<div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;O&quot;.&quot;T=
YPE#&quot;&lt;&gt;22 AND &quot;O&quot;.&quot;TYPE#&quot;&lt;&gt;87 AND &quo=
t;O&quot;.&quot;TYPE#&quot;&lt;&gt;88 OR</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 BITAND(&quot;U&quot;.&quot;SPARE1&quot;,16)=3D0 OR=
 (&quot;O&quot;.&quot;TYPE#&quot;=3D4 OR &quot;O&quot;.&quot;TYPE#&quot;=3D=
5 OR</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;O&quo=
t;.&quot;TYPE#&quot;=3D7 OR &quot;O&quot;.&quot;TYPE#&quot;=3D8 OR &quot;O&=
quot;.&quot;TYPE#&quot;=3D9 OR &quot;O&quot;.&quot;TYPE#&quot;=3D10 OR</div=
><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;O&quot;.&quot;=
TYPE#&quot;=3D11 OR &quot;O&quot;.&quot;TYPE#&quot;=3D12 OR &quot;O&quot;.&=
quot;TYPE#&quot;=3D13 OR &quot;O&quot;.&quot;TYPE#&quot;=3D14 OR</div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;O&quot;.&quot;TYPE#&=
quot;=3D22 OR &quot;O&quot;.&quot;TYPE#&quot;=3D87) AND (&quot;U&quot;.&quo=
t;TYPE#&quot;&lt;&gt;2 AND</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 SYS_CONTEXT(&#39;userenv&#39;,&#39;current_edition_name&#39;)=3D=
&#39;ORA$BASE&#39; OR</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 &quot;U&quot;.&quot;TYPE#&quot;=3D2 AND &quot;U&quot;.&quot;SPARE2&q=
uot;=3DTO_NUMBER(SYS_CONTEXT(&#39;userenv&#39;,&#39;current_</div><div>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 edition_id&#39;)) OR=C2=A0 EX=
ISTS (SELECT 0 FROM SYS.&quot;USER$&quot; &quot;U2&quot;,SYS.&quot;OBJ$&quo=
t;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;O2&quot=
; WHERE &quot;O2&quot;.&quot;OWNER#&quot;=3D&quot;U2&quot;.&quot;USER#&quot=
; AND &quot;O2&quot;.&quot;TYPE#&quot;=3D88 AND</div><div>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;O2&quot;.&quot;DATAOBJ#&quot;=3D:B1 A=
ND &quot;U2&quot;.&quot;TYPE#&quot;=3D2 AND</div><div>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;U2&quot;.&quot;SPARE2&quot;=3DTO_NUMBER(S=
YS_CONTEXT(&#39;userenv&#39;,&#39;current_edition_id&#39;)))))</div><div>=
=C2=A0 =C2=A05 - access(&quot;O&quot;.&quot;SPARE3&quot;=3D&quot;U&quot;.&q=
uot;USER#&quot;)</div><div>=C2=A0 =C2=A07 - access(&quot;O&quot;.&quot;OWNE=
R#&quot;=3D&quot;U&quot;.&quot;USER#&quot;)</div><div>=C2=A0 =C2=A09 - filt=
er(&quot;O&quot;.&quot;NAME&quot; LIKE &#39;%A%&#39; AND &quot;O&quot;.&quo=
t;LINKNAME&quot; IS NULL AND</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 &quot;O&quot;.&quot;TYPE#&quot;&lt;&gt;10 AND &quot;O&quot;.&=
quot;NAME&quot;&lt;&gt;&#39;_NEXT_OBJECT&#39; AND</div><div>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;O&quot;.&quot;NAME&quot;&lt;&gt;&#=
39;_default_auditing_options_&#39; AND BITAND(&quot;O&quot;.&quot;FLAGS&quo=
t;,128)=3D0)</div><div>=C2=A0 11 - access(&quot;U2&quot;.&quot;TYPE#&quot;=
=3D2 AND &quot;U2&quot;.&quot;SPARE2&quot;=3DTO_NUMBER(SYS_CONTEXT(&#39;us<=
/div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 erenv&#39;,&#39;=
current_edition_id&#39;)))</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0filter(&quo=
t;U2&quot;.&quot;TYPE#&quot;=3D2 AND &quot;U2&quot;.&quot;SPARE2&quot;=3DTO=
_NUMBER(SYS_CONTEXT(&#39;us</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 erenv&#39;,&#39;current_edition_id&#39;)))</div><div>=C2=A0 1=
2 - access(&quot;O2&quot;.&quot;DATAOBJ#&quot;=3D:B1 AND &quot;O2&quot;.&qu=
ot;TYPE#&quot;=3D88 AND</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 &quot;O2&quot;.&quot;OWNER#&quot;=3D&quot;U2&quot;.&quot;USER#&quot=
;)</div><div>=C2=A0 13 - access(&quot;L&quot;.&quot;OWNER#&quot;=3D&quot;U&=
quot;.&quot;USER#&quot;)</div><div>=C2=A0 14 - filter(&quot;L&quot;.&quot;N=
AME&quot; LIKE &#39;%A%&#39;)</div><div><br></div><div>Note</div><div>-----=
</div><div>=C2=A0 =C2=A0- &#39;PLAN_TABLE&#39; is old version</div><div><br=
></div><div><br></div><div>Statistics</div><div>---------------------------=
-------------------------------</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 0=C2=A0 recursive calls</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=
=C2=A0 db block gets</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 991=C2=A0 consis=
tent gets</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 985=C2=A0 physical reads</d=
iv><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 redo size</div><div>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 528=C2=A0 bytes sent via SQL*Net to client</div><d=
iv>=C2=A0 =C2=A0 =C2=A0 =C2=A0 500=C2=A0 bytes received via SQL*Net from cl=
ient</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 2=C2=A0 SQL*Net roundtrip=
s to/from client</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 sorts=
 (memory)</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 sorts (disk)=
</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1=C2=A0 rows processed</div><=
div><br></div><div>SQL&gt;</div></div></div><div class=3D"gmail_extra"><br>=
<div class=3D"gmail_quote">2017-10-10 14:27 GMT-04:00 Michael Calisi <span =
dir=3D"ltr">&lt;<a href=3D"mailto:oracle455@gmail.com" target=3D"_blank">or=
acle455@gmail.com</a>&gt;</span>:<br><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div di=
r=3D"ltr"><br clear=3D"all">Is there a way to determine how much redo will =
be generated by a particular sql stmt? <br>  <br> I have some sql stmt that=
 generate GIGS of redo, and if would be nice know before it runs. <br><span=
 class=3D"m_-4359044334281466080HOEnZb"><font color=3D"#888888">-- <br><div=
 class=3D"m_-4359044334281466080m_6688718160862656073gmail_signature"><div =
dir=3D"ltr"><br></div></div>
</font></span></div>
</blockquote></div><br></div>
</blockquote></div><div dir=3D"ltr">-- <br></div><div class=3D"gmail_signat=
ure" data-smartmail=3D"gmail_signature"><p dir=3D"ltr">Regards,=C2=A0</p>
<p dir=3D"ltr">John=C2=A0<br><br></p>
</div>

--001a1140f8d07762c6055b37b06e--
--
http://www.freelists.org/webpage/oracle-l


