| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
|  |  | |||
Home -> Community -> Mailing Lists -> Oracle-L -> Why do I have multiple copies of identical sql reported by v$sql?
This is a multi-part message in MIME format.
------=_NextPart_000_01C7_01C039DE.4CA6D9E0 Content-Type: text/plain;
        charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
This is a single instance database, 8.0.5.0, parallelism degree 4 (used = only for recovery, all objects are degree 1).
There are 6 identical cursors, each with different execution counts = reported by v$sql.
sql> select sql_text text, decode(command_type,2,'INSERT'), executions
from v$sql
where command_type =3D 2
order by executions desc;
TEXT                                                                     =
        DECODE EXECUTIONS
-------------------------------------------------------------------------=
------- ------ ----------
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES  INSERT     403299
( :b1,:b2,SYSDATE,:b3,:b4  )
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES  INSERT     287133
( :b1,:b2,SYSDATE,:b3,:b4  )
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES  INSERT     272127
( :b1,:b2,SYSDATE,:b3,:b4  )
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES  INSERT     257863
( :b1,:b2,SYSDATE,:b3,:b4  )
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES  INSERT     132471
( :b1,:b2,SYSDATE,:b3,:b4  )
I query v$sql using like and the text, just to verify. I get 7 rows, = one is the new query against v$sql:
sql> select sql_text from v$sql where  sql_text like '%INSERT INTO =
VAL_ERR ( IP_ADDRE
SS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES ( =
:b1,:b2,SYSDATE,:b3,:b4  )%';
SQL_TEXT
-------------------------------------------------------------------------=
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES
( :b1,:b2,SYSDATE,:b3,:b4  )
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES
( :b1,:b2,SYSDATE,:b3,:b4  )
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES
( :b1,:b2,SYSDATE,:b3,:b4  )
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES
( :b1,:b2,SYSDATE,:b3,:b4  )
INSERT INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  =
VALUES
( :b1,:b2,SYSDATE,:b3,:b4  )
select sql_text from v$sql where  sql_text like '%INSERT INTO VAL_ERR ( =
IP_ADDRE
SS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES ( =
:b1,:b2,SYSDATE,:b3,:b4  )%'
7 rows selected
To verify, I select distinct using like and the text. There are 3 rows: = the original text, the first select and the select distinct text.
sql> select sql_text from v$sql where  sql_text like '%INSERT INTO =
VAL_ERR ( IP_ADDRE
SS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES ( =
:b1,:b2,SYSDATE,:b3,:b4  )%';
SQL_TEXT
-------------------------------------------------------------------------=
select distinct(sql_text) from v$sql where  sql_text like '%INSERT INTO =
VAL_ERR
( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES ( =
:b1,:b2,SYSDATE,:b
3,:b4  )%'
select sql_text from v$sql where  sql_text like '%INSERT INTO VAL_ERR ( =
IP_ADDRE
SS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES ( =
:b1,:b2,SYSDATE,:b3,:b4  )%'
3 rows selected
------=_NextPart_000_01C7_01C039DE.4CA6D9E0 Content-Type: text/html;
        charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D"text/html; charset=3Dwindows-1252" =http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT size=3D2>This is a single instance database, 8.0.5.0, =parallelism=20
desc;<BR><BR><BR><BR>TEXT        =             &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            =;       =20 DECODE=20
EXECUTIONS<BR>-----------------------------------------------------------= ---------------------=20
)<BR><BR>INSERT INTO VAL_ERR ( =
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID=20
)  VALUES  INSERT     403299<BR>(=20
:b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>INSERT INTO VAL_ERR (=20
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES =20
INSERT     287133<BR>( :b1,:b2,SYSDATE,:b3,:b4  =
)<BR><BR>INSERT INTO VAL_ERR ( =
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID=20
)  VALUES  INSERT     272127<BR>(=20
:b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>INSERT INTO VAL_ERR (=20
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES =20
INSERT     257863<BR>( :b1,:b2,SYSDATE,:b3,:b4  =
)<BR><BR>INSERT INTO VAL_ERR ( =
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID=20
)  VALUES  INSERT     132471<BR>(=20
:b1,:b2,SYSDATE,:b3,:b4  )<BR><BR><BR><BR>I query v$sql using like =
and the=20
text, just to verify.  I get 7 rows, one is the new query against=20
v$sql:<BR><BR>sql> select sql_text from v$sql where  sql_text =
like=20
'%INSERT INTO VAL_ERR ( =
IP_ADDRE<BR>SS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID=20
)  VALUES ( :b1,:b2,SYSDATE,:b3,:b4 =20
)%';<BR><BR><BR>SQL_TEXT<BR>---------------------------------------------= -----------------------------------<BR>INSERT=20INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID ) =20 VALUES<BR>( :b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>INSERT INTO VAL_ERR ( =
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES<BR>(=20
:b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>INSERT INTO VAL_ERR (=20
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES<BR>(=20
:b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>INSERT INTO VAL_ERR (=20
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES<BR>(=20
:b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>INSERT INTO VAL_ERR (=20
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES<BR>(=20
:b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>INSERT INTO VAL_ERR (=20
IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES<BR>(=20
:b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>select sql_text from v$sql =
where =20
sql_text like '%INSERT INTO VAL_ERR (=20
IP_ADDRE<BR>SS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES (=20
:b1,:b2,SYSDATE,:b3,:b4  )%'<BR><BR>7 rows selected<BR><BR><BR>To =
verify, I=20
select distinct using like and the text.  There are 3 rows:  =
the=20
original text, the first select and<BR>the select distinct =
text.<BR><BR>sql>=20
select sql_text from v$sql where  sql_text like '%INSERT INTO =
VAL_ERR (=20
IP_ADDRE<BR>SS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID )  VALUES (=20
:b1,:b2,SYSDATE,:b3,:b4 =20
)%';<BR><BR>SQL_TEXT<BR>-------------------------------------------------= -------------------------------<BR>INSERT=20INTO VAL_ERR ( IP_ADDRESS,SITE_CODE,ATTEMPT_DT,PAGE,SESSION_ID ) =20 VALUES<BR>( :b1,:b2,SYSDATE,:b3,:b4  )<BR><BR>select = distinct(sql_text)=20
|  |  |