RE: SQLs from Documentum use distinct column alias

From: "Powell, Mark" <mark.powell2@xxxxxx>

To: "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>

Date: Thu, 17 Dec 2009 18:12:31 +0000

Is dms_prod part of INFPLAN? Seems to be a poor application design decision
that you should report to the product vendor.
-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On
Behalf Of Yong Huang
Sent: Wednesday, December 16, 2009 4:26 PM
To: oracle-l@xxxxxxxxxxxxx
Subject: SQLs from Documentum use distinct column alias
Maybe somebody knowing both EMC Documentum and Oracle can help. The ticket with
EMC was opened in August and recently closed with an enhancement request (and
no other progress). I asked the support analyst if there was some parameter on
the content server to suppress distinct column alias in the SQLs and the answer
is No. Here's the description.
DMS_PROD is launched by this command on the content server:
E:\Dctm\product\5.3\bin\documentum.exe -docbase_name dms_prod ...
Inside the Oracle database (version 10.2.0.4), we see this shared pool memory
usage:
SQL> select parsing_schema_name, sum(sharable_mem)/1048576 mb
2 from v$sql
3 group by parsing_schema_name
4 having sum(sharable_mem)/1048576 > 20
5 order by 2;
PARSING_SCHEMA_NAME MB
------------------------------ ----------
FAX_OWNER 25.7209263
SYS 26.4383869
CRIS_OWNER 30.8399334
PLASTIC_USER 235.490922
DMS_PROD 2788.31081
The dms_prod uses way too much memory. The SQLs parsed by dms_prod
*are* using bind variables (as opposed to literal strings). But each SQL is
distinct because some useless column aliases are added and the aliases differ
from one SQL to another:
SQL> select sql_text from v$sql where parsing_schema_name = 'DMS_PROD'
SQL> and sql_text like 'DELETE FROM dms_prod.MDA_INBOX_S %' and rownum
SQL> <= 2;
SQL_TEXT
----------------------------------------------------------------------------------------------------------------------------------------------
DELETE FROM dms_prod.MDA_INBOX_S RIELB_FMD_DMD_ WHERE
(RIELB_FMD_DMD_.R_OBJECT_ID=:handle AND RIELB_FMD_DMD_.I_VSTAMP=:version)
DELETE FROM dms_prod.MDA_INBOX_S TRTRB_FMD_DMD_ WHERE
(TRTRB_FMD_DMD_.R_OBJECT_ID=:handle AND TRTRB_FMD_DMD_.I_VSTAMP=:version)
Can't you use RIELB_FMD_DMD_ alias for both?
BUSINESS IMPACT:
------------------------------------
More than half of our database server shared pool is dedicated to this user,
squeezing other users' shared pool usage to bare minimum, severely impacting
their performance. Besides, this wasteful usage of shared memory by dms schema
himself also limits his own performance, spending time in unnecessary parsing.
Product: Content Server
Version: 5.3
--
http://www.freelists.org/webpage/oracle-l
--
http://www.freelists.org/webpage/oracle-l