UTL_MAIL performance
We have requirements to send large number of emails from database (up to 50,000 emails in single batch). A database is 11g and it's on Unix HP server with a lot of available resources. The emails will go through Microsoft exchange Server. Some of the initial testing shows that utl_smtp has 20% better performance than utl_mail by keeping connection open. utl_mail performance is about 0.4 second per email per single thread. So, yes, we can have several threads going, but is there anybody there that has similar performance like we do in case of sending large number of email? The performance from unix script is about 0.15 second and it similar from Java program running from desktop. It look that majority of time is spent on establishing communication with exchange server. Can any of utl_mail parameters/options be modified? Can we keep communication open instead of opening and closing channel with Exchange server every time? TIA
If you want performance and flexibility for sending e-mails, then I would use UTL_TCP directly - not UTL_SMTP and especially not UTL_MAIL.
PL/SQL code using UTL_TCP will be on par with similar code in another language using tcp sockets to send mail.
Of course, you need to use the same methods for optimisation. Do not close and re-open a socket per e-mail as this requires re-authentication with the mail server. Do not duplicate the DATA command when the same mail is send - simply use multiple RCPT TO commands to specify all the recipients of that e-mail. If the same attachment needs to be send via different mails, build that as a CLOB (already packaged as a Mime fragment) up front and persist it (store in table) so that multiple mail processes can simply use it as is. Etc.
If the contents of the e-mails are created from the data in the database, then PL/SQL will likely be faster sending the e-mail in comparison with other methods and even bulk mail products.
Such code need to fetch the data from the database - this means data traveling across process boundaries or even machine boundaries. PL/SQL code runs in the same server process as the SQL engine. That is as close to SQL data as one gets. The path for the data to travel from the database to application code is therefore a lot shorter.
Similar Messages
-
Exec utl_mail.send when mouse click
Hi,
I have a question,
I want to exceute the exec utl_mail.send inside when mouse click i a form. how can i do that?
Thanks and regardsThe ULT_MAIL, package is a utility for managing email which includes commonly used email features, such as CC, BCC etc.
To install UTL_MAIL
Method 1:
sqlplus sys/<pwd>@db_sid
SQL> @ORACLE_HOME/rdbms/admin/utlmail.sql
SQL> @ORACLE_HOME/rdbms/admin/prvtmail.plb
you define SMTP_OUT_SERVER parameter in the init.ora rdbms initialization file. However , if SMTP_OUT_SERVER is not define, this invoke a default of DB_DOMAIN which is guaranteed to be defined to perform appropriately.
Method 2:
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as SYS
SQL> grant execute on utl_mail to public;
Grant succeeded
SQL> create or replace public synonym utl_mail for sys.utl_mail;
Synonym created
SQL> CREATE OR REPLACE FUNCTION SEND_MAIL
(pIssuer IN VARCHAR2,
pReceiver IN VARCHAR2,
pSender IN VARCHAR2,
pSubject IN VARCHAR2,
pMessage IN VARCHAR2) RETURN VARCHAR2 IS
c utl_smtp.connection;
respuesta utl_smtp.reply;
pServer VARCHAR2(50) := 'SERVER';
BEGIN
-- Open the connection to the Server-mail
c: = utl_smtp.open_connection (pserver);
answer: = utl_smtp.helo (c, pServer);
- Starts the Issuer mail.
answer: = utl_smtp.mail (c, pSender);
- Start the receiver
answer: = utl_smtp.rcpt (c, pReceiver);
answer: = utl_smtp.open_data (c);
- Write the header of the e-mail
utl_smtp.write_data (c, 'From:' | | pIssuer | | utl_tcp.CRLF);
utl_smtp.write_data (c, 'To:' | | pReceiver | | utl_tcp.CRLF);
- Write the Subject
utl_smtp.write_data (c, 'Subject:' | | pSubject | | utl_tcp.CRLF);
- Write the text of the Message.
utl_smtp.write_data (c, utl_tcp.CRLF | | pMessage);
utl_smtp.write_data (c, utl_tcp.CRLF | |'.');
answer: = utl_smtp.close_data (c);
- Close connection
answer: = utl_smtp.quit (c);
RETURN '0 ';
EXCEPTION
Utl_smtp.permanent_error THEN WHEN OR utl_smtp.transient_error
utl_smtp.quit (c);
RETURN SQLERRM;
- raise_application_error (-20000,
- 'Sending email failed, returning the following error:' | | SQLERRM);
WHEN OTHERS THEN
RETURN SQLERRM;
END; -
ORA-06512 errors (utl_mail)
Hi,
I want to send mail using utl_mail.
I use Oracle 10g and prepare database go through this command:
CONN sys/password AS SYSDBA
@$ORACLE_HOME/rdbms/admin/utlmail.sql
@$ORACLE_HOME/rdbms/admin/prvtmail.plb
GRANT EXECUTE ON UTL_MAIL TO any_user;
ALTER SYSTEM SET smtp_out_server='smtp.gmail.com';
SHUTDOWN IMMEDIATE
STARTUP
Then I login to any_user and try send mail:
BEGIN
UTL_MAIL.send(sender => '[email protected]',
recipients => '[email protected]',
subject => 'This is a test :)',
message => 'Yeah, it worked! :)');
END;
But this give me this errors:
ERROR at line 1:
ORA-29279: SMTP permanent error: 530 5.7.0 Must issue a STARTTLS command first
f7sm989291nfh.25
ORA-06512: at "SYS.UTL_SMTP", line 21
ORA-06512: at "SYS.UTL_SMTP", line 99
ORA-06512: at "SYS.UTL_SMTP", line 222
ORA-06512: at "SYS.UTL_MAIL", line 407
ORA-06512: at "SYS.UTL_MAIL", line 594
ORA-06512: at line 2
Or I try this procedure (find on ask Tom site):
create or replace PROCEDURE send_mail (p_sender IN VARCHAR2, p_recipient IN VARCHAR2, p_message IN VARCHAR2) as
l_mailhost VARCHAR2(255) := 'smtp.gmail.com';
l_mail_conn utl_smtp.connection;
BEGIN
l_mail_conn := utl_smtp.open_connection(l_mailhost, 465);
utl_smtp.helo(l_mail_conn, l_mailhost);
utl_smtp.mail(l_mail_conn, p_sender);
utl_smtp.rcpt(l_mail_conn, p_recipient);
utl_smtp.open_data(l_mail_conn );
utl_smtp.write_data(l_mail_conn, p_message);
utl_smtp.close_data(l_mail_conn );
utl_smtp.quit(l_mail_conn);
end;
begin
send_mail( '[email protected]', '[email protected]', 'Hello :)' );
end;
But there SQL*Plus hang up and I must close application :/
Any suggestion for this??The e-mail still needs to be delivered. A local SMTP server will still need to connect to another SMTP server in order to deliver the e-mail to the recipient.
If that local SMTP server can make that connection to that "other" SMTP server, why not simply do it from PL/SQL instead? A lot simpler than configuring something like sendmail as your local SMTP server.
> It's not Oracle site but PSOUG was great authority for me.
Indeed an excellent site, but I doubt that UTL_SMTP will be deprecated. Just like UTL_SMTP did not deprecate UTL_TCP.
Each one builds on the other, providing a higher level abstraction interface. UTL_TCP is needed to talk tcp to the SMTP server. UTL_SMTP uses that to talk SMTP over tcp. UTL_MAIL needs SMTP to deliver auto formatted Mime bodies as e-mail.
Maybe what PSOUG implied that from a programming perspective, you should deprecate using UTL_SMTP and instead use the much easier abstraction API called UTL_MAIL.
It does not make a lot of sense for application code to use UTL_SMTP directly, given the higher level mail API provided by UTL_MAIL.
At the same time, it make sense for one to write your own UTL_MAIL wrapper, extend the abilities of UTL_MAIL (such as supporting multiple attachments, etc) and use UTL_SMTP to perform the delivery. -
Object utl_mail not found
Dear All
I have installed object utl_mail not found but its not working.
I keep getting this error kindly help me out.
and moreover can any one explain how to define the SMTP_OUT_SERVER.
Regards
xyz
Edited by: user11298424 on Jul 14, 2012 4:09 AMhttp://docs.oracle.com/cd/E14072_01/appdev.112/e10577/u_mail.htm
You must both install UTL_MAIL and define the SMTP_OUT_SERVER.
To install UTL_MAIL:
sqlplus sys/<pwd>
SQL> @$ORACLE_HOME/rdbms/admin/utlmail.sql
SQL> @$ORACLE_HOME/rdbms/admin/prvtmail.plb
You define the SMTP_OUT_SERVER parameter in the init.ora rdbms initialization file. However, if SMTP_OUT_SERVER is not defined, this invokes a default of DB_DOMAIN which is guaranteed to be defined to perform appropriately.http://docs.oracle.com/cd/E14072_01/server.112/e10820/initparams004.htm -
I have created a quote report with narratives around the opportunity, opportunity-product, and account information. The report contains a pivot table.
I'm getting very hit or miss performance results on the report. Sometimes the report runs faster for all opportunities compared to when its prompted with an opty id from a web link.
Any thoughts? There doesn't seem to be one column that makes a difference.
Also this is not an analytical report as the quotes need to be generated same day.Hi Shaik,
Please remove all the join select queries and use 'for all entries' varaiant of the select query. Check whether you can create and use indexes in ur queries.
Thanks and Regards,
Saurabh Chhatre -
I have a performance issue with a query - it would be something like -
select col1,col2, sum(col3), get_val(col_4)
from table1
where
get_val(col_4) is not null
group by col1,col2, get_val(col_4)
I have simplified this but it is something similar. This works great - performance is great. Now I commented out the where clause as I needed to populate null values - and that's it the query does not retrieve the resultset - it keeps running forever. With the where clause it comes back in 60 seconds. There is only one row out of 560 rows that has null value for col_4 which i need to display.
Any help is appreciated.The only difference I notice between the two sqls is HASH(UNIQUE) -
with IS NOT NULL in where clause -
SELECT STATEMENT ALL_ROWS 1598 1 209
HASH(UNIQUE) 1598 1 209
HASH(GROUP BY) 1598 1 209
When is not null is removed from the where clause -
SELECT STATEMENT ALL_ROWS 1598 1 206
HASH(GROUP BY) 1598 1 206
I'm guessing that the index is being used in the first scenario and not in the second. Any idea/suggestion as to how to over come this?
Thanks -
Issues with WebForm performance
Hi,
We had migrated a new application from UAT to PROD and we encounter webform performance issues with the following actions..
After login, the first form you open it is
always slow. After this you can switch from one form to another without a
delay.
Then once you change any data – the next time
you access a form it gets delayed.
The point to be noted is, it doesnt have any performance issues in the UAT environment and the configuration settings,essbase cache settings are all the same. We did try to move the EPM system to a new server to see if this is a hardware issue but no luck, the performance issues still exist. The consumption of the CPU/memory has been checked and it is proved that the form opening delay has nothing to do with lack of memory.
The JVM head settings is set up at 4GB which is infact higher than that of the UAT environment(2GB).
runs on Windows server2008,11.1.2.1.600 EPM serve, has planning,reporting,foundation on one server (32GB ram) and essbase on another server (32GB ram). Any help is appreciated.
Please find attached the planning logs below and there is nothing mentioned in the hyperionplanning error logs.-----------------------------------------------------------------------------------------------------------------------------------------------------------------
<Nov 5, 2013 8:05:43 PM CET> <Info> <Security> <BEA-090905> <Disabling CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true>
<Nov 5, 2013 8:05:43 PM CET> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG to FIPS186PRNG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true>
<Nov 5, 2013 8:05:44 PM CET> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Oracle JRockit(R) Version R28.0.2-11-135406-1.6.0_20-20100624-2119-windows-x86_64 from Oracle Corporation>
<Nov 5, 2013 8:05:46 PM CET> <Info> <Management> <BEA-141107> <Version: WebLogic Server 10.3.4.0 Fri Dec 17 20:47:33 PST 2010 1384255 >
<Nov 5, 2013 8:05:48 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<Nov 5, 2013 8:05:48 PM CET> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
<Nov 5, 2013 8:05:48 PM CET> <Notice> <Log Management> <BEA-170019> <The server log file C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\Planning0\logs\Planning0.log is opened. All server side log events will be written to this file.>
<Nov 5, 2013 8:06:22 PM CET> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
<Nov 5, 2013 8:06:28 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY>
<Nov 5, 2013 8:06:28 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getDomainConfiguration()
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getRuntimeService()
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
return com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean
return com.bea:Name=EPMSystem,Type=Domain
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Domain location is 'C:\Oracle\Middleware\user_projects\domains\EPMSystem'
Calling getRuntimeService()
return com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Checking C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\Planning0\registry_update.xml file
EPM_ORACLE_HOME: C:\Oracle\Middleware\EPMSystem11R1
Template for PLANNING#11.1.2.0: C:\Oracle\Middleware\EPMSystem11R1\common\templates\applications\epm_planning_11.1.2.1.jar
Dependencies for C:\Oracle\Middleware\EPMSystem11R1\common\templates\applications\epm_planning_11.1.2.1.jar: []
BPMUI shared webapp not referenced from PLANNING#11.1.2.0
Application name: PLANNING#11.1.2.0
Application source: HyperionPlanning.ear
Server name: Planning0
Server port: 8300
Server SSL port: 8343
Application context: HyperionPlanning
Registry product type: PLANNING_PRODUCT
Registry physical web application type: PLANNING_WEBAPP
weblogic.Name property is 'Planning0', seems to be WebLogic mode
registry.isRegistryDatabaseCreated()true
Registry was initialized sucessfully
Executing pre custom update for PLANNING#11.1.2.0
EPM_ORACLE_INSTANCE: C:\Oracle\Middleware\user_projects\epmsystem1
Physical Web App found
Web app already linked to some application server: false
The registry was not modifyed because it already containse all sturctures
Web app is already linked to the logical web app
No needs to run custom updater for PLANNING#11.1.2.0
loggingUpdatePLANNING.block file exist or the system is running in the Fusion mode, skipping logging.xml configuration
Planning locale: en_US
<Nov 5, 2013 8:06:39 PM CET> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic Service successfully.>
<Nov 5, 2013 8:06:39 PM CET> <Notice> <Cluster> <BEA-000197> <Listening for announcements from cluster using unicast cluster messaging>
<Nov 5, 2013 8:06:39 PM CET> <Notice> <Cluster> <BEA-000133> <Waiting to synchronize with other running members of Planning.>
<Nov 5, 2013 8:07:09 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
<Nov 5, 2013 8:07:09 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
<Nov 5, 2013 8:07:09 PM CET> <Notice> <Cluster> <BEA-000162> <Starting "async" replication service with remote cluster address "null">
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090171> <Loading the identity certificate and private key stored under the alias DemoIdentity from the jks keystore file C:\Oracle\MIDDLE~1\WLSERV~1.3\server\lib\DemoIdentity.jks.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090169> <Loading trusted certificates from the jks keystore file C:\Oracle\MIDDLE~1\WLSERV~1.3\server\lib\DemoTrust.jks.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090169> <Loading trusted certificates from the jks keystore file C:\Oracle\Middleware\jrockit_160_20\jre\lib\security\cacerts.>
<Nov 5, 2013 8:07:10 PM CET> <Alert> <Security> <BEA-090152> <Demo trusted CA certificate is being used in production mode: [
Version: V3
Subject: CN=CACERT, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4
Key: Sun RSA public key, 512 bits
modulus: 9550192877869244258838480703390456015046425375252278279190673063544122510925482179963329236052146047356415957587628011282484772458983977898996276815440753
public exponent: 65537
Validity: [From: Thu Mar 21 21:12:27 CET 2002,
To: Tue Mar 22 21:12:27 CET 2022]
Issuer: CN=CACERT, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
SerialNumber: [ 33f10648 fcde0deb 4199921f d64537f4]
Certificate Extensions: 1
[1]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
Key_CertSign
Algorithm: [MD5withRSA]
Signature:
0000: 9D 26 4C 29 C8 91 C3 A7 06 C3 24 6F AE B4 F8 82 .&L)......$o....
0010: 80 4D AA CB 7C 79 46 84 81 C4 66 95 F4 1E D8 C4 .M...yF...f.....
0020: E9 B7 D9 7C E2 23 33 A4 B7 21 E0 AA 54 2B 4A FF .....#3..!..T+J.
0030: CB 21 20 88 81 21 DB AC 90 54 D8 7D 79 63 23 3C .! ..!...T..yc#<
] The system is vulnerable to security attacks, since it trusts certificates signed by the demo trusted CA.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=thawte Primary Root CA - G3,OU=(c) 2008 thawte\, Inc. - For authorized use only,OU=Certification Services Division,O=thawte\, Inc.,C=US". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=T-TeleSec GlobalRoot Class 3,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=T-TeleSec GlobalRoot Class 2,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R3". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "OU=Security Communication RootCA2,O=SECOM Trust Systems CO.\,LTD.,C=JP". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=VeriSign Universal Root Certification Authority,OU=(c) 2008 VeriSign\, Inc. - For authorized use only,OU=VeriSign Trust Network,O=VeriSign\, Inc.,C=US". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=KEYNECTIS ROOT CA,OU=ROOT,O=KEYNECTIS,C=FR". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=GeoTrust Primary Certification Authority - G3,OU=(c) 2008 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[3]" is now listening on 127.0.0.1:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[1]" is now listening on fe80:0:0:0:0:5efe:a53:4816:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[4]" is now listening on 0:0:0:0:0:0:0:1:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 10.83.72.22:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default[3]" is now listening on 127.0.0.1:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default[4]" is now listening on 0:0:0:0:0:0:0:1:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default[2]" is now listening on fe80:0:0:0:0:ffff:ffff:fffe:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on fe80:0:0:0:0:5efe:a53:4816:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[2]" is now listening on fe80:0:0:0:0:ffff:ffff:fffe:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 10.83.72.22:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Warning> <Server> <BEA-002611> <Hostname "WIPLPRD01.svc.unicc.org", maps to multiple IP addresses: 10.83.72.22, 0:0:0:0:0:0:0:1>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <WebLogicServer> <BEA-000330> <Started WebLogic Managed Server "Planning0" for domain "EPMSystem" running in Production Mode>
<Nov 5, 2013 8:07:12 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<Nov 5, 2013 8:07:12 PM CET> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
using java.library.path: C:\Oracle\Middleware\EPMSystem11R1/products/Planning/lib64;C:\Oracle\Middleware\EPMSystem11R1/bin;C:\Oracle\Middleware\EPMSystem11R1/common/EssbaseRTC-64/11.1.2.0/bin;C:\Oracle\MIDDLE~1\patch_wls1034\profiles\default\native;C:\Oracle\MIDDLE~1\WLSERV~1.3\server\native\win\x64;C:\Oracle\MIDDLE~1\WLSERV~1.3\server\bin;C:\Oracle\MIDDLE~1\modules\ORGAPA~1.1\bin;C:\Oracle\MIDDLE~1\JROCKI~1\jre\bin;C:\Oracle\MIDDLE~1\JROCKI~1\bin;C:\Oracle\MIDDLE~1\WLSERV~1.3\server\native\win\x64\oci920_8
EPM_ORACLE_HOME (C:\Oracle\Middleware\EPMSystem11R1) is set from JVM property "EPM_ORACLE_HOME".
using Java property for Hyperion Home C:\Oracle\Middleware\EPMSystem11R1
EPM_ORACLE_INSTANCE (C:\Oracle\Middleware\user_projects\epmsystem1) is set from JVM property[EPM_ORACLE_INSTANCE].
Reaquired task list lease: Tue Nov 05 20:11:49 CET 2013: 1383678709156
Seeking ESAPI.properties
Found in 'org.owasp.esapi.resources' directory: C:\Oracle\Middleware\EPMSystem11R1\products\Planning\config\esapi\ESAPI.properties
Loaded 'ESAPI.properties' properties file
Seeking validation.properties
Found in 'org.owasp.esapi.resources' directory: C:\Oracle\Middleware\EPMSystem11R1\products\Planning\config\esapi\validation.properties
Loaded 'validation.properties' properties file
Seeking antisamy-esapi.xml
Found in 'org.owasp.esapi.resources' directory: C:\Oracle\Middleware\EPMSystem11R1\products\Planning\config\esapi\antisamy-esapi.xml
EnterData_Inner Processing Time:424
2013-11-05 20:14:47,454 INFO Thread-51 calcmgr.launch - Date/Time Started: 2013/11/05:20:14:47.452 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: WPA_Count By Planning user: wipoadmin Values entered for run-time prompts: [Variable] Wrk_Scenario:"Work_Plan_2014"[Variable] Funds:"Regular"[Variable] Units:"0001"
- Date/Time Started: 2013/11/05:20:14:47.452 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: WPA_Count By Planning user: wipoadmin Values entered for run-time prompts: [Variable] Wrk_Scenario:"Work_Plan_2014"[Variable] Funds:"Regular"[Variable] Units:"0001"
2013-11-05 20:14:54,066 INFO Thread-51 calcmgr.launch - Date/Time Ended: 2013/11/05:20:14:54.066 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: WPA_Count By Planning user: wipoadmin.
- Date/Time Ended: 2013/11/05:20:14:54.066 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: WPA_Count By Planning user: wipoadmin.
EnterData_Inner Processing Time:64
EnterData_Inner Processing Time:15
EnterData_Inner Processing Time:359
EnterData_Inner Processing Time:2
EnterData_Inner Processing Time:53
EnterData_Inner Processing Time:4
EnterData_Inner Processing Time:7
EPM_ORACLE_INSTANCE (C:\Oracle\Middleware\user_projects\epmsystem1) is set from JVM property[EPM_ORACLE_INSTANCE].
EPM_ORACLE_INSTANCE (C:\Oracle\Middleware\user_projects\epmsystem1) is set from JVM property[EPM_ORACLE_INSTANCE].
EPM_ORACLE_INSTANCE (C:\Oracle\Middleware\user_projects\epmsystem1) is set from JVM property[EPM_ORACLE_INSTANCE].
Setting HBR Mode to: 2
In lookupBRLWA()
Found HBR product = ESSBASE_PRODUCT
Found HBR product = ESSBASE_PRODUCT
Found HBR product = ESSBASE_PRODUCT
HBR LWA Component = Default
Default HBR = http://WIPLPRD01.svc.unicc.org:19000/eas
In getDBDetails()
Found HBR product = ESSBASE_PRODUCT
In lookupBRLWA()
Found HBR product = ESSBASE_PRODUCT
Found HBR product = ESSBASE_PRODUCT
=2013-11-05 20:35:08,234 WARN [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' com.hyperion.hbr.security.HbrSecurityAPI - Error retrieving user by identity
- Error retrieving user by identity
Embedded HBR initialized.
EnterData_Inner Processing Time:6
EnterData_Inner Processing Time:867
[Tue Nov 05 20:35:33 CET 2013] Planning successfully notified HBR repository.
EnterData_Inner Processing Time:7
2013-11-05 20:40:38,613 INFO Thread-67 calcmgr.launch - Date/Time Started: 2013/11/05:20:40:38.606 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: NonPersonnel_Calc By Planning user: wipoadmin Values entered for run-time prompts: [Variable] Funds:"Regular"[Variable] Units:"0001"[Variable] Wrk_Scenario:"Work_Plan_2014"
- Date/Time Started: 2013/11/05:20:40:38.606 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: NonPersonnel_Calc By Planning user: wipoadmin Values entered for run-time prompts: [Variable] Funds:"Regular"[Variable] Units:"0001"[Variable] Wrk_Scenario:"Work_Plan_2014"
2013-11-05 20:40:47,241 INFO Thread-67 calcmgr.launch - Date/Time Ended: 2013/11/05:20:40:47.241 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: NonPersonnel_Calc By Planning user: wipoadmin.
- Date/Time Ended: 2013/11/05:20:40:47.241 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: NonPersonnel_Calc By Planning user: wipoadmin.
EnterData_Inner Processing Time:44
EnterData_Inner Processing Time:2
EnterData_Inner Processing Time:525
EnterData_Inner Processing Time:1
Reaquired task list lease: Tue Nov 05 20:41:49 CET 2013: 1383680509246I already replied there but it seems no moderator is willing to approve my reply so it never shows up.
So I'll try replying in here instead:
I never thought it could be an emulator issue, I thought I had done something wrong to begin with. So I take having performance issues with tiled layer is not a common problem I suppose?
I'm using MOTODEV SDK platform, A1200 model (motorola). -
Apple DVI to Video Adapter performance issues in Lion
I'm an active Apple DVI to Video Adapter user for a couple of years already and everything worked perfectly well until I've upgraded to Lion.
Everything on my TV screen is lagging now, even mouse pointer, and there is no change to watch any movie like that.
Does anyone have the same issue? Maybe someone could give me an advice of what could I do in order to improve graphics performance on TV screen using Apple DVI to Video Adapter? I'm using late 2007 MBP with 8600M GT video adapter.I am having the exact same problem. I have a late 2007 MBP. I use it everyday where I teach. I use the adapter to project on a large white screen using S-Video. SInce the Lion update, it is very slow and has even completely crashed my computer a few times. I realize the MBP is getting a bit dated, but the difference between Snow Leopard & Lion is remarkable.
-
hai
how to create an vendor performance report which display purchase order issued to a vendor, material supplied delivery times, payment terms, prices during a period of time.
for this report what are the tables and fields we have to use pls give me sample report..
thank you..Hi,
Against the RFQ's vendor submit quotations and the Based on the RFQ's data we have to compare the different Vendors with the respective data like terms and prices
Fetch the data of all RFQ's from EKKO and EKPO tables
and take the EKKO-KNUMV field and pass to KONV table and fetch the different prices based on the Condition types for each RFQ and put it in a tabular format and compare.
see the sample code
*& Report ZRFQ_COMP
*& Quotation Comparison Report
REPORT ZRFQ_COMP no standard page heading line-size 187 line-count 35.
*&Tables
Tables : ekko,
ekpo,
konp,
a016.
*&Data Decleration
Data : v_pos type i value 19.
Data : begin of it_rfq occurs 0,
ebeln type ekko-ebeln,
ekorg type ekko-ekorg,
lifnr type ekko-lifnr,
matnr type ekpo-matnr,
WERKS type ekpo-WERKS,
end of it_rfq.
Data : begin of it_a016 occurs 0,
ebeln type ekko-ebeln,
knumh type knumh,
end of it_a016.
Data : begin of it_a363 occurs 0,
werks type werks,
lifnr type lifnr,
matnr type matnr,
knumh type knumh,
end of it_a363.
Data : begin of it_pr_details occurs 0,
knumh type knumh,
kschl type kschl,
kbetr type kwert,
end of it_pr_details.
Data : begin of it_final occurs 0,
ebeln type ebeln,
lifnr type lifnr,
name1 type lfa1-name1,
pb00 type kbetr,
zpac type kbetr,
zb00 type kbetr,
ZIN1 type kbetr,
JEC1 type kbetr,
JHX1 type kbetr,
JMOP type kbetr,
JMX1 type kbetr,
JMX3 type kbetr,
JSEP TYPE KBETR,
JVRD type kbetr,
end of it_final.
Data : begin of it_vendorname occurs 0,
lifnr type lifnr,
name1 type lfa1-name1,
end of it_vendorname.
*&Selection Screen
Selection-screen: begin of block blk1 with frame title text-001.
parameters : p_matnr like ekpo-matnr obligatory.
select-options : s_ebeln for ekko-ebeln,
s_ekorg for ekko-ekorg,
s_lifnr for ekko-lifnr.
Selection-screen: end of block blk1.
*&Start-of-Selection.
Start-of-selection.
Select ekko~ebeln
ekko~ekorg
ekko~lifnr
ekpo~matnr
ekpo~werks
into table it_rfq
from ekko
inner join ekpo
on ekkoebeln eq ekpoebeln
where ekko~ebeln in s_ebeln
and ekko~ekorg in s_ekorg
and ekko~lifnr in s_lifnr
and ekpo~matnr eq p_matnr
and ekko~bstyp eq 'A'.
if sy-subrc eq 0.
*--> Condition number from A tables.
Perform get_connum.
*--> Getting the Pricing Details from Konp Table.
Perform get_prices.
*--> Populate Vendor Name.
Perform pop_vendor_name.
*--> Populating the Final Internal table for Report.
Perform pop_final_tab.
else.
message 'Purchase Document does not exist' type 'E'.
endif.
*&End-of-Selection.
End-of-Selection.
write :/ sy-vline,
2 'Vendor Number',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 1.
write at v_pos it_final-lifnr.
v_pos = v_pos + 35.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'Gross Price',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-pb00.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'Packing & Forward',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-zpac.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'Surcharge',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-zb00.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'Installation',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-zin1.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'Ed cess on BED%',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-jec1.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'A/P Secess set off',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-jhx1.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'Basic Excise Duty',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-zpac.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'A/P BED set off',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-jmx1.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'Ecess % set off',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-jmx3.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'Sec ED Cess on BED',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-jsep.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
write :/ sy-vline,
2 'VAT%',
19 sy-vline.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 20.
write at v_pos it_final-jvrd.
v_pos = v_pos + 16.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
*&Top-of-Page.
Top-of-Page.
format color 1.
Write: 'Material Number :' color 1, p_matnr color 1.
loop at it_final.
v_pos = v_pos + 1.
v_pos = v_pos + 35.
endloop.
write at: /(v_pos) sy-uline,/ sy-vline,2 'Vendor Name'.
v_pos = 19.
loop at it_final.
write at v_pos sy-vline.
v_pos = v_pos + 1.
write at v_pos it_final-name1.
v_pos = v_pos + 35.
endloop.
write at: v_pos sy-vline,
/(v_pos) sy-uline.
*& Form get_connum
Condition number from A tables
form get_connum .
Select EVRTN
knumh
from a016
into table it_a016
for all entries in it_rfq
where EVRTN eq it_rfq-ebeln.
Select werks
lifnr
matnr
knumh
from a363
into table it_a363
for all entries in it_rfq
where werks eq it_rfq-werks
and lifnr eq it_rfq-lifnr
and matnr eq it_rfq-matnr.
endform. " get_connum
*& Form get_prices
Getting the Pricing Details from Konp Table.
form get_prices .
if not it_a016[] is initial.
select knumh
kschl
kbetr
from konp
into table it_pr_details
for all entries in it_a016
where knumh eq it_a016-knumh.
endif.
if not it_a363[] is initial.
select knumh
kschl
kbetr
from konp
appending table it_pr_details
for all entries in it_a016
where knumh eq it_a016-knumh.
endif.
endform. " get_prices
*& Form pop_final_tab
Populating the Final Internal table for Report
form pop_final_tab .
data : l_subrc like sy-subrc.
sort it_a016 by ebeln.
loop at it_rfq.
clear l_subrc.
read table it_a016 with key ebeln = it_rfq-ebeln
binary search.
if sy-subrc eq 0.
loop at it_pr_details where knumh eq it_a016-knumh.
it_final-ebeln = it_rfq-ebeln.
it_final-lifnr = it_rfq-lifnr.
read table it_vendorname with
key lifnr = it_rfq-lifnr.
it_final-name1 = it_vendorname-name1.
case it_pr_details-kschl.
when 'PBOO'.
it_final-pb00 = it_pr_details-kbetr.
if it_pr_details-kbetr eq 0.
clear it_final.
continue.
endif.
when 'ZPAC'.
it_final-zpac = it_pr_details-kbetr.
when 'ZB00'.
it_final-ZB00 = it_pr_details-kbetr.
when 'ZIN1'.
it_final-ZIN1 = it_pr_details-kbetr.
endcase.
endloop.
else.
l_subrc = sy-subrc.
endif.
read table it_a363 with key lifnr = it_rfq-lifnr
werks = it_rfq-werks
matnr = it_rfq-matnr.
if sy-subrc eq 0.
loop at it_pr_details where knumh eq it_a016-knumh.
it_final-ebeln = it_rfq-ebeln.
it_final-lifnr = it_rfq-lifnr.
read table it_vendorname with
key lifnr = it_rfq-lifnr.
it_final-name1 = it_vendorname-name1.
case it_pr_details-kschl.
when 'JEC1'.
it_final-JEC1 = it_pr_details-kbetr.
when 'JHX1'.
it_final-JHX1 = it_pr_details-kbetr.
when 'JMOP'.
it_final-JMOP = it_pr_details-kbetr.
when 'JMX1'.
it_final-JMX1 = it_pr_details-kbetr.
when 'JMX3'.
it_final-JMX3 = it_pr_details-kbetr.
when 'JSEP'.
it_final-JSEP = it_pr_details-kbetr.
when 'JVRD'.
it_final-JVRD = it_pr_details-kbetr.
endcase.
endloop.
elseif l_subrc ne 0.
continue.
endif.
append it_final.
clear it_final.
endloop.
endform. " pop_final_tab
*& Form pop_vendor_name
Populate Vendor Name
form pop_vendor_name .
if not it_rfq[] is initial.
Select lifnr
name1
from lfa1
into table it_vendorname
where lifnr eq it_rfq-lifnr.
endif.
endform. " pop_vendor_name
Reward points if useful
Regards
Anji -
FI-CA events to improve performance
Hello experts,
Does anybody use the FI-CA events to improve the extraction performance for datasources 0FC_OP_01 and 0FC_CI_01 (open and cleared items)?
It seems that this specific exits associated to BW events have been developped especially to improve performance.
Any documentation, guide should be appreciate.
Thanks.
Thibaud.Thanks to all for the replies
@Sybrand
Please answer first whether the column is stored in a separate lobsegment.
No. Table,Index,LOB,LOB index uses the same TS. I missed adding this point( moving to separate TS) as part of table modifications.
@Hemant
There's a famous paper / blog post about CLOBs and Database Flashback. If I find it, I'll post the URL.
Is this the one you are referring to
http://laimisnd.wordpress.com/2011/03/25/lobs-and-flashback-database-performance/
By moving the CLOB column to different block size , I will test the performance improvement it gives and will share the results.
We dont need any data from this table. XML file contains details about finger prints and once the application server completes the job , XML data is deleted from this table.
So no need of backup/recovery operations for this table. Client will be able to replay the transactions if any problem occurs.
@Billy
We are not performing XML parsing on DB side. Gets the XML data from client -> insert into table -> client selects from table -> Upon successful completion of the Job from client ,XML data gets deleted.
Regarding binding of LOB from client side, will check on that side also to reduce round trips.
By changing the blocksize, I can keep db_32K_cache_size=2G and keep this table in CACHE. If I directly put my table to CACHE, it will age out all other operation from buffer which makes things worse for us.
This insert is part of transaction( Registration of a finger print) and this is the only statement taking time as of now compared to other statements in the transaction.
Thanks,
Arun -
Report performance is very slow
Hi all,
I have a table with 25 million rows. I create a report on this table in which i need to use the following expression
ifnull(abc_accr_int_val,0)+ifnull(xyz_mar_val_lcy,0)
and this experession is group by asset description but the report output time is very high.Further there is no index on these columns in the database.
Please guide me that did my approach is right ??? if no what is the right approach
RegardsHi,
Thanks for such a beautiful and informative answers I really appriciated it.
I catch the problem and now want to share with U. As u know my prompt is on Date Column but I dont want to show this coloumn in my report.I only want that a user give a date and two columns are shown in report 1) asset_desc 2) total sum (which is sum of 2 columns as i discussed in this thread).
Now before...after creating the prompt on Date field I edit the report view and delete this coloumn (Date) because I only want above 2 colomns and not Date column in my report. But all sorting is performed on date bec it is in prompt (where clause). When I add Date column in my report (to show date col) the speed of the report is like sql and data fetching speed same like sql. Now tell me is there any way that I delete this col from my report but it exist in answer criteria table ??????
I have 19 Asset Desc which return by sql and answers request.
Regards -
Hi
In our production one report is running very slow, for one moth its taking 10 to 12 min earlier it was took only 2 min for month data, we are confused why itu2019s happening. Query is running on multiprovider. On cube we are using only one aggregate and in the query designer we are using Hierarchy(Active) & virtual key figure.
We have not changed anything recently on the query, why this suddenly report running very slow.
Please advice
Thanks,
Manu.Hi,
Check whether the Aggregate is up-to-date and whether it is being used by your query or not?
Also check the number of records as well, if the output is huge then it is obvious that the queries can take more time to run. As you are using Virtual Keyfigure, this generally degrades the query performance.
Regards,
rik -
Report performance with Hierarchies
Hi
How to improve query performance with hierarchies. We have to do lot of navigation's in the query and the volume of data size very big.
Thanks
P GHI,
chk this:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/1955ba90-0201-0010-d3aa-8b2a4ef6bbb2
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ce7fb368-0601-0010-64ba-fadc985a1f94
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/4c0ab590-0201-0010-bd9a-8332d8b4f09c
Query Performance Is "Aggregates" the way out for me?
/people/vikash.agrawal/blog/2006/04/17/query-performance-150-is-aggregates-the-way-out-for-me
° the OLAP cache is architected to store query result sets and to give all users access to those result sets.
If a user executes a query, the result set for that querys request can be stored in the OLAP cache; if that same query (or a derivative) is then executed by another user, the subsequent query request can be filled by accessing the result set already stored in the OLAP cache.
In this way, a query request filled from the OLAP cache is significantly faster than queries that receive their result set from database access
° The indexes that are created in the fact table for each dimension allow you to easily find and select the data
see http://help.sap.com/saphelp_nw04/helpdata/en/80/1a6473e07211d2acb80000e829fbfe/content.htm
° when you load data into the InfoCube, each request has its own request ID, which is included in the fact table in the packet dimension.
This (besides giving the possibility to manage/delete single request) increases the volume of data, and reduces performance in reporting, as the system has to aggregate with the request ID every time you execute a query. Using compressing, you can eliminate these disadvantages, and bring data from different requests together into one single request (request ID 0).
This function is critical, as the compressed data can no longer be deleted from the InfoCube using its request IDs and, logically, you must be absolutely certain that the data loaded into the InfoCube is correct.
see http://help.sap.com/saphelp_nw04/helpdata/en/ca/aa6437e7a4080ee10000009b38f842/content.htm
° by using partitioning you can split up the whole dataset for an InfoCube into several, smaller, physically independent and redundancy-free units. Thanks to this separation, performance is increased when reporting, or also when deleting data from the InfoCube.
see http://help.sap.com/saphelp_nw04/helpdata/en/33/dc2038aa3bcd23e10000009b38f8cf/content.htm
Hope it helps!
tHAK YOU,
dst -
Hi
My problem is with performance in reports. The reports I use is 'Reports From SQL Query' and I have the following select statement.
select * from lagffastadr
where kommun like :bind_kommun
and adrniva3 like :bind_adrniva3
and adrnr like :bind_adrnr
and adrlitt like :bind_adrlit
and :bind_show = 1
this works fine, but I have one big problem. The user may use wildcard to select all, %, this give me a new problem. The table I use contains NULL values. Then we don't get all the rows by using %, we get all that have a value. This can be solved by adding
where (kommun like :bind_kommun OR kommun IS NULL)
this will give me all the rows. But, then this will take a long time to evaluate since the sql query don't use the index that I have created. Is there another way to solve this or do I have to change all the NULL values in my database? (I rather not).
thanks
/Jvrgen SwensenIt looks more like a query tuning problem. Please try the SQL, PL/SQL forum.
You can expect a better answer there.
Thanx,
Chetan. -
Report Performance Issue and Strange Execution Log Data
Today we have had a report suddenly start taking a long time to execute.
Looking at the Report Server executionLog3 table/view we have the following information for the query in question.
<Connection>
<ConnectionOpenTime>1</ConnectionOpenTime>
<DataSets>
<DataSet>
<Name>ReportDataset</Name>
<RowsRead>7</RowsRead>
<TotalTimeDataRetrieval>150013</TotalTimeDataRetrieval>
<ExecuteReaderTime>3</ExecuteReaderTime>
</DataSet>
</DataSets>
</Connection>
Supposedly the time taken to retrieve the data is around 150 seconds. However, running a profiler trace while running the report in SSRS shows the query executing in under 1 second.
Indeed running a profiler trace for anything on the server with a duration greater than 60 seconds isn't returning anything. I can only assume the above data is wrong when it says 150 seconds to retrieve the data. IT IS taking that long to run
the report though - so the question is - where is the time going?
Why can't I find a slow query on the server but SSRS thinks there is?
LucasF
EDIT: This was fixed by restarting the report server. Any ideas on why this might occur?Hi Lucas,
According to your description, you find the <TotalTimeDataRetrieval> in ExecutionLog3 is larger than the profiler trace time.
In Reporting Services, to analyze the performance of the report, we usually check the TimeDataRetrieval to find the time we spend on retrieving the data. It’s the time needed for SQL Server to retrieve the data of all datasets in your report. So in your
scenario, please check if the TimeDataRetrieval is equal to the time in profiler trace.
Reference:
More tips to improve performance of SSRS reports
If you have any question, please feel free to ask.
Best regards,
Qiuyun Yu
Qiuyun Yu
TechNet Community Support
Maybe you are looking for
-
IPhone 4 voice call problems on 3G
I noticed at the weekend that my iPhone 4 was having trouble with voice calls. Incoming calls would sometimes hang up when I answered them, outgoing calls would take a very long time to connect (or freeze), and when I did get through to someone the c
-
Rsau_select_event runing sm20 as background job
Hi Guru, i want to have this rsau_select_events program in 4.7 We have now support pack level of 38.Can this program be downloaded just with snote and support pack 38.Can anybody give the step by step procedure for having this rsau_select_event( deta
-
How to find out the selected line in the table control
Hi Guys, i have a requirement like this. i have table control and the internal table for that table control as IT_CASE. this internal table i declared as CHECKBX, MATNR, QUANTITY. but when i am enter the values in the table control i am getting the v
-
Calendar sync problem - opposite of everyone else!!!
Hello everyone. I have recently upgraded my device and my DM. I know have a problem that seems to be the exact opposite of the one everyone has...! Since upgrading my DM to 6.1.0.36, when I sync with Outlook it transfers to Outlook all the appointmen
-
How to order inserts ADF .
I need to insert child records before the parent in my ADF-BC code. I can't use deferred constraints because of the multi Db policy I must follow. Is there any way to reorder logical ADF insterts before actual inserts occurs in the DB. Tks Tullio