Need Performance Tunning Document
Dear Experts,
We also want experts in Performance Tuning. Please Suggest the Helpful Document for Oracle 9i and 10G Performance Tuning.
From where I can get the best Documents and Books for tha same.
Many Thanks
Apart from the Oracle manuals, which have a Performance Tuning guide and are free to download, it would also be worthwhile reading a good book about the concepts behind Performance Tuning in general and how to do it on Oracle specifically. Jonathan Lewis recently published his list of [the top 10 books about Oracle|http://jonathanlewis.wordpress.com/2009/01/14/books/], all of which are Oracle Performance related one way or another.
Which book is best will depend on whether you want to learn about Oracle Performance Tuning in general, or whether you have specific things you want to tune and improve. I particularly like the Cary Millsap and Jeff Holt book - Optimizing Oracle Performance - because it takes an evidence based approach. Measure what is happening on the system, and use that data to determine where the bottlenecks are, and then tune the bottlenecks only, ignoring anything else.
John Brady
[Database Performance Blog|http://databaseperformance.blogspot.com/]
Similar Messages
-
select partner from but000 into (ITAB-PARTNER1)
WHERE PARTNER IN PARTNER AND TYPE = '2'.
SELECT SINGLE PARTNER_GUID FROM BUT000 INTO CORRESPONDING FIELDS OF ITAB
WHERE PARTNER = ITAB-PARTNER1.
IF SY-SUBRC = 0.
SELECT single CLASSIFIC FROM CRMM_BUT_FRG0041 INTO CORRESPONDING FIELDS OF ITAB
WHERE PARTNER_GUID = ITAB-PARTNER_GUID.
endif.
IF SY-SUBRC = 0.
SELECT SINGLE SALES_ORG FROM CRMM_BUT_LNK0031
INTO CORRESPONDING FIELDS OF ITAB
WHERE PARTNER_GUID = ITAB-PARTNER_GUID .
ENDIF.
IF SY-SUBRC = 0.
IF GEOGRAPY EQ ' '.
SELECT SINGLE SHORT STEXT FROM HRP1000 INTO CORRESPONDING FIELDS OF ITAB
WHERE OTJID = ITAB-SALES_ORG AND LANGU = 'E' .
ELSE.
SELECT SINGLE SHORT STEXT FROM HRP1000 INTO CORRESPONDING FIELDS OF ITAB
WHERE OTJID = ITAB-SALES_ORG AND LANGU = 'E' AND STEXT = GEOGRAPY .
ENDIF.
ENDIF.
IF SY-SUBRC = 0.
SELECT ADDRNUMBER FROM BUT020 INTO CORRESPONDING FIELDS OF ITAB
WHERE PARTNER = ITAB-PARTNER1.
ENDSELECT.
*ENDIF.
IF SY-SUBRC = 0.
SELECT NAME1 CITY1 TEL_NUMBER FROM ADRC
INTO (ITAB-NAME1, ITAB-CITY, ITAB-TEL_NUMBER1)
WHERE ADDRNUMBER = ITAB-ADDRNUMBER. "and country IN GEOGRAPY.
ENDSELECT.
*ENDIF.
SELECT SMTP_ADDR FROM ADR6 INTO CORRESPONDING FIELDS OF ITAB
WHERE ADDRNUMBER = ITAB-ADDRNUMBER.
ENDSELECT.
APPEND ITAB.
clear itab.
ENDSELECT.
********for responsible employee
SELECT PARTNER1 PARTNER2 RELTYP
FROM BUT050
INTO TABLE I_BUT050 FOR
ALL ENTRIES IN ITAB WHERE PARTNER1 = ITAB-PARTNER1 and reltyp = 'BUR011'.
IF NOT I_BUT050[] IS INITIAL.
loop at i_but050.
SELECT PARTNER PARTNER_GUID NAME_FIRST NAME_LAST
FROM BUT000
INTO (I_BUT000-partner,I_BUT000-PARTNER_GUID2, I_BUT000-FNAME, I_BUT000-LNAME)
WHERE PARTNER = I_BUT050-PARTNER2 .
select partner_guid from but000 into (i_but000-partner_guid1)
where partner = I_BUT050-PARTNER1.
endselect.
SELECT SALES_ORG CHANNEL DIVISION PARTNER_FCT FROM CRMM_BUT_FRG0081
INTO (I_BUT000-RSALES_ORG, I_BUT000-CHANNEL,I_BUT000-DIVISION,I_BUT000-PARTNER_FCT)
where rel_partner_guid = i_but000-partner_guid2 and partner_guid = I_BUT000-partner_guid1.
where division <> ''.
ENDSELECT.
SELECT SINGLE DESCRIPTION FROM CRMC_PARTNER_FT INTO CORRESPONDING FIELDS OF I_BUT000
WHERE PARTNER_FCT = I_BUT000-PARTNER_FCT AND SPRAS = 'E'.
SELECT SINGLE STEXT FROM HRP1000 INTO (I_BUT000-STEXT_R)
WHERE OTJID = I_BUT000-RSALES_ORG AND LANGU = 'E'.
SELECT SINGLE DESCRIPTION FROM CRMC_DIVISION_T INTO (I_BUT000-DESC)
WHERE DIVISION = I_BUT000-DIVISION AND LANGU = 'E'.
SELECT SINGLE DESCRIPTION FROM CRMC_DISTCHAN_T INTO (I_BUT000-CHANNEL_DESC)
WHERE DISTCHAN = I_BUT000-CHANNEL AND LANGU = 'E'.
i_but000-partner1 = i_but050-partner1.
append i_but000.
clear i_but000.
endselect.
endloop.
ENDIF.
*************for contract person **************
SELECT PARTNER1 PARTNER2 RELTYP
FROM BUT050
INTO TABLE I_BUT050 FOR
ALL ENTRIES IN ITAB WHERE PARTNER1 = ITAB-PARTNER1 and reltyp = 'BUR001'.
IF NOT I_BUT050[] IS INITIAL.
loop at i_but050.
SELECT PARTNER NAME_FIRST NAME_LAST
FROM BUT000
INTO (IC_BUT000-partner2, IC_BUT000-NAME_FIRST, IC_BUT000-NAME_LAST)
WHERE PARTNER = I_BUT050-PARTNER2 .
iC_but000-partner1 = i_but050-partner1.
append iC_but000.
clear iC_but000.
endselect.
endloop.
ENDIF.
SELECT PARTNER1 PARTNER2 PAFKT PAAUTH ABTNR
FROM BUT051
INTO TABLE I_BUT051
FOR ALL ENTRIES IN IC_BUT000 WHERE PARTNER2 = IC_BUT000-PARTNER2.
SELECT PAFKT BEZ30
FROM TB913
INTO TABLE I_TB913
FOR ALL ENTRIES IN I_BUT051 WHERE PAFKT = I_BUT051-PAFKT AND SPRAS = 'EN'.
SELECT PAAUTH BEZ20
FROM TB915
INTO TABLE I_TB915
FOR ALL ENTRIES IN I_BUT051 WHERE PAAUTH = I_BUT051-PAAUTH AND SPRAS = 'EN'.
SELECT ABTNR BEZ20
FROM TB911
INTO TABLE I_TB911
FOR ALL ENTRIES IN I_BUT051 WHERE ABTNR = I_BUT051-ABTNR AND SPRAS = 'EN'.
SELECT PARTNER ADDRNUMBER
FROM BUT020
INTO TABLE I_BUT020
FOR ALL ENTRIES IN IC_BUT000 WHERE PARTNER = IC_BUT000-PARTNER2.
SELECT ADDRNUMBER TEL_NUMBER FROM ADCP
INTO TABLE I_ADCP
FOR ALL ENTRIES IN I_BUT020 WHERE ADDRNUMBER = I_BUT020-ADDRNUMBER .
SELECT ADDRNUMBER SMTP_ADDR FROM ADR6
INTO TABLE I_ADR6
FOR ALL ENTRIES IN I_BUT020 WHERE ADDRNUMBER = I_BUT020-ADDRNUMBER .
LOOP AT IC_BUT000.
READ TABLE I_BUT051 WITH KEY PARTNER1 = IC_BUT000-PARTNER1 PARTNER2 = IC_BUT000-PARTNER2.
IF SY-SUBRC = 0.
READ TABLE I_TB913 WITH KEY PAFKT = I_BUT051-PAFKT .
IF SY-SUBRC = 0.
MOVE I_TB913-BEZ30 TO IC_BUT000-BEZ30.
ENDIF.
READ TABLE I_TB915 WITH KEY PAAUTH = I_BUT051-PAAUTH .
IF SY-SUBRC = 0.
MOVE I_TB915-BEZ20 TO IC_BUT000-BEZ20.
ENDIF.
READ TABLE I_TB911 WITH KEY ABTNR = I_BUT051-ABTNR .
IF SY-SUBRC = 0.
MOVE I_TB911-BEZ2 TO IC_BUT000-BEZ2.
ENDIF.
ENDIF.
READ TABLE I_BUT020 WITH KEY PARTNER = IC_BUT000-PARTNER2.
IF SY-SUBRC = 0.
READ TABLE I_ADCP WITH KEY ADDRNUMBER = I_BUT020-ADDRNUMBER.
IF SY-SUBRC = 0.
MOVE I_ADCP-TEL_NUMBER TO IC_BUT000-TEL_NUMBER.
ENDIF.
READ TABLE I_ADR6 WITH KEY ADDRNUMBER = I_BUT020-ADDRNUMBER.
IF SY-SUBRC = 0.
MOVE I_ADR6-SMTP_ADDR TO IC_BUT000-SMTP_ADDR2.
ENDIF.
ENDIF.
MODIFY IC_BUT000.
ENDLOOP.Hi
DON"T USE SELECT and ENDSELECT staments it acts like an LOOP
see these points
Ways of Performance Tuning
1. Selection Criteria
2. Select Statements
Select Queries
SQL Interface
Aggregate Functions
For all Entries
Select Over more than one internal table
Selection Criteria
1. Restrict the data to the selection criteria itself, rather than filtering it out using the ABAP code using CHECK statement.
2. Select with selection list.
SELECT * FROM SBOOK INTO SBOOK_WA.
CHECK: SBOOK_WA-CARRID = 'LH' AND
SBOOK_WA-CONNID = '0400'.
ENDSELECT.
The above code can be much more optimized by the code written below which avoids CHECK, selects with selection list
SELECT CARRID CONNID FLDATE BOOKID FROM SBOOK INTO TABLE T_SBOOK
WHERE SBOOK_WA-CARRID = 'LH' AND
SBOOK_WA-CONNID = '0400'.
Select Statements Select Queries
1. Avoid nested selects
SELECT * FROM EKKO INTO EKKO_WA.
SELECT * FROM EKAN INTO EKAN_WA
WHERE EBELN = EKKO_WA-EBELN.
ENDSELECT.
ENDSELECT.
The above code can be much more optimized by the code written below.
SELECT PF1 PF2 FF3 FF4 INTO TABLE ITAB
FROM EKKO AS P INNER JOIN EKAN AS F
ON PEBELN = FEBELN.
Note: A simple SELECT loop is a single database access whose result is passed to the ABAP program line by line. Nested SELECT loops mean that the number of accesses in the inner loop is multiplied by the number of accesses in the outer loop. One should therefore use nested SELECT loops only if the selection in the outer loop contains very few lines or the outer loop is a SELECT SINGLE statement.
2. Select all the records in a single shot using into table clause of select statement rather than to use Append statements.
SELECT * FROM SBOOK INTO SBOOK_WA.
CHECK: SBOOK_WA-CARRID = 'LH' AND
SBOOK_WA-CONNID = '0400'.
ENDSELECT.
The above code can be much more optimized by the code written below which avoids CHECK, selects with selection list and puts the data in one shot using into table
SELECT CARRID CONNID FLDATE BOOKID FROM SBOOK INTO TABLE T_SBOOK
WHERE SBOOK_WA-CARRID = 'LH' AND
SBOOK_WA-CONNID = '0400'.
3. When a base table has multiple indices, the where clause should be in the order of the index, either a primary or a secondary index.
To choose an index, the optimizer checks the field names specified in the where clause and then uses an index that has the same order of the fields. In certain scenarios, it is advisable to check whether a new index can speed up the performance of a program. This will come handy in programs that access data from the finance tables.
4. For testing existence, use Select.. Up to 1 rows statement instead of a Select-Endselect-loop with an Exit.
SELECT * FROM SBOOK INTO SBOOK_WA
UP TO 1 ROWS
WHERE CARRID = 'LH'.
ENDSELECT.
The above code is more optimized as compared to the code mentioned below for testing existence of a record.
SELECT * FROM SBOOK INTO SBOOK_WA
WHERE CARRID = 'LH'.
EXIT.
ENDSELECT.
5. Use Select Single if all primary key fields are supplied in the Where condition .
If all primary key fields are supplied in the Where conditions you can even use Select Single.
Select Single requires one communication with the database system, whereas Select-Endselect needs two.
Select Statements SQL Interface
1. Use column updates instead of single-row updates
to update your database tables.
SELECT * FROM SFLIGHT INTO SFLIGHT_WA.
SFLIGHT_WA-SEATSOCC =
SFLIGHT_WA-SEATSOCC - 1.
UPDATE SFLIGHT FROM SFLIGHT_WA.
ENDSELECT.
The above mentioned code can be more optimized by using the following code
UPDATE SFLIGHT
SET SEATSOCC = SEATSOCC - 1.
2. For all frequently used Select statements, try to use an index.
SELECT * FROM SBOOK CLIENT SPECIFIED INTO SBOOK_WA
WHERE CARRID = 'LH'
AND CONNID = '0400'.
ENDSELECT.
The above mentioned code can be more optimized by using the following code
SELECT * FROM SBOOK CLIENT SPECIFIED INTO SBOOK_WA
WHERE MANDT IN ( SELECT MANDT FROM T000 )
AND CARRID = 'LH'
AND CONNID = '0400'.
ENDSELECT.
3. Using buffered tables improves the performance considerably.
Bypassing the buffer increases the network considerably
SELECT SINGLE * FROM T100 INTO T100_WA
BYPASSING BUFFER
WHERE SPRSL = 'D'
AND ARBGB = '00'
AND MSGNR = '999'.
The above mentioned code can be more optimized by using the following code
SELECT SINGLE * FROM T100 INTO T100_WA
WHERE SPRSL = 'D'
AND ARBGB = '00'
AND MSGNR = '999'.
Select Statements Aggregate Functions
If you want to find the maximum, minimum, sum and average value or the count of a database column, use a select list with aggregate functions instead of computing the aggregates yourself.
Some of the Aggregate functions allowed in SAP are MAX, MIN, AVG, SUM, COUNT, COUNT( * )
Consider the following extract.
Maxno = 0.
Select * from zflight where airln = LF and cntry = IN.
Check zflight-fligh > maxno.
Maxno = zflight-fligh.
Endselect.
The above mentioned code can be much more optimized by using the following code.
Select max( fligh ) from zflight into maxno where airln = LF and cntry = IN.
Select Statements For All Entries
The for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of entries in the driver table is larger than rsdb/max_blocking_factor, several similar SQL statements are executed to limit the length of the WHERE clause.
The plus
Large amount of data
Mixing processing and reading of data
Fast internal reprocessing of data
Fast
The Minus
Difficult to program/understand
Memory could be critical (use FREE or PACKAGE size)
Points to be must considered FOR ALL ENTRIES
Check that data is present in the driver table
Sorting the driver table
Removing duplicates from the driver table
Consider the following piece of extract
Loop at int_cntry.
Select single * from zfligh into int_fligh
where cntry = int_cntry-cntry.
Append int_fligh.
Endloop.
The above mentioned can be more optimized by using the following code.
Sort int_cntry by cntry.
Delete adjacent duplicates from int_cntry.
If NOT int_cntry[] is INITIAL.
Select * from zfligh appending table int_fligh
For all entries in int_cntry
Where cntry = int_cntry-cntry.
Endif.
Select Statements Select Over more than one Internal table
1. Its better to use a views instead of nested Select statements.
SELECT * FROM DD01L INTO DD01L_WA
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
SELECT SINGLE * FROM DD01T INTO DD01T_WA
WHERE DOMNAME = DD01L_WA-DOMNAME
AND AS4LOCAL = 'A'
AND AS4VERS = DD01L_WA-AS4VERS
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
The above code can be more optimized by extracting all the data from view DD01V_WA
SELECT * FROM DD01V INTO DD01V_WA
WHERE DOMNAME LIKE 'CHAR%'
AND DDLANGUAGE = SY-LANGU.
ENDSELECT
2. To read data from several logically connected tables use a join instead of nested Select statements. Joins are preferred only if all the primary key are available in WHERE clause for the tables that are joined. If the primary keys are not provided in join the Joining of tables itself takes time.
SELECT * FROM EKKO INTO EKKO_WA.
SELECT * FROM EKAN INTO EKAN_WA
WHERE EBELN = EKKO_WA-EBELN.
ENDSELECT.
ENDSELECT.
The above code can be much more optimized by the code written below.
SELECT PF1 PF2 FF3 FF4 INTO TABLE ITAB
FROM EKKO AS P INNER JOIN EKAN AS F
ON PEBELN = FEBELN.
3. Instead of using nested Select loops it is often better to use subqueries.
SELECT * FROM SPFLI
INTO TABLE T_SPFLI
WHERE CITYFROM = 'FRANKFURT'
AND CITYTO = 'NEW YORK'.
SELECT * FROM SFLIGHT AS F
INTO SFLIGHT_WA
FOR ALL ENTRIES IN T_SPFLI
WHERE SEATSOCC < F~SEATSMAX
AND CARRID = T_SPFLI-CARRID
AND CONNID = T_SPFLI-CONNID
AND FLDATE BETWEEN '19990101' AND '19990331'.
ENDSELECT.
The above mentioned code can be even more optimized by using subqueries instead of for all entries.
SELECT * FROM SFLIGHT AS F INTO SFLIGHT_WA
WHERE SEATSOCC < F~SEATSMAX
AND EXISTS ( SELECT * FROM SPFLI
WHERE CARRID = F~CARRID
AND CONNID = F~CONNID
AND CITYFROM = 'FRANKFURT'
AND CITYTO = 'NEW YORK' )
AND FLDATE BETWEEN '19990101' AND '19990331'.
ENDSELECT.
1. Table operations should be done using explicit work areas rather than via header lines.
2. Always try to use binary search instead of linear search. But dont forget to sort your internal table before that.
3. A dynamic key access is slower than a static one, since the key specification must be evaluated at runtime.
4. A binary search using secondary index takes considerably less time.
5. LOOP ... WHERE is faster than LOOP/CHECK because LOOP ... WHERE evaluates the specified condition internally.
6. Modifying selected components using MODIFY itab TRANSPORTING f1 f2.. accelerates the task of updating a line of an internal table.
Point # 2
READ TABLE ITAB INTO WA WITH KEY K = 'X BINARY SEARCH.
IS MUCH FASTER THAN USING
READ TABLE ITAB INTO WA WITH KEY K = 'X'.
If TAB has n entries, linear search runs in O( n ) time, whereas binary search takes only O( log2( n ) ).
Point # 3
READ TABLE ITAB INTO WA WITH KEY K = 'X'. IS FASTER THAN USING
READ TABLE ITAB INTO WA WITH KEY (NAME) = 'X'.
Point # 5
LOOP AT ITAB INTO WA WHERE K = 'X'.
ENDLOOP.
The above code is much faster than using
LOOP AT ITAB INTO WA.
CHECK WA-K = 'X'.
ENDLOOP.
Point # 6
WA-DATE = SY-DATUM.
MODIFY ITAB FROM WA INDEX 1 TRANSPORTING DATE.
The above code is more optimized as compared to
WA-DATE = SY-DATUM.
MODIFY ITAB FROM WA INDEX 1.
7. Accessing the table entries directly in a "LOOP ... ASSIGNING ..." accelerates the task of updating a set of lines of an internal table considerably
8. If collect semantics is required, it is always better to use to COLLECT rather than READ BINARY and then ADD.
9. "APPEND LINES OF itab1 TO itab2" accelerates the task of appending a table to another table considerably as compared to LOOP-APPEND-ENDLOOP.
10. DELETE ADJACENT DUPLICATES accelerates the task of deleting duplicate entries considerably as compared to READ-LOOP-DELETE-ENDLOOP.
11. "DELETE itab FROM ... TO ..." accelerates the task of deleting a sequence of lines considerably as compared to DO -DELETE-ENDDO.
Point # 7
Modifying selected components only makes the program faster as compared to Modifying all lines completely.
e.g,
LOOP AT ITAB ASSIGNING <WA>.
I = SY-TABIX MOD 2.
IF I = 0.
<WA>-FLAG = 'X'.
ENDIF.
ENDLOOP.
The above code works faster as compared to
LOOP AT ITAB INTO WA.
I = SY-TABIX MOD 2.
IF I = 0.
WA-FLAG = 'X'.
MODIFY ITAB FROM WA.
ENDIF.
ENDLOOP.
Point # 8
LOOP AT ITAB1 INTO WA1.
READ TABLE ITAB2 INTO WA2 WITH KEY K = WA1-K BINARY SEARCH.
IF SY-SUBRC = 0.
ADD: WA1-VAL1 TO WA2-VAL1,
WA1-VAL2 TO WA2-VAL2.
MODIFY ITAB2 FROM WA2 INDEX SY-TABIX TRANSPORTING VAL1 VAL2.
ELSE.
INSERT WA1 INTO ITAB2 INDEX SY-TABIX.
ENDIF.
ENDLOOP.
The above code uses BINARY SEARCH for collect semantics. READ BINARY runs in O( log2(n) ) time. The above piece of code can be more optimized by
LOOP AT ITAB1 INTO WA.
COLLECT WA INTO ITAB2.
ENDLOOP.
SORT ITAB2 BY K.
COLLECT, however, uses a hash algorithm and is therefore independent
of the number of entries (i.e. O(1)) .
Point # 9
APPEND LINES OF ITAB1 TO ITAB2.
This is more optimized as compared to
LOOP AT ITAB1 INTO WA.
APPEND WA TO ITAB2.
ENDLOOP.
Point # 10
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING K.
This is much more optimized as compared to
READ TABLE ITAB INDEX 1 INTO PREV_LINE.
LOOP AT ITAB FROM 2 INTO WA.
IF WA = PREV_LINE.
DELETE ITAB.
ELSE.
PREV_LINE = WA.
ENDIF.
ENDLOOP.
Point # 11
DELETE ITAB FROM 450 TO 550.
This is much more optimized as compared to
DO 101 TIMES.
DELETE ITAB INDEX 450.
ENDDO.
12. Copying internal tables by using ITAB2[ ] = ITAB1[ ] as compared to LOOP-APPEND-ENDLOOP.
13. Specify the sort key as restrictively as possible to run the program faster.
Point # 12
ITAB2[] = ITAB1[].
This is much more optimized as compared to
REFRESH ITAB2.
LOOP AT ITAB1 INTO WA.
APPEND WA TO ITAB2.
ENDLOOP.
Point # 13
SORT ITAB BY K. makes the program runs faster as compared to SORT ITAB.
Internal Tables contd
Hashed and Sorted tables
1. For single read access hashed tables are more optimized as compared to sorted tables.
2. For partial sequential access sorted tables are more optimized as compared to hashed tables
Hashed And Sorted Tables
Point # 1
Consider the following example where HTAB is a hashed table and STAB is a sorted table
DO 250 TIMES.
N = 4 * SY-INDEX.
READ TABLE HTAB INTO WA WITH TABLE KEY K = N.
IF SY-SUBRC = 0.
ENDIF.
ENDDO.
This runs faster for single read access as compared to the following same code for sorted table
DO 250 TIMES.
N = 4 * SY-INDEX.
READ TABLE STAB INTO WA WITH TABLE KEY K = N.
IF SY-SUBRC = 0.
ENDIF.
ENDDO.
Point # 2
Similarly for Partial Sequential access the STAB runs faster as compared to HTAB
LOOP AT STAB INTO WA WHERE K = SUBKEY.
ENDLOOP.
This runs faster as compared to
LOOP AT HTAB INTO WA WHERE K = SUBKEY.
ENDLOOP. -
Performance tunning -Help needed
Hi ,
I had one ZEE program which has 25 files as input file (input data's . Here the logic of the program is as mention below.
1.initializition .
2.get_file_names.(All 25 files name is get in the same perform )
3.write_job_log.
4.open_files.(Open 25 files at a time )
5.read_surr_ctl_file.
6.load_internal_tabs.( Load 25 files data to ITAB )
7.create_edi214_tables.
8.process_ekko_ekpo.(Proces the ITAB data at the time.)
9.refresh_internal_tables.
Here they are openning 25 files , then loading all 25 files to ITAB and processing all the loaded datas.
When this progarm is schedule in background it takes 1.25 hrs to complete the process .
I need to tune this program which ever possible way.
My thought and analysis in this program is -> This performance problem is due to like openning 25 files , then loading all 25 files to ITAB and processing all the loaded datas which may hit the performance . Kindly let me know you IDEAS and experence on this issue . This program is having 10000 lines of code ..
Regards,
VeeraSE30
-
Need help in performance tunning
Hi , i have one update statement , where it is keep on running for hours and the volume of the data is 2.2 million
version:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
below is the code :
DECLARE
Cursor C11
Is
Select Account_Num,Outlet_Num,Product_Number,Ln_Of_Biz,Generateguid('DELIVERED_PRODUCT') As Dp_Guid From (
Select Account_Num,Outlet_Num,Product_Number,Ln_Of_Biz
From transformation_flat
Group By Account_Num, Outlet_Num,Ln_Of_Biz,Product_Number
Having Count(*)> 1);
Type Actno Is Table Of Varchar2(13) Index By Binary_Integer;
Type Outlet Is Table Of NUMBER Index By Binary_Integer;
Type Pno Is Table Of VARCHAR2(255) INDEX BY BINARY_INTEGER;
Type Tn Is Table Of VARCHAR2(10) Index By Binary_Integer;
Type Vdpguid Is Table Of VARCHAR2(20) Index By Binary_Integer;
Type Vcnt Is Table Of Number Index By Binary_Integer;
Type Lob1 Is Table Of Varchar2(255) Index By Binary_Integer;
Type Offer_No Is Table Of Varchar2(255) Index By Binary_Integer;
V_Actno Actno;
V_Outlet Outlet;
V_Pno Pno;
V_Tn Tn;
V_DPGUID VDPGUID;
Vguid Varchar2(20);
V_Cnt Vcnt;
V_Lob Lob1;
V_Offer_No Offer_No;
BEGIN
Open c11;
Loop
Fetch C11 Bulk Collect Into V_Actno,V_Outlet,V_Pno,V_Lob,V_Dpguid;
Exit When C11%Notfound;
End Loop;
close c11;
Forall I In 1..V_Actno.count
Update transformation_flat Set Product_Guid=V_Dpguid(I) Where
Account_Num=V_Actno(I) And
Outlet_Num=V_Outlet(I) And
Product_Number=V_Pno(I) And
ln_of_biz=v_lob(I);
Commit;
END;
for above i do have index on that table on (account_num,outlet_num,product_number,ln_of_biz).
when i checked the memory contents for this sqlid in v$sql , below are the values :
Disk_Read:21640650
Buffer_Gets:22466856
Concurrency_Wait_Time:16923
Cluster_Wait_Time:36313694
user_io_wait_time:3594365433
I need some inputs in which area i can tune the above code..
Thanks835589 wrote:
hi i am also face same performance issue pls reply me ASApDon't use the word ASAP, it is rude and a violation of forum terms and conditions.
http://www.oracle.com/html/terms.html
>
4. Use of Community Services
Community Services are provided as a convenience to users and Oracle is not obligated to provide any technical support for, or participate in, Community Services. While Community Services may include information regarding Oracle products and services, including information from Oracle employees, they are not an official customer support channel for Oracle.
You may use Community Services subject to the following: (a) Community Services may be used solely for your personal, informational, noncommercial purposes; (b) Content provided on or through Community Services may not be redistributed; and (c) personal data about other users may not be stored or collected except where expressly authorized by Oracle
>
These people are for ASAP requests.
http://www.google.com/search?q=oracle+consultant
where i need to tune the queery.
pls i am eagarly waiting for that
Read and understand the links posted above
RPuttagunta wrote:
HOW TO: Post a SQL statement tuning request - template posting
When your query takes too long ... -
Need help for performance tunning
Hello,
I have 16K records return by query, it takes long time to proceed for 7K it takes 7.5 sec.
Note: I used all seeded tables only.
If possible please help me to tune it.
SELECT msi.inventory_item_id,msi.segment1,msi.rimary_uom_code , msi.primary_unit_of_measure
FROM mtl_system_items_b msi, qp_list_lines qpll,qp_pricing_attributes qppr,
mtl_category_sets_tl mcs,mtl_category_sets_b mcsb,
mtl_categories_b mc, mtl_item_categories mcb
WHERE msi.enabled_flag = 'Y'
AND qpll.list_line_id = qppr.list_line_id
AND qppr.product_attr_value = TO_CHAR (msi.inventory_item_id(+))
AND qppr.product_uom_code = msi.primary_uom_code
AND mc.category_id = mcb.category_id
AND msi.inventory_item_id = mcb.inventory_item_id
AND msi.organization_id = mcb.organization_id
AND TRUNC (SYSDATE) BETWEEN NVL (qpll.start_date_active,TRUNC (SYSDATE)) AND NVL (qpll.end_date_active,TRUNC (SYSDATE))
AND mcs.category_set_name = 'LSS SALES CATEGORY'
AND mcs.language = 'US'
AND mcs.category_set_id = mcsb.category_set_id
AND mcsb.structure_id = mc.structure_id
AND msi.organization_id = :p_organization_id
AND qpll.list_header_id = :p_price_list_id
AND mcb.category_id = :p_category_id;
Thanks and regards
Akil.Thanks Helios ,
here is answers
Databse version
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit
PL/SQL Release 11.1.0.7.0
explain plan
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
|
0 | SELECT STATEMENT
| |
1 | 149 | 9439
(1)|
|
1 | NESTED LOOPS | | 1 |
149 | 9439 (1)|
|*
2 | HASH JOIN OUTER | | 1 |
135 | 9437 (1)|
|*
3 | HASH JOIN | | 1 |
71 | 9432 (1)|
|
4 | NESTED LOOPS | | 2 |
76 | 53 (0)|
|*
5 | TABLE ACCESS BY INDEX
ROWID| QP_LIST_LINES | 2 |
44 | 49 (0)|
|*
6 | INDEX SKIP SCAN | QP_LIST_LINES_N2 |
702 | | 20
(0)|
|*
7 | INDEX RANGE SCAN | QP_PRICING_ATTRIBUTES_N3 | 1 |
16 | 2 (0)|
|*
8 | TABLE ACCESS BY INDEX
ROWID | MTL_SYSTEM_ITEMS_B | 46254
| 1490K|
9378 (1)|
|*
9 | INDEX RANGE SCAN | MTL_SYSTEM_ITEMS_B_N9 | 46254 | |
174 (1)|
|
10 | TABLE ACCESS FULL | XX_WEB_ITEM_IMAGE_TBL |
277 | 17728 | 5 (0)|
|* 11 | INDEX RANGE SCAN | MTL_ITEM_CATEGORIES_U1 |
1 | 14 | 2
(0)|
Predicate Information (identified
by operation id):
2 -
access("XWIIT"."IMAGE_CODE"(+)="MSI"."SEGMENT1")
3 -
access("QPPR"."PRODUCT_ATTR_VALUE"=TO_CHAR("MSI"."INVENTORY_ITEM_ID")
AND
"QPPR"."PRODUCT_UOM_CODE"="MSI"."PRIMARY_UOM_CODE")
5 - filter(NVL("QPLL"."START_DATE_ACTIVE",TRUNC(SYSDATE@!))<=TRUNC(SYSDATE@!)
AND
NVL("QPLL"."END_DATE_ACTIVE",TRUNC(SYSDATE@!))>=TRUNC(SYSDATE@!))
6 -
access("QPLL"."LIST_HEADER_ID"=TO_NUMBER(:P_PRICE_LIST_ID))
filter("QPLL"."LIST_HEADER_ID"=TO_NUMBER(:P_PRICE_LIST_ID))
7 -
access("QPLL"."LIST_LINE_ID"="QPPR"."LIST_LINE_ID")
filter("QPPR"."PRODUCT_UOM_CODE" IS NOT NULL)
8 - filter("MSI"."ENABLED_FLAG"='Y')
9 - access("MSI"."ORGANIZATION_ID"=TO_NUMBER(:P_ORGANIZATION_ID))
11 -
access("MCB"."ORGANIZATION_ID"=TO_NUMBER(:P_ORGANIZATION_ID)
AND
"MSI"."INVENTORY_ITEM_ID"="MCB"."INVENTORY_ITEM_ID"
AND
"MCB"."CATEGORY_ID"=TO_NUMBER(:P_CATEGORY_ID))
filter("MCB"."CATEGORY_ID"=TO_NUMBER(:P_CATEGORY_ID))
Note
- 'PLAN_TABLE' is old version
TKprof Plan
TKPROF: Release 11.1.0.7.0 - Production on Fri Nov 15 06:12:26 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Trace file: LSSD_ora_19760.trc
Sort options: default
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
SELECT msi.inventory_item_id,
msi.segment1,
primary_uom_code,
primary_unit_of_measure,
xwiit.image_url
FROM mtl_system_items_b msi,
qp_list_lines qpll,
qp_pricing_attributes qppr,
mtl_item_categories mcb,
xx_web_item_image_tbl xwiit
WHERE msi.enabled_flag = 'Y'
AND qpll.list_line_id = qppr.list_line_id
AND qppr.product_attr_value = TO_CHAR (msi.inventory_item_id)
AND qppr.product_uom_code = msi.primary_uom_code
AND msi.inventory_item_id = mcb.inventory_item_id
AND msi.organization_id = mcb.organization_id
AND TRUNC (SYSDATE) BETWEEN NVL (qpll.start_date_active,
TRUNC (SYSDATE))
AND NVL (qpll.end_date_active,
TRUNC (SYSDATE))
AND xwiit.image_code(+) = msi.segment1
AND msi.organization_id = :p_organization_id
AND qpll.list_header_id = :p_price_list_id
AND mcb.category_id = :p_category_id
call count cpu elapsed disk query current rows
Parse 2 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 3.84 3.85 0 432560 0 1002
total 6 3.84 3.85 0 432560 0 1002
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173
Rows Row Source Operation
501 NESTED LOOPS (cr=216280 pr=0 pw=0 time=115 us cost=9439 size=149 card=1)
2616 HASH JOIN OUTER (cr=211012 pr=0 pw=0 time=39 us cost=9437 size=135 card=1)
78568 HASH JOIN (cr=210997 pr=0 pw=0 time=3786 us cost=9432 size=71 card=1)
78571 NESTED LOOPS (cr=29229 pr=0 pw=0 time=35533 us cost=53 size=76 card=2)
78571 TABLE ACCESS BY INDEX ROWID QP_LIST_LINES (cr=9943 pr=0 pw=0 time=27533 us cost=49 size=44 card=2)
226733 INDEX SKIP SCAN QP_LIST_LINES_N2 (cr=865 pr=0 pw=0 time=4122 us cost=20 size=0 card=702)(object id 99730)
78571 INDEX RANGE SCAN QP_PRICING_ATTRIBUTES_N3 (cr=19286 pr=0 pw=0 time=0 us cost=2 size=16 card=1)(object id 99733)
128857 TABLE ACCESS BY INDEX ROWID MTL_SYSTEM_ITEMS_B (cr=181768 pr=0 pw=0 time=9580 us cost=9378 size=1526382 card=46254)
128857 INDEX RANGE SCAN MTL_SYSTEM_ITEMS_B_N9 (cr=450 pr=0 pw=0 time=1657 us cost=174 size=0 card=46254)(object id 199728)
277 TABLE ACCESS FULL XX_WEB_ITEM_IMAGE_TBL (cr=15 pr=0 pw=0 time=22 us cost=5 size=17728 card=277)
501 INDEX RANGE SCAN MTL_ITEM_CATEGORIES_U1 (cr=5268 pr=0 pw=0 time=0 us cost=2 size=14 card=1)(object id 99557)
Note: I modified query and it gives good result, now it takes 3 to 4 sec for 16000 records.
If possible can you plz explain what we have to take care while doing performance tunning
I am a fresher so don't have that much idea.
and also Thanks Hussein for your replay -
Unknown steps in performance tunning
Hi,
I am in middle of performance tunning in BI 7.0, as i am going to do the following steps-i am unclear in some steps;
expert advice is needed. post ur ans as soon as possible.
When loading transaction data, following this procedure:
known - Load all master data.
known - Delete the indices of the InfoCube and its aggregates.
Unknown - Turn on number range buffering.
Unknown - Set an appropriate data packet size.
known - Load the transaction data.
known - Re-create the indices.
Unknown - Turn off number range buffering.
known - Refresh the statistics.
regards,
SumanHi Suman,
check these on number range buffering
http://help.sap.com/saphelp_nw04/helpdata/en/7b/6eb2aa7aed44ea92ebb969e03081fb/frameset.htm
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c0a6e3ff-f000-2d10-b59d-8ef35e248f83?quicklink=index&overridelayout=true -
What are the tools in performance Tunning in ABAP/4
Thanks Regards,
KumarHi kumar,
Tools provided for Performance Analysis
Following are the different tools provided by SAP for performance analysis of an ABAP object
Run time analysis transaction SE30
This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing.
SQL Trace transaction ST05
The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on the SPFLI table in our test program is mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use.
how to perform sql trace:
Poorly written SQL statements have the greatest impact on application performance. An SQL
statement using which an Oracle database system reads and/or sorts thousands or even millions of
rows of data can bring the database to a standstill. Indexes should be used properly to prevent such
situations from occurring. To analyze such problems you should use the SQL Trace (TCode ST05) to
with database access operations.
CAUTION
Only one person can perform an SQL trace at a time. Remember to turn off the
trace when you are finished. SQL trace slows the system down.
1. Using SQL Trace
1. Open a program that you want to analyze, in the editor, so that it is ready and waiting to be
executed.
2. Open a new session using the menu path System Create session.
3. Run transaction ST05 (enter /nst05-zero-five, not oh-five in the Command field, or choose
the menu path System Utilities Performance Trace).
4. Then the initial screen of the test tool appears.
The status of the Performance Trace is displayed in the lower part of the screen. This status tells you
three things namely
Whether any of the Performance Traces are switched on
The users for whom Performance Trace is enabled
The user that switched the Performance Trace on
If the trace is switched on you must switch it off before you can proceed. There are two cases in
which the trace needs to be switched off. They are
If the trace was started within the past hour, it is possible that it is still being used. Contact the
indicated user or try again later
If the trace was started hours or days ago, the user probably left it on by mistake and it can be
safely turned off
To turn off the trace, press the Trace Off pushbutton.
5. The initial screen has various trace functions such as SQL Trace, Enqueue Trace, RFC
Trace
6. Select SQL Trace.
7. There are various options under which trace can be switched on. They are
If you want to switch on the trace under your user name, choose Trace on.
If you want to switch on the trace for another user or user group, choose Trace on for user.
To enter a single user, specify the user name.
To enter a user group, specify a search pattern (you can use the normal wildcards).
If you want to change the user or user group, switch off the Performance Trace and then restart it,
entering the new users or user group.
8. Now switch back to the window containing your editor session (the one with your program
waiting to be executed).
9. Press F8 to run your program.
Note Just press F8 and do nothing. Do not even press the Back button.
10. When your program has run and the hourglass is no longer displayed, switch back to the trace
window.
11. Press the Trace Off pushbutton.
12. Once Performance Trace is switched off, you can analyze the data
Using Runtime Analysis Tool (SE30)
1. You can open the Runtime Analysis tool as follows:
To start from Choose
Any screen System Utilities Runtime Analysis Execute
Initial screen of ABAP
Workbench
Test Runtime Analysis
Initial screen of ABAP Editor Program Execute Runtime Analysis
ABAP Editor Utilities More utilities Runtime Analysis
2. In the simplest case, you would enter a short description and a measurement object
(transaction, program, or function module) to run the analysis in the current session.
3. In the Measurement restrictions group box, you can make more specific restrictions for the
measurement. For example, you may want to include only certain statements or time periods.
(For further information refer section 3. 0).
4. To start the measurement, choose Measure runtime. From the initial screen, you can
specify whether the analysis should run in the same session or in a parallel session using the
Enable/Disable button in the In parallel session group box.
5. Run the transaction, program, or function module as normal.
6. Return to the initial screen of the Runtime Analysis transaction. To do so, either leave
transaction, program, or function module as normal, or start the runtime analysis again.
7. The name of the performance data file that has just been created is displayed at the bottom of
the initial screen. The file created by the system is added to the list of performance data files.
You can now analyze, print, or delete the file, or save it locally. The Performance file group
box contains options for analyzing performance files. (For further information refer sections 4.
0 and 5. 0)
regards,
keerthi -
Dear Experts,
I am urgently looking forward to some comprehensive documentation on Performance tunning elaborating on the issues like:-
1.)In what instances should we do performance tunning....
2.) why it is neccessary and
3.) what r the <b><u>various methods</b> <b>of performance tunnig....</u></b>
I shall be highly obliged, if anyone can point me to relevant links, or send me illustrative documentation on these issues in performance tunning at [email protected]
ur help shall be thankfully/duely acknowledged,
regards,
shalini.
Message was edited by: shalini guptaShalini ,
Performance tuning is at various levels :
1. Data Modeling
2. Data Loading
3. Report design
4. Reporting
It is a mix and match of the above and other factors you might need to consider could also be something like:
1. DB being used
2. Partitioning
3. System parameters
4. Authorization Design...
All this depends on the level of performance tuning you want to do:
https://websmp204.sap-ag.de/~sapidb/011000358700001890502003
This is a link to the support portal and I have sent the same across to you. Hope it is useful.
Arun -
Oracle apps performance tunning
Hey
could u any one tell me where i will get the Oracle Apps Performance
Tunning on Module wise like OM/AP/AR.
how to verify that my oracle Apps[11.5.10] instance running fine on linux based !!
i need check list Oracle Apps Performance !!best would be to start with http://docs.oracle.com/cd/E11882_01/server.112/e16638/toc.htm
Regards
Karan -
How to do Performance tunning in OBIEE
Hi All,
We are using OBIEE 10.3.4 version on windows envorinment .In our OBIEE project we are using 9 reports my requriment is we need to do performance tunning for OBIEE side.For eace report accessing its taking around 80 sec.We need to decrease these accessing time,is there any possibility to access all the reports with less response time in OBIEE side.
Could you anyone suggest how to do performance tunning in OBIEE side.
Thanks,
Vijay.Vijay,
Plz refer
http://www.business-intelligence-quotient.com/?p=119
http://prolynxuk.com/blog/?p=173
http://businessdecisionsystems.com/blog/?p=486
Here is the section from the BIEE admin guide:
=======================
Usage Examples
This section provides a few examples of how to use Oracle hints in conjunction with the Oracle BI Server. For more information about Oracle hints, refer to the Oracle SQL Reference documentation for the version of the Oracle server that you use.
Index Hint
The Index hint instructs the optimizer to scan a specified index rather than a table. The following hypothetical example explains how you would use the Index hint. You find queries against the ORDER_ITEMS table to be slow. You review the query optimizer's execution plan and find the FAST_INDEX index is not being used. You create an Index hint to force the optimizer to scan the FAST_INDEX index rather than the ORDER_ITEMS table. The syntax for the Index hint is index(table_name, index_name). To add this hint to the repository, navigate to the Administration Tool's Physical Table dialog box and type the following text in the Hint field:
index(ORDER_ITEMS, FAST_INDEX)
Leading Hint
The Leading hint forces the optimizer to build the join order of a query with a specified table. The syntax for the Leading hint is leading(table_name). If you were creating a foreign key join between the Products table and the Sales Fact table and wanted to force the optimizer to begin the join with the Products table, you would navigate to the Administration Tool's Physical Foreign Key dialog box and type the following text in the Hint field:
leading(Products)
So, the table names "order_items" and "products" in the above documentation will not be the same after BIEE puts aliases on them.
============
Hope this is useful..
Edited by: Deepak Gupta on Aug 1, 2011 7:18 AM -
Performance Tune Stored procedures
Hi Experts,
What is the best approach to performance tune stored procedures. Is it to run expalin plan for the queries used in cursors or there is more to it?
I need all your advise.
ThanksAs generic advice: Absolutely not.
The performance of PL/SQL may be irrelevant to the performance of specific SQL statements contained.
Consider the following:
1. A very inefficient query that runs one time and takes 2 seconds to execute.
2. A query that runs in 2 milliseconds inside a loop.
Which one is more likely to be the issue?
The answer is that it depends on the number of interations of the loop.
The proper tool for tuning PL/SQL, as discussed by Tom Kyte, are, depending on version, DBMS_PROFILER or DBMS_HPROF.
Find out where the time is being spent.
Then tune that which takes the most time.
It is not necessarily the slowest SQL statement. -
SCM Live cache performance tunning
I got a ne project here I have to work on SCM live cache, performance tunning and ECC Integrating ith SCM.
If you have any documents can you please help me.
- Thanks7,
Try these
https://websmp103.sap-ag.de/~sapidb/011000358700000567062006E
https://websmp103.sap-ag.de/~sapidb/011000358700002213412003E
https://websmp103.sap-ag.de/~sapidb/011000358700000715082008E
https://websmp103.sap-ag.de/~sapidb/011000358700007382642002E
https://websmp103.sap-ag.de/~sapidb/011000358700008748092002E
Rgds,
DB49 -
Hi ,
I had one ZEE program which has 25 files as input file (input data's . Here the logic of the program is as mention below.
1.initializition .
2.get_file_names.(All 25 files name is get in the same perform )
3.write_job_log.
4.open_files.(Open 25 files at a time )
5.read_surr_ctl_file.
6.load_internal_tabs.( Load 25 files data to ITAB )
7.create_edi214_tables.
8.process_ekko_ekpo.(Proces the ITAB data at the time.)
9.refresh_internal_tables.
Here they are openning 25 files , then loading all 25 files to ITAB and processing all the loaded datas.
When this progarm is schedule in background it takes 1.25 hrs to complete the process .
I need to tune this program which ever possible way.
My thought and analysis in this program is -> This performance problem is due to like openning 25 files , then loading all 25 files to ITAB and processing all the loaded datas which may hit the performance . Kindly let me know you IDEAS and experence on this issue . This program is having 10000 lines of code ..
Regards,
VeeraHi,
This program has a lot of steps and the best way to solve its performance problems is with SE30.
I think you should execute SE30 in development environment e check the steps where there is bad performance.
If you improve the performance in the development environment you will improve also in production environment.
Regards,
Fernando -
Is there any way to do performance tunning of java programme ??
Find the bottlenecks in the program. And make changes to remove them.
If you want a more specific answer you will need to make a more specific question. -
Pages will no longer let me open files that I have previously downloaded, worked on and then saved on my mac. However it will let me open pages documents that I have started from new. I need the other documents to open and can't figure it out. PLEASE
I just got my mac a month ago so go easy on me but I was just working with the pages that was already on it, and then today I know it updated, and now I am unable to open a lot of my documents!:( Idk what you mean by the icloud version lol sorry! As for the version, when I open pages from my apps and click 'about' it says version 5.1? And when I open the document it just goes grey and kind of blinks and doesnt open? No error message or any indication of why it will not open now when I for sure have opened it in the past! Andddd for the OS X I think it is 10.9.1 ??
Maybe you are looking for
-
More BT speed rubbish... I think I am done this ti...
Here we are again, I have been having alot of dropouts or (router resets) for a while now and its always going off at the same times each day, I am on my 7th HH5 I have had 5 engineers out the last one actually fixed everything, my speed went back up
-
File Download from Secure Site
Hi , Am trying to download file from secure site. Am reading the file from DB and setting it in reponse. My code woks perfectly in non-secure site. But it doesnt work in secure site. Here is the piece of code am using. Pls help thru this. String file
-
Issues with brand new mac-mini, NAS, transmission, external HD's
Hi, I am totally new to mac, got my first mac mini about 2 weeks ago, what a lovely shiny box of joy it seemed at the beginning. I have the 2GHz model, upgraded to 2GB ram (by the apple store tech's) I have a 250GB 2.5 usb powered drive connected to
-
Query on Cats data, employees that have not filled in their data.
Hi, I have to create a query that will report on all the employees that have not filled in their timesheets. The 0CATS_C01 cube does not contain that data, it only has the employees that have filled in their timesheets. The route I have decided to t
-
HELP! my internet keeps quitting!
Whenever i use my internet (Firefox or Netscape) they just quit by themselves and then a message pops up saying: "The application Firefox has unexpectedly quit. The system and other applications have not been affected." I have an iMac OS 9 and it's f