How to tune the Update statement for 20 million rows
Hi,
I want to update 20 million rows of a table. I wrote the PL/SQL code like this:
DECLARE
v1
v2
cursor C1 is
select ....
BEGIN
Open C1;
loop
fetch C1 bulk collect into v1,v2 LIMIT 1000
exit when C1%NOTFOUND;
forall i in v1.first..v1.last
update /*+INDEX(tab indx)*/....
end loop;
commit;
close C1;
END;
The above code took 24 mins to update 100k records, so for around 20 million records it will take 4800 mins (80 hrs).
How can I tune the code further ? Will a simple Update statement, instead of PL/SQL make the update faster ?
Will adding few more hints help ?
Thanks for your suggestions.
Regards,
Yogini Joshi
Hello
You have implemented this update in the slowest possible way. Cursor FOR loops should be absolute last resort. If you post the SQL in your cursor there is a very good chance we can re-code it to be a single update statement with a subquery which will be the fastest possible way to run this. Please remember to use the {noformat}{noformat} tags before and after your code so the formatting is preserved.
David
Similar Messages
-
How to consolidate the financial statements for 3 company codes, assigned t
Hi Friends,
How to consolidate the financial statements for 3 company codes, assigned to 3 different companies, 3 different fiscal years, 3 different controlling areas and all the 3 Company Codes assigned to same chart of accounts in the same client?
Can we need any ABAP program for this (or) Is it possible using Report Painter?
Please help me.
ThanksHi friend,
Is it a real-time situation or something you are visualising ?
For consolidation, you can use a group chart of accounts and select that in the operative chart of accounts for consolidation purposes. This would work provided the company codes use the same operative chart of accounts and fiscal year.
I hope the above would be helpful to you.
Regards, -
How to save the session states for a tabular form WITHOUT using check boxs?
Greeting guys,
As you know that we can use collections to save the session states of a tabular forms, described in the how-to doc of manual tabular forms. However, what I am trying to do ( or have to do) is to provide a manual tabular form, and save the session states for validation, without using the check boxes. Because a user can put contents into some columns in a row without checking the corresponding checkbox, according to the requirements. So basically what I tried is to loop over all the rows and save Every entry into a collection. However, sometimes I got "no data found" error with unknown reasons.
My current solution is to use the "dirty" Retry button that gets back the history, which IMO is not a good workabout. So, I'd appreciate if somebody can shed some light on a better solution, especially if it is close to the one in that how-to doc.
Thanks in advance.
LucThe following is the first collection solutin I've tried:
htmldb_collection.create_or_truncate_collection('TEMP_TABLE');
for i in 1..p_row_num loop -- Loop on the whole form rows
if (htmldb_application.g_f01(i) is not null) or (htmldb_application.g_f05(i) <> 0)
--If either of them has some input values, the row should be saved into the colleciton.
then
htmldb_collection.add_member(
p_collection_name => 'TEMP_TABLE',
p_c001 => htmldb_application.g_f01(i),
p_c002 => htmldb_application.g_f03(i),
p_c003 => htmldb_application.g_f04(i),
p_c004 => htmldb_application.g_f05(i),
p_c005 => htmldb_application.g_f06(i),
p_c006 => htmldb_application.g_f08(i)
end if;
end loop;
Some of columns have null values, but I don't think that's the reason. Because once I clicked all the check boxes, there would be no error no matter what values were in other columns.
Another issue would be extract the values FROM the collection, which has been tried because I had problem to store the data into the collection. I used "decode" functions inside the SQL to build the tabular form. I am not sure whether it will be the same as a regular SQL for a tabular form, like the example in the How-to doc.
Also I didn't use the checksum, for it is not an issue at the current stage. I am not sure whether that's the reason which caused the NO DATA FOUND error. -
How to tune the update query?
HI Expert,
Our client is facing a performance problem.
Every alternate day they use to run a load on the database.
Database is RAC and when they execute a load database used to get hang.
Everytime we have to regather a stats, after that the update statement execute.
They are also saying that the query is taking time to execute.
previously it used to execute fast.
It would be great if you expert help to find out the bottleneck and solutions.
this stats i generated before creating the indexes on PRIM_IND column
SQL> Update /*+ index(IND) */ ENT_HUB.ADDR set PRIM_IND=0 where PRIM_IND=1 and SCD_ACTV_IND=1;
1477866 rows updated.
Execution Plan
Plan hash value: 2784578406
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | UPDATE STATEMENT | | 1321K| 7743K| 25185 (1)| 00:05:03 |
| 1 | UPDATE | ADDR | | | | |
|* 2 | TABLE ACCESS FULL| ADDR | 1321K| 7743K| 25185 (1)| 00:05:03 |
Predicate Information (identified by operation id):
2 - filter("PRIM_IND"=1 AND "SCD_ACTV_IND"=1)
below stats i generated after creating the index.
SQL> Update /*+ index(addr IND) */ ENT_HUB.ADDR set PRIM_IND=0 where PRIM_IND=1 and SCD_ACTV_IND=1;
1478212 rows updated.
Execution Plan
Plan hash value: 736707583
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | UPDATE STATEMENT | | 622K| 2432K| 102K (1)| 00:20:33 |
| 1 | UPDATE | ADDR | | | | |
|* 2 | TABLE ACCESS BY INDEX ROWID| ADDR | 622K| 2432K| 102K (1)| 00:20:33 |
|* 3 | INDEX RANGE SCAN | IND | 1245K| | 2382 (1)| 00:00:29 |
Predicate Information (identified by operation id):
2 - filter("SCD_ACTV_IND"=1)
3 - access("PRIM_IND"=1)
Thanks,user646034 wrote:
Hi,
Currently we are using without index.
however we are not getting performance improvement.
Please suggest us what can we do to achieve the performance again.
ThanksDon't update that many rows?
Not sure what else we can offer you for assistance, it's possible you could change the process flow of your application to not need to update the rows (possibly decode values upon the insert) or change the data model, etc....
But that's all outside the scope of possibility based on the information you've provided.
You're doing a LOT (relative to the number of rows in the table) of updating, that takes time and is bound by the laws of physics, we can't alter those here. -
How to find the offending DML for "enq: TX - row lock contention"
Hello All,
1) How can I find the offending DML for "enq: TX - row lock contention". I have tracked down the Blocking and Waiting Sessions as well as the Database Object too. But i am not able to find the DML (with values of bind variables) or the row for which both these sessions are fighting for?
Current Wait Event: enq: TX - row lock contention
Current Wait Class: Application
Wait Duration: 5:15 (mm:ss)
P1: name|mode 1415053318
P2: usn<<16 | slot 12058642
P3: sequence 39951
Object: USERNAME.MEMBER 2) Also does *"enq: TX - row lock contention"* means Both the sessions are fighting for the same Row only or it can be different rows but same database block? If they are fighting for different rows, then can we try increasing the initrans of tables/indexes to prevent this wait.
Please advice.
Regards,
TommyThanks Randolf, Mark and Aman for your valuable inputs. We are using 10.2 and the lock mode held and requested is 6. And the Wait Event is "enq: TX - row lock contention".
Based on the above facts and based on Randolf's Blog, can we ignore the following cases?:
- Same unique key written by different sessions: Because mode held and requested in ym case is 6 whereas in Randolf example it is 6 and 4 respectively
- Unindexed foreign keys and modifications to parent table primary keys: Because Wait Event in my case is "enq: TX - row lock contention"
- Insufficient block space and ITL slot shortage: Because Wait Event in my case is "enq: TX - row lock contention" and not enq: TX - allocate ITL entry
- Segments with low MAXTRANS settings Only pre-10g: But Mine is 10g
And the possible scenarios left out scenarios are:
- Bitmap indexes
- Same Row modified by different sessions
I will now try to find out the sql/dml that is causing the problem. Thank you all for your help once again.
SESS ID1 ID2 LMODE REQUEST TY
Holder: 138 393224 1330 6 0 TX
Waiter: 140 393224 1330 0 6 TX -
How to tune this update statement?
Hello,
I have to solve the following task:
Update every row in table A which has an appropriate row in table B and log what you have done in a log-table.
It is possible that there are more than one fitting rows in table A for a row in table B.
My first approach is looping over the table B and doing an update of table A for every entry in table B.
This works and looks like this:
Table A:
PK number (This is the primary key of this table)
KEY number
Table B:
KEY_OLD number
KEY_NEW number
Log table:
PK number
KEY_OLD number
KEY_NEW number
declare
TYPE PK_TAB_TYPE IS TABLE OF number INDEX BY BINARY_INTEGER;
v_tab_PK PK_TAB_TYPE;
v_empty_tab_PK PK_TAB_TYPE;
begin
for v_rec in (select * from table_B) loop
v_tab_PK := v_empty_tab_PK; /* clearing the array */
update table_A
set KEY = v_rec.KEY_NEW
where (KEY = v_rec.KEY_OLD)
returning PK bulk collect into v_tab_PK;
if (v_tab_PK.count > 0) then
for i in v_tab_PK.first..v_tab_PK.last loop
insert into TMP_TAB_LOG(PK, KEY_OLD, KEY_NEW)
values (v_tab_PK(i), v_rec.KEY_OLD, v_rec.KEY_NEW);
end loop;
end if;
end loop;
end;Because the table B can have up to 500.000 entries (and the table A has even more entries) this solution will cause many update-statements.
So I am looking for a solution which has better performance.
My second approach was using an correlated update and looks like this:
declare
TYPE PK_TAB_TYPE IS TABLE OF number INDEX BY BINARY_INTEGER;
v_tab_PK PK_TAB_TYPE;
v_empty_tab_PK PK_TAB_TYPE;
v_tab_NewKey PK_TAB_TYPE;
begin
v_tab_PK := v_empty_tab_PK; /* clear the arrays */
v_tab_NewKey := v_empty_tab_PK;
update table_A a
set KEY = (select KEY_NEW from table_B where (KEY_OLD = a.KEY))
where exists (select 'x' as OK
from table_B
where (KEY_OLD = a.KEY)
returning PK, KEY bulk collect into v_tab_PK, v_tab_NewKey;
if (v_tab_PK.count > 0) then
for i in v_tab_PK.first..v_tab_PK.last loop
insert into TMP_TAB_LOG_DUB(PK, KEY_OLD, KEY_NEW)
values (v_tab_PK(i), null, v_tab_NewKey(i));
end loop;
end if;
end;Now I have only one update statement.
The only thing missing in this second approach is the old KEY before the update in the log table.
But I have no idea how to get the old value.
Is there a possibility to modify this second approach to get the old value of the KEY before the update to write it in the log-table?
And now I need your help:
What is the best way to get a performant solution for my task?
Every help appreciated.
Regards HartmutBelow is a script you can run in another testing schema to do the update with logging..... I have created the tables (A and B) with primary key constraints defined...
create table table_a(pk number primary key
, key number);
create table table_b(key_old number primary key
, key_new number);
create table TMP_TAB_LOG_DUB(pk number primary key
, key_old number
, key_new number);
---------insert test data
insert into table_a values(1,2);
insert into table_a values(2,2);
insert into table_a values(3,2);
insert into table_a values(11,1);
insert into table_a values(12,1);
insert into table_a values(13,1);
insert into table_a values(21,4);
insert into table_a values(22,4);
insert into table_a values(23,4);
commit;
insert into table_b values(1,3);
insert into table_b values(4,2);
commit;
----- insert to log
insert into TMP_TAB_LOG_DUB(PK, KEY_OLD, KEY_NEW)
select a.pk
, a.key as key_old
, b.key_new as key_new
from table_a a
join table_b b on a.key = b.key_old;
----- update table_a
update(select a.pk
, a.key as key_old
, b.key_new as key_new
from table_a a
join table_b b on a.key = b.key_old)
set key_old = key_new;
commit; -
How to tune the Insert statement?
Hi ,
I am using 10.2.0.4.0 version of oracle.
i am having one insert statement , which comes almost all the time in the TOP of my AWR elapsed time section.
And its somewhat similar to as below.
Query:
INSERT INTO a (InvoicePK, CheckPK)
SELECT DISTINCT ih.InvoicePK, cd.CheckPK
FROM at,
cd,
ih,
rd
WHERE at.AttachmentPK = :1
AND cd.CheckPK = at.CheckPK
AND at.AttachmentPK = rd.AttachPK
AND ih.PAYPK = cd.PAYEEPAYPK
AND ih.PayerNS = cd.PayerNS
AND ih.PayerPayId = cd.PayerPayId
AND ih.UpperInvoiceNum = rd.UPPERINVNUM
AND ih.InvoiceStatusCD NOT IN ('REJ', 'DNY');
Below is the plan for the 'Select ' statement i.e. used in the insert statement.
Execution Plan:
Plan hash value: 2232002808
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
| 0 | SELECT STATEMENT | | 1 | 193 | 9 (23)| 00:00:01 | | |
| 1 | HASH UNIQUE | | 1 | 193 | 9 (23)| 00:00:01 | | |
|* 2 | HASH JOIN | | 1 | 193 | 8 (13)| 00:00:01 | | |
| 3 | NESTED LOOPS | | 10 | 1740 | 4 (0)| 00:00:01 | | |
| 4 | NESTED LOOPS | | 1 | 85 | 3 (0)| 00:00:01 | | |
| 5 | TABLE ACCESS BY INDEX ROWID | at | 1 | 16 | 2 (0)| 00:00:01 | | |
|* 6 | INDEX UNIQUE SCAN | atpk1 | 1 | | 1 (0)| 00:00:01 | | |
| 7 | TABLE ACCESS BY INDEX ROWID | cd | 7359K| 484M| 1 (0)| 00:00:01 | | |
|* 8 | INDEX UNIQUE SCAN | cdpk1 | 1 | | 1 (0)| 00:00:01 | | |
|* 9 | TABLE ACCESS BY GLOBAL INDEX ROWID| ih | 10 | 890 | 2 (0)| 00:00:01 | ROWID | ROWID |
|* 10 | INDEX RANGE SCAN | IH_PAYPK_PAYERNS_PAYID | 5 | | 1 (0)| 00:00:01 | | |
| 11 | TABLE ACCESS BY INDEX ROWID | rd | 9 | 171 | 3 (0)| 00:00:01 | | |
|* 12 | INDEX RANGE SCAN | IDX_rd | 9 | | 2 (0)| 00:00:01 | | |
Predicate Information (identified by operation id):
2 - access("IH"."UPPERINVOICENUM"="RD"."UPPERINVNUM")
6 - access("AT"."ATTACHMENTPK"=7794833983)
8 - access("CD"."CHECKPK"="AT"."CHECKPK")
9 - filter("IH"."INVOICESTATUSCD"<>'REJ' AND "IH"."INVOICESTATUSCD"<>'DNY')
10 - access("IH"."PAYPK"="CD"."PAYEEPAYPK" AND "IH"."PAYERNS"="CD"."PAYERNS" AND "IH"."PAYERPAYID"="CD"."PAYERPAYID")
12 - access("RD"."ATTACHPK"=7794833983)
Statistics
1 recursive calls
0 db block gets
71 consistent gets
0 physical reads
0 redo size
316 bytes sent via SQL*Net to client
240 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
3 rows processed
The 'select' Statement executes with in seconds resulting 3 distinct records, but the insert statement takes ~20sec(Elaps time per execution
as shown in AWR report) for one time execution, so what must be the reason , and how should i proceed to resolve this performance issue?You can do as follows:
- Enable trace
- execute the insert statement
- use tkprof (and put the results here) to see where's its taking long
Also, while insert is being executed, what are the wait events you see ?
I dont think there is problem with plan. -
How to test the update statement in SQLJ - Im lost and cant figure it out!
Hi Im wondering on the sytax of this logic.
//Execute an update on a table
#sql {update mytable set name = :test where today = sysdate };
//This is where im lost. how to test if the record is not found
if (record not found for update){
#sql {insert mytable set name = :test where today = sysdate };
I dont want to do a select count(*) and based on the value go to update or insert.
Does anyone know how to do it?
Thanks so muchIf Software Update is offering the update then it would be compatible with your model. Unfortunately, you haven't provided us with any information on your hardware that would enable us to determine if it really is too old.
If you really wish to disable the update alert then the next time Software Update opens, select the update in the list then select "Ignore update" from SU's Update menu. -
How to check the update number for OpenMQ
Hi,
I have recently installed glassfish 2.1.1, which also comes with OpenMQ 4.4 .
But how do I find out what is the update number of OpenMQ ?
Currenlty, it shows me following
com.sun.messaging.jmq Version Information
Product Compatibility Version: 4.4
Protocol Version: 4.4
Target JMS API Version: 1.1
I want to find out if bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6961586 has been fixed in this version or not. I still see the same behavior as OpenMQ 4.3.
According to the bug, it is fixed in OpenMQ 4.4u2p1(b01)
Bug ID: 6961586
Votes 0
Synopsis msgs left in queue not delivered to any consumer after MT consumers consume 1 msg then close repeatl
Category jmq:broker
Reported Against
Release Fixed 4.5(b_11), 4.4u2p1(b01) (Bug ID:2195892)
State 10-Fix Delivered, Verified, bug
Priority: 3-Medium
Related Bugs 6870832 , 6965092 , 2195900
Submit Date 16-JUN-2010
Thanks
VineetSince this is not a supported procedure I can't point you at you at detailed documentation and don't want to get drawn into writing any. But basically you need to
replace the files in imq/bin (under your GlassFish 2.1.1 installation) with the ones in mq/bin (under your GlassFish 3.1 installation)
replace the files in imq/lib (under your GlassFish 2.1.1 installation) with the ones in mq/bin (under your GlassFish 3.1 installation)
unjar imqjmsra.rar (which is in mq/bin under your 3.1 installation) into lib/install/applications/jmsra (under your GlassFish 2.1.1 installation), thereby replacing the files already there.
NIgel -
How to add the update statement in this procedure?
I have one table usersubscription (userid,newsletterid,deleted)
I got one string from user e.g. ('1,2,3') and userid = 14
I wrote proceduer that will insert this records in to usersubscription table;
userid newsletterid deleted
14 1 n
14 2 n
14 3 n
default value of deleted column is 'n'.
my procedure is as follows;
CREATE OR REPLACE PROCEDURE usersubscription_procd1 (vuserid in number, vnewsletterid IN VARCHAR2)
AS
I NUMBER;
J NUMBER;
VAL VARCHAR2(100);
BEGIN
I := 1;
J := 1;
WHILE INSTR(vnewsletterid,',',I) != 0 LOOP
VAL := SUBSTR(vnewsletterid,I,INSTR(vnewsletterid,',',I)-J);
I := INSTR(vnewsletterid,',',I)+1;
J := I;
INSERT INTO usersubscription (usersubcriptionid,userid,newsletterid)
VALUES (usersubscription_seq.nextval,vuserid,VAL);
END LOOP;
VAL := SUBSTR(vnewsletterid,I,LENGTH(vnewsletterid));
INSERT INTO usersubscription (usersubcriptionid,userid,newsletterid)
VALUES (usersubscription_seq.nextval,vuserid,VAL);
END;
Now one requirement is that when new string comes for same userid e.g.('1,4,5') userid = 14
then the deleted column for 1 and 2 newsletterid changes to 'y';
please tell me the solution.
Prathamesh.Hi,
Before your loop, you can make something else like :
SQL> select * from test;
USERID NEWSLETTERID D
14 1 n
14 2 n
14 3 n
SQL> update test
2 set deleted = 'y'
3 where instr('1,4,5',newsletterid,1) = 0
4 and userid = 14;
2 ligne(s) mise(s) à jour.
SQL> select * from test;
USERID NEWSLETTERID D
14 1 n
14 2 y
14 3 y
SQL> HTH,
Nicolas. -
How to use the Output clause for the updated statment
How to use the output clause for the below update stament,
DECLARE @MyTableVar table(
sname int NOT NULL)
update A set stat ='USED'
from (select top 1 * from #A
where stat='AVAILABLE' order by sno)A
Output inserted.sname
INTO @MyTableVar;
SELECT sname
FROM @MyTableVar;
Here am getting one error incorrect syntax near Output
i want to return the updated value from output clausesee
http://blogs.msdn.com/b/sqltips/archive/2005/06/13/output-clause.aspx
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
How to replace the update staement with a modify statement
how to convert this update stat to a modify stat?
Message was edited by:
Ashwin AHi
MODIFY <DB TABLE> FROM <INTERNAL TABLE>
To insert or change a single line in a database table, use the following:
MODIFY <target> FROM <wa> .
The contents of the work area <wa> are written to the database table <dbtab>. The work area <wa> must be a data object with at least the same length and alignment as the line structure of the database table. The data is placed in the database table according to the line structure of the table, and regardless of the structure of the work area. It is a good idea to define the work area with reference to the structure of the database table.
If the database table does not already contain a line with the same primary key as specified in the work area, a new line is inserted. If the database table does already contain a line with the same primary key as specified in the work area, the existing line is overwritten. SY-SUBRC is always set to 0.
A shortened form of the above statement is:
MODIFY <dbtab>.
In this case, the contents of the table work area <dbtab> are inserted into the database table with the same name. You must declare this table work area using the TABLES statement. In this case, it is not possible to specify the name of the database table dynamically. Table work areas with the same name as the database table (necessary before Release 4.0) should no longer be used for the sake of clarity.
Reward points if useful
Regards
Anji -
How to use the updated value in the same update statement
Hello,
I just wonder how to use the updated new value of other column in the same udpate statement. I am using Oracle 11.2, and want to update the two columns with one update statement as following:
create table tb_test (id number(5), tot number(5), mon_tot number(5));
update tb_test set (tot = 15, mon_tot = tot *15) where id = 1;
...I would like to update both tot and mon_tot column, the value of mon_tot shall be determinted by the new value of tot.
Thanks,
Edited by: 939569 on 1-Feb-2013 7:00 AMEdit: example added
SQL> create table tb_test
2 ( id number(5)
3 , tot number(5)
4 , mon_tot number generated always as (tot*15) virtual
5 );
Table created.
SQL> insert into tb_test (id, tot) values (1, 5);
1 row created.
SQL> select * from tb_test;
ID TOT MON_TOT
1 5 75
1 row selected.
SQL> update tb_test
2 set tot = 15
3 where id = 1;
1 row updated.
SQL> select * from tb_test;
ID TOT MON_TOT
1 15 225
1 row selected. -
Please Help!!!
How to write a case statement for the totals column of two different years (2013 and 2014) of the same month so that I can get a +/- column.
January 2014 January
2013 +/-
Region Entry Exit Total Entry Exit Total (Total of Jan2014-Total of Jan2013)
A 2 3
40 5 7 30 40-30= 10What is a table structure? Sorry cannot test it right now..
SELECT <columns>,(SELECT Total FROM tbl WHERE Y=2014)-(SELECT Total FROM tbl WHERE Y=2013)
FROM tbl
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
Missing update for a game app after updating ios7 any ideas how to get the update
Went to update a game app this morning, had already hit update when the i os7 update screen popped went through with the ios update but after ipad restarted the game update is completely missing any ideas how to get the update back no luck so far
Hello THEVIN7
The next step if it is not updating, would be to delete the app and then download it again. Check out the general troubleshooting for apps purchased form the App Store.
iOS: Troubleshooting apps purchased from the App Store
http://support.apple.com/kb/ts1702
Regards,
-Norm G.
Maybe you are looking for
-
IMac (10,1) running slower since Mavericks update
Hi guys, Since upgrading to Mavericks my Mac has been running pretty slow. I've ran through some of the threads with similar issues other people were having, but any of their solutions haven't been effective on my system. I run Logic Pro 9
-
E-Recruiting Employee Searches (Assigning an employee to a support group)
Hello experts, I have run into a situation where when attempting to search for an employee to assign to a support team using their first and last name nothing returns. However if I try to search for them using their personnel number they come up jus
-
Linking applications for Solaris 2.5.1 using Forte C 6
Hello, We still need to provide applications that have to run on 2.5.1. Is there a way to compile C code using Forte C 6 on Solaris 7, and deliver executables that successfully run on 2.5.1 ? Any help would be appreciated. Thanks. Yves.
-
I have a Mac mini 3.1, can I upgrade to mountain lion ?
hi, can I upgrade my Mac mini 3.1 to run OSS mountain lion ?
-
Hi friends, We are facing an issue alert server is down so in sapgui we could see the alert server is in red.Also one of my colleagues told we need to call the TREX environment before starting the TREX. When i tried to start the alert serv