Optimize the performance of the RFC call between ECC and CRM
Hi,
We are planning to extract sales orders, sales activites and service orders to dispaly it on the PDF factsheet of the account.
As of now, the PDF factsheet takes a long time to retrieve the data from ECC to CRM. Can you please suggest us on ways to optimize the performance of the RFC call between ECC and CRM.
Thanks in advance,
Vamsi.
Hello,
[SAP Note 636906 |https://service.sap.com/sap/support/notes/636906]is quite useful here.
Many times, the performance is poor due to function module CRM_CCKPT_EXPORTSUMMARY. This function module gets the customer number, the sales organization and the fact sheet view. If in CRM customizing, you use complete view (001), then all the views in ERP including all the info blocks will be retrieved, which will cause performance issue.
To solve the issue, please use a limited view to retrieve the data from ERP - especially a view, which does not contain info block 013.
Hope it helps
Joaquin
Similar Messages
-
Communication between ECC and CRM
Hello,
I am in phase of showing communication between SAP CRM 5.0 and ECC 6.0.
I am struggling with finding some simple transactions which are common in both, with which I can show correct connectivity between ECC and CRM.
I need to save some data from CRM and access the same via transaction within ECC, save some data via ECC and access it via CRM. I already established RFC link between ECC and CRM.
Probably communication between SD module of ECC with CRM.
Can you please help me out with this, a clue/correct direction will be of very helpful. Basically I want to know, what transaction I can use for same.
Any help is really appreciated.
Thanks
-VishalHi Glenn,
I followed all steps in document mentioned above. In the end during execution of transaction I selected appropriate source and destination, when I click start transfer objects, it gets stuck in waiting phase.
Among those steps I was not able to perform step#10. Creating Subscriptions for OLTP. My ERP is not displaying this option under subscription wizard. Should it be reason for not starting transfer ? I also do not see ERP logon screen when I select transfer.
My another question is when transfer will complete, where I'll be able to see transferred objects within ERP database ?
Thanks
-Vishal -
Remove RFC calls between SRM and ERP
Hi,
Did any of you ever worked on removing RFC calls between SRM and ERP systems?
Does SAP maintains a lost of these built-in RFC calls?
What are the known constraints to replace them by webservice calls ?
Thanks
YannHi Yann,
There is nothing on the SAP database for SRM and the backend using webservice.
There is for connections to SRM catalog.
I haven't heard anything about plans to change this.
Hope this helps,
Kind Regards,
Matthew -
RFC connexion between R3 and CRM
Hello,
I have created a RFC connexion between My R3 (HF1CLNT300) and CRM(
HF6CLNT300) using SM59..
but when i test it i have the this :
Test connexion HF6CLNT300
Type connexion Connexion R/3
Interr.
Do you know what does mean Interr.?
have i to install any special plug-in before doing all this?
thnx
Message was edited by:
Mouss BlackmanHi Abhinav,
There are multiple ways to do this. If you want to stop the overall middleware flow, you can do it in MW_MODE transction code. If you want to stop the flow for a particular system, you can do that in SMQS transaction.
Regards,
Karthi M R. -
Calls between salesforce and crm sap using jco
Hi,
My requirement is as follows:
Tight integration of SFDC and SAP CRM in order to make Business Partners in sync across the systems. This will be a two way integration wherein any changes made to any business partner must be reflected in the other system upon batch/ real-time execution.
I am currently using jco to interact with the crm sap system.
What am i supposed to do from salesforce side in order to make the 2 systems talk?
Regards
ShilpiYou should do a search on the XIF IDOC adapter in the CRM general and framework forum. If you need more details on how to set this up, you can also read the documentation of the function module
CRMXIF_PARTNER_SAVE
Or look in the IMG at:
CRM -> CRM Middleware ->Exchanging data with External components ->XIF Adapter Setup
Take care,
Stephen -
Replication of Pricing Conditions between ECC and CRM
Hi All
I have a couple of queries regarding replication of pricing information between ECC_CRM. We maintain the filter settings for Pricing procedures, access sequences and condition types in the object DNL_CUST_CND_PR, and accordingly these are replicated from ECC to CRM. My Questions:
1. If some pricing procedure is created in CRM and this needs to be replicated to ECC, Can we achieve this?
2. Would DELTA be active on these objects, in the sense if some changes are made to a pricing procedure in ECC, would they flow automatically to CRM?
Thanks in advance
Best Regards,
Ram SushanthHi Chandra and Swaroop
Thanks a lot for your response.
From your replies, now, this is my understanding (Pl correct me if am wrong)
1. Replication of Pricing Procedure from CRM to ECC is possible.
It would be of great help if you could elaborate on the procedure to do so or provide pointers for documentation in this regard.
Because, for replication from ECC to CRM, we perform an initial load on the object DNL_CND_CUST_PR or DNL_CUST_CNDALL.What is the object that we need to execute from replication from CRM to ECC?
2. DELTA would be active only on condition records, but not on Condition types and Pricing Procedures and if any pricing procedure is changed in ECC, we would need to perform Initial Load again.
Thanks in advance
Best Regards
Ram Sushanth -
Issue in RFC communication between ECC and PI
Hi Experts,
We are upgrading our systems from SAP R/3 to SAP ECC. We have couple of synchronous interfaces between SAP ECC <-> SAP PI <->Webservices.
In R/3 these interfaces are working as expected and passing the data in correct format to PI. But same RFC in ECC is not passing correct data to SAP PI.
Our design is : ECC creates an IDOC and then from the port program it calls the RFC to send data to PI. I tried debugging this port program and until the RFC data is correct in the tables, but as soon as RFC hands over data to PI, data is getting messed up.
Below is the example.
Data in RFC : has data like this
TES_TRANS_NO MATERIAL UNIT QUANTITY SHIP_DATE
1003 MMT-XXX EA 1 20140722
But when data comes to PI it is something like this:
<?xml version="1.0" encoding="UTF-8" ?>
- <rfc:ZIDXF_WS_ORDER_STATUS xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
<ORDER>1003</ORDER>
- <ITEM>
- <item>
<TES_TRANS_NO>1003</TES_TRANS_NO>
<MATERIAL>EA 1 20140722</MATERIAL>
<UNIT_MEASURE />
<QUANTITY />
<SHIP_DATE />
</item>
</ITEM>
</rfc:ZIDXF_WS_ORDER_STATUS>
Material number is not being mapped and all other remaining fields are being concatenated somehow and being mapped to Material.
Please help if anyone has any ideas.
Thanks,
SameerIssue resolved:
RFC Destination was Non-Unicode in R/3, for ECC we changed it to Unicode (As PI system is unicode), and it worked.
Thanks everyone.
Sameer -
Trigger an RFC call to ECC from PI using BPM
HEllo Experts,
This is my first time in ccBPM and require your expertise in gaining some insights onto calling an RFC FM using ccBPM.
I am typically implementing the scenario as it is mentioned in this blog: /people/mitesh.parekh/blog/2008/12/01/receiving-aleaud-as-acknowledgment-in-ccbpm in order to generate acknowledgements from ECC.
I have created the IR and ID and I am successfully able to exceute the BPM till step2. Step 3 is the ABAP mapping part for which i have specified teh required properties and Operation mapping too.
My concern is that how do i proceed from Step 4 i,e how do i trigger this RFC call to ECC and receive it in BPM again?
Thanks in advance,
Elizabeth.I am developing a scenario which looks like this MDM ->PI ( BPM) -> ECC.
Now the Integration process that I am developing is with reference to blog http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12249. [original link is broken] [original link is broken] [original link is broken]
I am posting MATMAS from MDM which is received in first step(receive step) of this BPM.
2nd step (Send step - BPM) will send this MATMAS05 Idoc to ECC and Pi will have a message id generated for this message.
3rd step of BPM (ABAP mapping) - which will read the actual PI Idoc number from system tables based on the message id from step 2.
4th step: Idoc number retrieved is to be sent in the requset message of RFC ZALEAUD4XI.
5th step: Response of ZALEAUD4XI RFC is to be received in PI and sent for further processing.
Do i need a mapping between the requset output of ABAP mapping and the input RFC requset message of step4?
Thanks,
Elizabeth -
Tweaking the performance of the PC
Hello i am a school student (in my final year) and i have some knowledge on tweaking the performance of the PC so i hope my way helps
Solution to Blue screen with error:
Hi that error is quite a rare error for windows 8.1 users who have their drivers up to date the most common cause is corrupted files in your hdd
if you have a backup of all your files and folders then it is recommended to do a full reinstallation of windows 8.1 and make sure u delete all your partitions including the system and recovery partition when you reinstall
once you have reinstalled download the latest drivers using Toshiba support page and also install latest windows updates as soon as possible once you have completely recovered your pc make sure to create a recovery media using the win 8.1 installation disk
and save that media then create a system image backup for the future
How to create system image backup: please follow this guide for images and videos
http://www.avoiderrors.net/create-system-image-backups-of-windows-8-1-and-restore-from-it/
and then once you have done that you should have a installation media and a system image backup then you can move to increasing the PC performance
PC performance boost tips:
Ok step one: creating a system restore point
(i): open your search tab in windows 8.1 desktop and type "create system restore point"(no quote marks) and select the system restore point option.
(ii): when the system properties tab open click on the button called create on the bottom on the tab
(iii): another tab will ask you to name the system restore point so you can identify it so type a name of your choice and click create
an thats all
Ok step two : remove unnecessary antivirus software (if you have any)
normally on a new PC you get a bunch of junk software along with a trail pack of an antivirus software usually it's McAfee so uninstall that and uninstall the other useless junk software if you have any problems with uninstallating then use Revo uninstaller
app to uninstall
since you did a reinstall of windows you will not have any of those so skip step two
Step three: Installing a good antivirus software
now the most recommended would be either Norton or Kaspersky but if you feel like going for free ones then i suggest
Avira or Avast as a good antivirus software also the renowned Malawarebytes is also quite good
i personally use malwarebytes free version since i can run it along side my main antivirus software without it conflicting with each other
once you have installed the software on your pc make sure you run a full scan for your first time
and move to step four.
Step four: System registry errors
to fix registry error you will need a third party software my personal recommendation is ccleaner and glary utilities
http://www.glarysoft.com/
http://www.piriform.com/
install either one and then run a maintenance on your PC the UI for both is quite user friendly so you won't have any problems
for glary utilities do the 1 click maintenance and for ccleaner do the cleaner option and then do the registry option
just analyze and click repair or fix error thats all once it does a repair do another analysis and if it shows 0 errors then your PC is clean if it shows errors then click repair again and repeat the process till you get 0 errors
then move to step five.
Step five: Startup speed
to speed up your start up just open glary utilities or ccleaner
for ccleaner click tools box and click on the "Startup" option then click on the programs that you feel are not needed on startup and click disable this option will not allow the programs to startup along with windows they will instead will
start up when you start them up
for glary click on the advanced tab and under the system control menu you will find the "Startup items" option disable the programs you feel are not needed during startup the bonus of glary is that it shows whether the program holds any relevance
to your PC if it is on startup or not so you will know whether it is needed or not once you disable your unwanted startup programs move to step six.
Step six: How to optimize your windows 8.1 paging file
watch this video and follow it's steps
https://www.youtube.com/watch?v=rQ98T4Qt42M
once you have finished step six then move to step seven
Step seven: How to enable windows 8.1 Hard Drive Write Caching
watch this video and follow it's steps carefully
https://www.youtube.com/watch?v=4gye7Odj-Io
once you have finished this then time to tweak your visual effects which is the last step
Step eight: Adjust visual effects
ok this is the last step
(i): open search bar and type
"Adjust the appearance and performance of Windows" (copy paste without quotes if you like)
and the performance tab will open
(ii): now click on the option "Adjust for best performance" and this will remove all your visual effects now i know it can look a little bad but the more options you have the more resource your PC is going to use but since the fonts look bad click
on the checkbox in the custom tab that says "smooth edges of screen fonts" this should give your pc a good look while using the least amount of resource and that is all.
Ok that all for performance tweak i hope your PC speeds up a bit please tell me if you have any problems
PS:
i do not own the videos in the video links i merely recommended them since the steps in the video are quite easy to follow even for a complete amateur.Hi,
Thank you for sharing the solutions here. It will be very beneficial for other community members who have similar questions.
Regards.
Yolanda Zhu
TechNet Community Support -
Please help me to increase the performance of the query
Hello
I am not an oracle expert or developer and i have a problem to resolve.
Below is the query and explaiation plan and seeking the help to improve the performance of the query.
Our Analysis,
The query runs good,takes less one minute and fetches the results but during peak time it takes 8 minutes
Require anyone suggestion's to improve the query.
The query is generated from the Microsft dll so we dont have SQL code and require some help on tuning the tables.
If tuning the query improves then also fine please suggest for that also.
Enviroment: Solaris 8
DB : oracle 9i
(SELECT vw.dispapptobjid, vw.custsiteobjid, vw.emplastname, vw.empfirstname,
vw.scheduledonsite AS starttime, vw.appttype, vw.latestart,
vw.endtime, vw.typetitle, vw.empobjid, vw.latitude, vw.longitude,
vw.workduration AS DURATION, vw.dispatchtype, vw.availability
FROM ora_appt_disp_view vw
WHERE ( ( vw.starttime >=
TO_DATE ('2/12/2007 4:59 PM', 'MM/DD/YYYY HH12:MI AM')
AND vw.starttime <
TO_DATE ('2/21/2007 3:59 PM', 'MM/DD/YYYY HH12:MI AM')
OR vw.endtime >
TO_DATE ('2/12/2007 4:59 PM', 'MM/DD/YYYY HH12:MI AM')
AND vw.endtime <=
TO_DATE ('2/21/2007 3:59 PM', 'MM/DD/YYYY HH12:MI AM')
OR ( vw.starttime <=
TO_DATE ('2/12/2007 4:59 PM', 'MM/DD/YYYY HH12:MI AM')
AND vw.endtime >=
TO_DATE ('2/21/2007 3:59 PM', 'MM/DD/YYYY HH12:MI AM')
UNION
(SELECT 0 AS dispapptobjid, emp.emp_physical_site2site AS custsiteobjid,
emp.last_name AS emplastname, emp.first_name AS empfirstname,
TO_DATE ('1/1/3000', 'MM/DD/YYYY') AS starttime, 'E' AS appttype,
NULL AS latestart, NULL AS endtime, '' AS typetitle,
emp.objid AS empobjid, 0 AS latitude, 0 AS longitude, 0 AS DURATION,
'' AS dispatchtype, 0 AS availability
FROM table_employee emp, table_user usr
WHERE emp.employee2user = usr.objid AND emp.field_eng = 1 AND usr.status = 1)
ORDER BY empobjid, starttime, endtime DESC
Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop
SELECT STATEMENT Optimizer Mode=HINT: ALL_ROWS 23 K 11312
SORT UNIQUE 23 K 3 M 11140
UNION-ALL
VIEW ORA_APPT_DISP_VIEW 17 K 3 M 10485
UNION-ALL
CONCATENATION
NESTED LOOPS OUTER 68 24 K 437
NESTED LOOPS 68 23 K 369
NESTED LOOPS OUTER 68 25 K 505
NESTED LOOPS OUTER 68 24 K 505
NESTED LOOPS 68 23 K 369
NESTED LOOPS 68 22 K 369
NESTED LOOPS OUTER 68 22 K 369
NESTED LOOPS 19 6 K 312
NESTED LOOPS 19 5 K 312
HASH JOIN 19 5 K 293
NESTED LOOPS 19 5 K 274
NESTED LOOPS 19 4 K 236
NESTED LOOPS 19 4 K 198
NESTED LOOPS OUTER 19 3 K 160
NESTED LOOPS OUTER 19 3 K 160
NESTED LOOPS OUTER 19 4 K 160
NESTED LOOPS OUTER 19 1 K 103
NESTED LOOPS OUTER 19 2 K 103
NESTED LOOPS OUTER 19 2 K 103
TABLE ACCESS BY INDEX ROWID TABLE_DISPTCHFE 19 1 K 46
INDEX RANGE SCAN GSA_SCHED_REPAIR 44 3
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22 3
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28 3
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_CASE 1 30 2
INDEX UNIQUE SCAN CASE_OBJINDEX 1 1
TABLE ACCESS BY INDEX ROWID TABLE_SITE 1 12 2
INDEX UNIQUE SCAN SITE_OBJINDEX 1 1
TABLE ACCESS BY INDEX ROWID TABLE_ADDRESS 1 12 2
INDEX UNIQUE SCAN ADDRESS_OBJINDEX 1 1
TABLE ACCESS FULL TABLE_EMPLOYEE 1 34 1
INDEX UNIQUE SCAN SITE_OBJINDEX 1 6 1
INDEX UNIQUE SCAN USER_OBJINDEX 1 6
TABLE ACCESS BY INDEX ROWID TABLE_X_GSA_TIME_STAMPS 4 48 3
INDEX RANGE SCAN GSAIDX_TS2DISP 1 2
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
TABLE ACCESS BY INDEX ROWID TABLE_MOD_LEVEL 1 12 1
INDEX UNIQUE SCAN MOD_LEVEL_OBJINDEX 1
INDEX UNIQUE SCAN PART_NUM_OBJINDEX 1 6
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
INDEX UNIQUE SCAN SUBCASE_OBJINDX 1 6 1
NESTED LOOPS OUTER 68 25 K 505
NESTED LOOPS OUTER 68 24 K 505
NESTED LOOPS OUTER 68 24 K 437
NESTED LOOPS 68 23 K 369
NESTED LOOPS 68 23 K 369
NESTED LOOPS 68 22 K 369
NESTED LOOPS OUTER 68 22 K 369
NESTED LOOPS 19 6 K 312
NESTED LOOPS 19 5 K 312
NESTED LOOPS 19 5 K 293
NESTED LOOPS 19 5 K 274
NESTED LOOPS 19 4 K 236
NESTED LOOPS 19 4 K 198
NESTED LOOPS OUTER 19 4 K 160
NESTED LOOPS OUTER 19 3 K 160
NESTED LOOPS OUTER 19 3 K 160
NESTED LOOPS OUTER 19 2 K 103
NESTED LOOPS OUTER 19 2 K 103
NESTED LOOPS OUTER 19 1 K 103
TABLE ACCESS BY INDEX ROWID TABLE_DISPTCHFE 19 1 K 46
INDEX RANGE SCAN GSA_SCHED_REPAIR 44 3
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22 3
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28 3
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_CASE 1 30 2
INDEX UNIQUE SCAN CASE_OBJINDEX 1 1
TABLE ACCESS BY INDEX ROWID TABLE_SITE 1 12 2
INDEX UNIQUE SCAN SITE_OBJINDEX 1 1
TABLE ACCESS BY INDEX ROWID TABLE_ADDRESS 1 12 2
INDEX UNIQUE SCAN ADDRESS_OBJINDEX 1 1
TABLE ACCESS BY INDEX ROWID TABLE_EMPLOYEE 1 34 1
INDEX UNIQUE SCAN EMPLOYEE_OBJINDEX 1
INDEX UNIQUE SCAN SITE_OBJINDEX 1 6 1
INDEX UNIQUE SCAN USER_OBJINDEX 1 6
TABLE ACCESS BY INDEX ROWID TABLE_X_GSA_TIME_STAMPS 4 48 3
INDEX RANGE SCAN GSAIDX_TS2DISP 1 2
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
INDEX UNIQUE SCAN SUBCASE_OBJINDX 1 6 1
TABLE ACCESS BY INDEX ROWID TABLE_MOD_LEVEL 1 12 1
INDEX UNIQUE SCAN MOD_LEVEL_OBJINDEX 1
INDEX UNIQUE SCAN PART_NUM_OBJINDEX 1 6
NESTED LOOPS OUTER 68 25 K 505
NESTED LOOPS OUTER 68 24 K 505
NESTED LOOPS OUTER 68 24 K 437
NESTED LOOPS 68 23 K 369
NESTED LOOPS 68 23 K 369
NESTED LOOPS 68 22 K 369
NESTED LOOPS OUTER 68 22 K 369
NESTED LOOPS 19 6 K 312
NESTED LOOPS 19 5 K 312
NESTED LOOPS 19 5 K 293
NESTED LOOPS 19 5 K 274
NESTED LOOPS 19 4 K 236
NESTED LOOPS 19 4 K 198
NESTED LOOPS OUTER 19 4 K 160
NESTED LOOPS OUTER 19 3 K 160
NESTED LOOPS OUTER 19 3 K 160
NESTED LOOPS OUTER 19 2 K 103
NESTED LOOPS OUTER 19 2 K 103
NESTED LOOPS OUTER 19 1 K 103
TABLE ACCESS BY INDEX ROWID TABLE_DISPTCHFE 19 1 K 46
INDEX RANGE SCAN GSA_REQ_ETA 44 3
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22 3
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 22
INDEX RANGE SCAN GSA_COMDFE 1 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28 3
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_COMMIT_LOG 1 28
INDEX RANGE SCAN IND_CASE_COMMIT2CASE 2 2
TABLE ACCESS BY INDEX ROWID TABLE_CASE 1 30 2
INDEX UNIQUE SCAN CASE_OBJINDEX 1 1
TABLE ACCESS BY INDEX ROWID TABLE_SITE 1 12 2
INDEX UNIQUE SCAN SITE_OBJINDEX 1 1
TABLE ACCESS BY INDEX ROWID TABLE_ADDRESS 1 12 2
INDEX UNIQUE SCAN ADDRESS_OBJINDEX 1 1
TABLE ACCESS BY INDEX ROWID TABLE_EMPLOYEE 1 34 1
INDEX UNIQUE SCAN EMPLOYEE_OBJINDEX 1
INDEX UNIQUE SCAN SITE_OBJINDEX 1 6 1
INDEX UNIQUE SCAN USER_OBJINDEX 1 6
TABLE ACCESS BY INDEX ROWID TABLE_X_GSA_TIME_STAMPS 4 48 3
INDEX RANGE SCAN GSAIDX_TS2DISP 1 2
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
INDEX UNIQUE SCAN GBST_ELM_OBJINDEX 1 6
INDEX UNIQUE SCAN SUBCASE_OBJINDX 1 6 1
TABLE ACCESS BY INDEX ROWID TABLE_MOD_LEVEL 1 12 1
INDEX UNIQUE SCAN MOD_LEVEL_OBJINDEX 1
INDEX UNIQUE SCAN PART_NUM_OBJINDEX 1 6
NESTED LOOPS 16 K 2 M 5812
HASH JOIN 16 K 2 M 5812
HASH JOIN 16 K 2 M 5286
TABLE ACCESS FULL TABLE_EMPLOYEE 13 K 441 K 28
HASH JOIN 16 K 1 M 5243
TABLE ACCESS FULL TABLE_SCHEDULE 991 11 K 2
HASH JOIN OUTER 16 K 1 M 5240
HASH JOIN OUTER 16 K 1 M 3866
HASH JOIN OUTER 16 K 1 M 450
HASH JOIN 16 K 1 M 44
TABLE ACCESS FULL TABLE_GBST_ELM 781 14 K 2
TABLE ACCESS FULL TABLE_APPOINTMENT 16 K 822 K 41
INDEX FAST FULL SCAN CASE_OBJINDEX 1 M 6 M 201
TABLE ACCESS FULL TABLE_SITE 967 K 11 M 3157
TABLE ACCESS FULL TABLE_ADDRESS 961 K 11 M 1081
INDEX FAST FULL SCAN SITE_OBJINDEX 967 K 5 M 221
INDEX UNIQUE SCAN USER_OBJINDEX 1 6
HASH JOIN 6 K 272 K 51
TABLE ACCESS FULL TABLE_USER 6 K 51 K 21
TABLE ACCESS FULL TABLE_EMPLOYEE 6 K 220 K 28Hi,
First-off, it appear that you are querying a view. I would redo the auery against the base table.
Next, look at a function-based index for the DATE column. Here are my notes:
http://www.dba-oracle.com/t_function_based_indexes.htm
http://www.dba-oracle.com/oracle_tips_index_scan_fbi_sql.htm
Also, make sure you are analyzed properly with dbms_stats:
http://www.dba-oracle.com/art_builder_dbms_stats.htm
And histograms, if appropriate:
http://www.dba-oracle.com/art_builder_histo.htm
Lasty, look at increasing hash_area_size or pga_aggregate_tagtet, depending on your table sizes:
http://www.dba-oracle.com/art_so_undocumented_pga_parameters.htm
Hope this helps. . . .
Donald K. Burleson
Oracle Press Author -
Need help in improving the performance for the sql query
Thanks in advance for helping me.
I was trying to improve the performance of the below query. I tried the following methods used merge instead of update, used bulk collect / Forall update, used ordered hint, created a temp table and upadated the target table using the same. The methods which I used did not improve any performance. The data count which is updated in the target table is 2 million records and the target table has 15 million records.
Any suggestions or solutions for improving performance are appreciated
SQL query:
update targettable tt
set mnop = 'G',
where ( x,y,z ) in
select a.x, a.y,a.z
from table1 a
where (a.x, a.y,a.z) not in (
select b.x,b.y,b.z
from table2 b
where 'O' = b.defg
and mnop = 'P'
and hijkl = 'UVW';987981 wrote:
I was trying to improve the performance of the below query. I tried the following methods used merge instead of update, used bulk collect / Forall update, used ordered hint, created a temp table and upadated the target table using the same. The methods which I used did not improve any performance. And that meant what? Surely if you spend all that time and effort to try various approaches, it should mean something? Failures are as important teachers as successes. You need to learn from failures too. :-)
The data count which is updated in the target table is 2 million records and the target table has 15 million records.Tables have rows btw, not records. Database people tend to get upset when rows are called records, as records exist in files and a database is not a mere collection of records and files.
The failure to find a single faster method with the approaches you tried, points to that you do not know what the actual performance problem is. And without knowing the problem, you still went ahead, guns blazing.
The very first step in dealing with any software engineering problem, is to identify the problem. Seeing the symptoms (slow performance) is still a long way from problem identification.
Part of identifying the performance problem, is understanding the workload. Just what does the code task the database to do?
From your comments, it needs to find 2 million rows from 15 million rows. Change these rows. And then write 2 million rows back to disk.
That is not a small workload. Simple example. Let's say that the 2 million row find is 1ms/row and the 2 million row write is also 1ms/row. This means a 66 minute workload. Due to the number of rows, an increase in time/row either way, will potentially have 2 million fold impact.
So where is the performance problem? Time spend finding the 2 million rows (where other tables need to be read, indexes used, etc)? Time spend writing the 2 million rows (where triggers and indexes need to be fired and maintained)? Both? -
Improve the performance of the code
Hi All,
Just check the below report and give some hits to improve the performance of the report.
LOOP AT WBS_TAB.
CLEAR: HOLD_PO_NBR,
HOLD_PO_LINE.
SELECT * FROM EKKN
WHERE PS_PSP_PNR = WBS_TAB-INTNO
AND EBELN IN S_PO
AND KOKRS = P_KOKRS.
CHECK EKKN-LOEKZ <> 'X'.
CLEAR GC_PROFL.
WRITE WBS_TAB-PSPHI TO LC_PSPID.
*select direct projects only if p_direct = 'X'.
IF P_DIRECT = 'X'.
SELECT SINGLE PROFL FROM PROJ INTO GC_PROFL
WHERE PSPID = LC_PSPID.
IF GC_PROFL+4(3) = '002'
OR GC_PROFL+4(3) = '007'.
CONTINUE.
ENDIF.
ENDIF.
select indirect projects and cost centers only when p_indir = 'X'.
IF P_INDIR = 'X'.
SELECT SINGLE PROFL FROM PROJ INTO GC_PROFL
WHERE PSPID = LC_PSPID.
IF GC_PROFL+4(3) NE '002'
AND GC_PROFL+4(3) NE '007'.
CONTINUE.
ENDIF.
ENDIF.
CLEAR: GC_EINDT,
GC_PRCTR.
GC_PRCTR = WBS_TAB-PRCTR.
PERFORM PROCESS_MAIN2.
ENDSELECT.
ENDLOOP.
FORM PROCESS_MAIN2.
SELECT SINGLE * FROM EKKO WHERE EBELN = EKKN-EBELN.
CHECK EKKO-LIFNR IN VEND_NO.
CHECK EKKO-AEDAT IN S_POCDAT.
SELECT SINGLE * FROM EKPO WHERE EBELN = EKKN-EBELN AND
EBELP = EKKN-EBELP.
CHECK EKPO-LOEKZ <> 'L' AND
EKPO-LOEKZ <> 'S'.
SELECT SINGLE EINDT FROM EKET INTO GC_EINDT
WHERE EBELN = EKPO-EBELN
AND EBELP = EKPO-EBELP
AND EINDT IN S_EINDT.
IF NOT S_EINDT IS INITIAL.
CHECK GC_EINDT IN S_EINDT.
ENDIF.
CLEAR ITAB.
ITAB-PO_CREATE = EKKO-AEDAT.
ITAB-DEL_DAT = GC_EINDT.
ITAB-PO_NO = EKKO-EBELN.
ITAB-CURR_PO = EKKO-WAERS.
ITAB-CURR_CO = TKA01-WAERS.
ITAB-LINE = EKPO-EBELP.
ITAB-GR_SW = EKPO-WEPOS.
ITAB-GR_NON_VAL_SW = EKPO-WEUNB.
IF EKPO-WEUNB = 'X'. "Goods Receipt, Non-Value
ITAB-GR_SW = ''. "switch evaluation of commitment to IR
ENDIF.
ITAB-TEXT = EKPO-TXZ01.
ITAB-QTY_ORD = EKPO-MENGE.
ITAB-UOM = EKPO-MEINS.
ITAB-AMOUNT_DOC = EKPO-EFFWR.
ITAB-WBS = EKKN-PS_PSP_PNR.
ITAB-COST_ELEM = EKKN-SAKTO.
ITAB-KOSTL = EKKN-KOSTL.
ITAB-PRCTR = GC_PRCTR.
ITAB-ANLN1 = EKKN-ANLN1.
ITAB-AUFNR = EKKN-AUFNR.
ITAB-ZEKKN = EKKN-ZEKKN.
IF EKKN-VPROZ <> 0.
PERCENT = EKKN-MENGE / EKPO-MENGE.
ITAB-AMOUNT_DOC = ITAB-AMOUNT_DOC * PERCENT .
ITAB-QTY_ORD = ITAB-QTY_ORD * PERCENT .
ENDIF.
IF ITAB-CURR_CO NE ITAB-CURR_PO.
itab-amount_co = itab-amount_doc * ekko-wkurs.
Convert from PO curr to CO currency
GS_CONV_AMT = ITAB-AMOUNT_DOC / GS_CORATE.
PERFORM GET_CURR_RATE USING ITAB-CURR_PO EKKO-AEDAT
CHANGING GS_RATE.
ITAB-AMOUNT_CO = GS_CONV_AMT * GS_RATE.
ELSE.
ITAB-AMOUNT_CO = ITAB-AMOUNT_DOC.
ENDIF.
Convert from PO curr to CO Code currency
CLEAR: ITAB-CURR_LOC, GS_RATE.
PERFORM GET_COCD_RATE USING EKKO-BUKRS
CHANGING ITAB-CURR_LOC GS_RATE.
IF ITAB-CURR_LOC NE ITAB-CURR_PO.
Get company code/local currency and rate.
GS_CONV_AMT = ITAB-AMOUNT_DOC / GS_RATE.
PERFORM GET_CURR_RATE USING ITAB-CURR_PO ITAB-PO_CREATE
CHANGING GS_RATE.
ITAB-AMOUNT_LOC = GS_CONV_AMT * GS_RATE.
ELSE.
ITAB-AMOUNT_LOC = ITAB-AMOUNT_DOC.
ENDIF.
ITAB-VEND_NO = EKKO-LIFNR.
APPEND ITAB.
CLEAR ITAB.
ENDFORM.
Thanks,
Subbu.Hi,
In your code instead of using
SELECT * FROM EKKN
WHERE PS_PSP_PNR = WBS_TAB-INTNO
AND EBELN IN S_PO
AND KOKRS = P_KOKRS.
ENSELECT
USe
DATA:
TYPES: BEGIN OF t_ekkn.
INCLUDE STRUCTURE ekkn.
TYPES: END OF t_ekkn.
DATA: t_ekkn TYPE TABLE OF t_ekkn,
t_ekkn_wa TYPE t_ekkn.
FIELD-SYMBOLS: <t_ekkn> TYPE t_ekkn.
SELECT * FROM EKKN
INTO TABLE t_ekkn
WHERE PS_PSP_PNR = WBS_TAB-INTNO
AND EBELN IN S_PO
AND KOKRS = P_KOKRS.
Loop at t_ekkn assigning <t_ekkn>.
Copy your existing logic between SELECT & ENDSELECT of EKKN
Endloop.
I hope this helps,
Regards
Raju Chitale -
Boost the Performance of the database
I am getting a user call that the performance of the database is poor. I want to increase the performance of the database, can any one list out what are the checks and changes i have to do to increase the performance.
I am using topas command to find the top consume process in unix apart from this what are the area i have to look to boost the performance.
Help me in this regards.
Velthere is no one area where you can pinpoint and say this needs tuning. performance tuning needs to be addressed from all fronts. but you make one change at a time and see if it gives the desired improvement. the areas that you have to look are
1. table design
2. sql tuning, proper use of indexes
3. sizing the tables, indexes
4. setting up proper SGA parameters, if you have memory in the machine, make optimal use of it by allocating it to oracle.
5. use of procedures and functions.
you may or may not get a call from the user, but if you feel that something could be improved by tuning, i guess its the job of the DBA to do that and squeeze every bit of performance from the hardware and the software.
check out oracle performance tuning docs for more detailed info.
Mukundan. -
Gather Schema Statistics improve the performance of the R12 application?
Hi All,
If we run “Gather Schema Statistics” program, it will improve the performance of the R12 application?
Platform Linux and DB version 10.2.0.4.
Thanks & Regards,
TharunHi Tharun,
If we ruer n “Gather Schema Statistics” program, it will improve the performance of the R12 application?
Yes, it will speed up as it ensures to have an up to date statistics.
Please refer notes:
Concurrent Processing - How To Gather Statistics On Oracle Applications Release 11i and/or Release 12 - Concurrent Process,Temp Tables, Manually [ID 419728.1]
How Often Should Gather Schema Statistics Program be Run? [ID 168136.1]
Why Stats Gather?
Stats gathering must be set as a routine job and is recommended to be scheduled. Even though this program is available from the fronted in the form of submitting a concurrent program basically it performs a DB level enhancement and ensures that you have an up to date optimizer statistics.Because the objects in a database can be constantly changing, statistics must be regularly updated so that they accurately describe these database objects.
For indepth understand as to why it should be run, please refer doc:
Managing Optimizer Statistics
Thanks &
Best Regards, -
Hello there - how can I share my iTunes library between two users on the same computer? I put the library in a shared folder between both and have selected this library on both as well, but when I update iTunes with music etc it only appears on one?
Thank you Joe - I tried this but it's only showing a teensy amount of music - the stuff on the second users account as opposed to the giagntic library on the 'main' account. I actually went to a Genius Bar and they said that apple doesn't really want you to share music between accounts - parents don't want to hear their kids music etc. Which seemed strange, but it might be the case sadly Thanks anyway!
Maybe you are looking for
-
Issues with Gagabit connection on BT Home Hub 3.0
I did post this is the BB Other Forum, but got no reply, maybe someone can answer it in this one. I have just received a BT Home Hub 3.0 to replace my old HH 1.0 I have connected the hub up and 'assumed' that if I plug port 4 into my existing gigabit
-
I see in the forums where many people have had this problem. I just dont know the solution. The pictures that show up through desktop manager have transferred over to my mac, but I can't get the ones on device memory (memory/home/user/pictures). (I w
-
MX922 -Problem opening scanned photos saved as jpgs
When I scan a photo, the image is saved as jpg but cannot be opened by Preview or iPhoto. Message: "file is damaged or is in an unrecognizable format." I scan from my pc, as the printer "defaults" to "set the pc to start scanning." The file extension
-
Sales order price with normal stock as well as Reserve stock
Dear all i have different situation in stock reserving plz let me know i am explaining whole scenario plz tell me how to proceed ex: customer agreed To buy the stock around 500 qnt so i have kept stock reserve on jan 15th 500 qnty ( by using 412 e )
-
Debuging Error in AdobeFlex Builder (Windows-7)
Here is an Error for me in AdobeFlex Builder 3 My Operating System is Windows-7,Presntly FlashPlayer 10 is running in MySystem,but while debuging in Flex this Error was Coming Except this Debug Problem FlexBuilder works fine in Windows-7 How to Solve