The execution time of init() and start().
Hi everybody,
I am reading The Complete Reference Java 2 (1999).
It says "Whereas init() is called once -- the first time an applet is loaded -- start() is called each time an applet's HTML document is displayed onscreen. So, if a user leaves a web page and comes back, the applet resumes execution at start()"
According to the above words, I think an applet is initialized at the point of starting the HTML file containing the applet for the first time, i.e., init() is called. At the same time, start() is called following init(). Then if input a URL to start another HTML file and press "Back" button of the browser, start() should be called once more. Implicitly, only one instance of that applet is created and it exists until the user closes the browser.
I tried to test it using the code as bellow. In init(), String msg is initialized using current time. Instance variable i is defined with default value 1 and increased by 1 in start(). I supposed the time contained in msg remained constant and variable i increased one by one while going to a different URL and coming back repeatly.
Unfortunately, the time changed each time when coming back from another URL and i did not increase. It seems that a new instance (object) is created at that point. If so, differenciating init() and start() makes no sense. I am confused with it . Can anybody give me some further information? Thank you very much.
Source Code:
<code>
import java.awt.*;
import java.applet.*;
import java.util.*;
<applet code="TestApplet" width=500 height=50>
</applet>
public class TestApplet extends Applet {
String msg;
int i = 1;
// Set colors and initialize thread.
public void init() {
setBackground(Color.cyan);
setForeground(Color.red);
msg = " A Simple Moving Banner." + Calendar.getInstance().getTime();
// Start thread
public void start() {
msg = msg + " [" + i + "]";
i ++;
repaint();
// Display the banner.
public void paint(Graphics g) {
g.drawString(msg, 50, 30);
</code>
HTML Sample:
<code>
<html>
<body>
<applet code="TestApplet" width=500 height=50>
</applet>
</body>
</html>
</code>
try this :
public class TestApplet extends Applet {
String msg;
static int i = 1;
Similar Messages
-
Can you clear the old time machine backups and start fresh?
Is there a way to delete all of the backup sets at once, and start fresh with a new set of backups?
Do you really need Time Machine? It installed itself using my 300GB ext. drive. I never used it but watched it working-hard ever hour. And slowly it started filling-up my ext. drive until it warned me to remove some back-ups.
So I backed-up (manually) all the files I needed on the Ext. drive, cleaned the ext. drive completely with Disk Utility, disabled Time machine and haven't re-started it.
Now I see how great Leopard really is. Stable and fast. And now I back-up manually what I need when I need it. -
My MacBook is almost two years old and has started running really slow. It gets bogged down when it is running different programs at the same time, like Safari and Pages. It didn't react this way until recently. Any advice would be very welcome.
Launch Disk Utility and select the icon of the internal drive (the drive itself, not the volume icons below it.) Is the SMART status "Verified?" If not, replace the drive immediately. If the status is "Verified," the drive may still be failing. Back up all data, if you haven't already done so. Reinstall Mac OS X, then run Software Update. Test with all wired peripherals disconnected. If it's still slow, you have a hardware problem.
Mac OS X 10.6 Help: Reinstalling Mac OS X -
OSB: how to figure out the execution time of OSB proxy
Trying to figure out how to determine the execution time taken for any given OSB proxy. Seems like the OSB built-in alerting facilities can display the average response time of all calls to a proxy but not individually. Is there a way to dig this out from the monitoring data being collected?
Service monitoring which comes OOTB is supposed to be aggregated because in usual scenarios you dont need to see the processing time of a specific request. From a performance monitoring perspective the useful data usually is average processing time and minimum or maximum processing time for any request within the aggregation interval which is provided by OSB OOTB.
Now, in some cases the business might want to track each request individually. So, for example they can track how long did it take to process a specific order. OSB does not provide this feature OOTB. There are multiple ways to get this implemented. Two of the most common ways are:
1. Add a start and end time capturing in Proxy Services. You can use logging/reporting/publish to a DB etc to achieve this. But this is indeed intrusive and you will need to do this for every Proxy which needs to be monitored at every instance level. This is also a slight overhead in processing in itself.
2. Use monitoring products which can monitor the WS invocations externally. This will mean more investment but definitely a much better solution. You can consider using different products from Oracle and other vendors based on your requirements, features of products and costs. A few examples are OWSM, Oracle EM, CA Wily etc. -
The execution of PREPARE/INIT/PREPARE_JSPM_QUEUE ended in error.
Hello,
We are updating our system Netweaver 7.0 to enhancement package 1. Our system is an ABAP + JAVA system. We are on phase PREPARE and we cannot continue because the following error appears:
"Trouble Ticket Report
Installation of enhancement package 1 for SAP NetWeaver 7.0
SID................: BWD
Hostname...........: gesbfs10
Install directory..: /usr/sap/BWD
Upgrade directory..: /EHP_BWD/EHPI/java
Database...........: Oracle
Operating System...: UNIX
JDK version........: 1.5.0_12 SAP AG
SAPJup version.....: 3.2.2
Source release.....: 700
Target release.....: 700
Start release SP...: $(/J2EE/StandardSystem/SPLevel)
Target release SP..: $(/J2EE/ShadowSystem/SPLevel)
Current usages.....:
ABAP stack present.: true
The execution of PREPARE/INIT/PREPARE_JSPM_QUEUE ended in error.
JSPM could not log in to the Java server with user j2ee_admin. Probably the server is not running or the provided credentials are not correct.
Forcemode enabled
JSPM version is 7.01.5.0.20. Current JSPM log directory is /usr/sap/BWD/DVEBMGS06/j2ee/JSPM/log/log_2009_11_06_13_24_06.
Could not get NWDI system role from CVERS.
com.sap.sl.util.cvers.api.CVersAccessException: CMSRTS, getModifiedComponents: unknown DB schema, can not write data
More information can be found in the log file /EHP_BWD/EHPI/java/log/PREPARE_JSPM_QUEUE_CSZ_01.LOG.
Use the information provided to trouble-shoot the problem. There might be an OSS note providing a solution to this problem. Search for OSS notes with the fol
lowing search terms:
com.sap.sdt.j2ee.phases.PhaseTypePrepareJSPMQueue
com.sap.sdt.sapjup.tools.sapjupjspm.JSPMRapiException
JSPM could not log in to the Java server with user j2ee_admin. Probably the server is not running or the provided credentials are not correct.
PREPARE_JSPM_QUEUE
INIT
NetWeaver Enhancement Package Installation
SAPJup
Java Enhancement Package Installation"
How could we fix this error?
Thanks.Hi,
> SID................: BWD
> Hostname...........: gesbfs10
> Install directory..: /usr/sap/BWD
> Upgrade directory..: /EHP_BWD/EHPI/java
> Database...........: Oracle
> Operating System...: UNIX
> JDK version........: 1.5.0_12 SAP AG
Java 1.5 is not supported by SAP. Check SAP note 723909. Change it to Java 1.4.
> JSPM could not log in to the Java server with user j2ee_admin. Probably the server is not running or the provided credentials are not correct.
> Forcemode enabled
> JSPM version is 7.01.5.0.20. Current JSPM log directory is /usr/sap/BWD/DVEBMGS06/j2ee/JSPM/log/log_2009_11_06_13_24_06.
> Could not get NWDI system role from CVERS.
> com.sap.sl.util.cvers.api.CVersAccessException: CMSRTS, getModifiedComponents: unknown DB schema, can not write >data
Is this a NWDI system ?
Thanks
Sunny -
My Iphone 4 just updated to the iOS6. I've connected it to my computer for the first time since then, and wanted to back up my photos in iPhoto. However, although Iphoto recognized my phone, it shows no photos to upload or backup. It lists my phone in the "devices" category on the left bar, but no longer shows any of my photos.
Does anyone have any suggestions?I've reread your question several times and am not sure I understand it.
Are you trying to basically start over, as if you just took your iPhone out of the box? If so, do:
Settings > General > Reset > Erase all content and settings -
How to get the execution time of a Discoverer Report from qpp_stats table
Hello
by reading some threads on this forum I became aware of the information stored in eul5_qpp_stats table. I would like to know if I can use this table to determine the execution time of a worksheet. In particular it looks like the field qs_act_elap_time stores the actual elapsed time of each execution of specific worksheet: am I correct? If so, how is this value computed? What's the unit of measure? I assume it's seconds, but then I've seen that sometimes I get numbers with decimals.
For example I ran a worksheet and it took more than an hour to run, and the value I get in the qs_act_elap_time column is 2218.313.
Assuming the unit of measure was seconds than it would mean approx 37 mins. Is that the actual execution time of the query on the database? I guess the actual execution time on my Discoverer client was longer since some calculations were performed at the client level and not on the database.
I would really appreciate if you could shed some light on this topic.
Thanks and regards
GiovanniThanks a lot Rod for your prompt reply.
I agree with you about the accuracy of the data. Are you aware of any other way to track the execution times of Discoverer reports?
Thanks
Giovanni -
How to find out the execution time of a sql inside a function
Hi All,
I am writing one function. There is only one IN parameter. In that parameter, i will pass one SQL select statement. And I want the function to return the exact execution time of that SQL statement.
CREATE OR REPLACE FUNCTION function_name (p_sql IN VARCHAR2)
RETURN NUMBER
IS
exec_time NUMBER;
BEGIN
--Calculate the execution time for the incoming sql statement.
RETURN exec_time;
END function_name;
/Please note that wrapping query in a "SELECT COUNT(*) FROM (<query>)" doesn't necessarily reflect the execution time of the stand-alone query because the optimizer is smart and might choose a completely different execution plan for that query.
A simple test case shows the potential difference of work performed by the database:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
Session altered.
SQL>
SQL> drop table count_test purge;
Table dropped.
Elapsed: 00:00:00.17
SQL>
SQL> create table count_test as select * from all_objects;
Table created.
Elapsed: 00:00:02.56
SQL>
SQL> alter table count_test add constraint pk_count_test primary key (object_id)
Table altered.
Elapsed: 00:00:00.04
SQL>
SQL> exec dbms_stats.gather_table_stats(ownname=>null, tabname=>'COUNT_TEST')
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.29
SQL>
SQL> set autotrace traceonly
SQL>
SQL> select * from count_test;
5326 rows selected.
Elapsed: 00:00:00.10
Execution Plan
Plan hash value: 3690877688
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 5326 | 431K| 23 (5)| 00:00:01 |
| 1 | TABLE ACCESS FULL| COUNT_TEST | 5326 | 431K| 23 (5)| 00:00:01 |
Statistics
1 recursive calls
0 db block gets
419 consistent gets
0 physical reads
0 redo size
242637 bytes sent via SQL*Net to client
4285 bytes received via SQL*Net from client
357 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
5326 rows processed
SQL>
SQL> select count(*) from (select * from count_test);
Elapsed: 00:00:00.00
Execution Plan
Plan hash value: 572193338
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 5 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | INDEX FAST FULL SCAN| PK_COUNT_TEST | 5326 | 5 (0)| 00:00:01 |
Statistics
1 recursive calls
0 db block gets
16 consistent gets
0 physical reads
0 redo size
412 bytes sent via SQL*Net to client
380 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL>As you can see the number of blocks processed (consistent gets) is quite different. You need to actually fetch all records, e.g. using a PL/SQL block on the server to find out how long it takes to process the query, but that's not that easy if you want to have an arbitrary query string as input.
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle:
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
get error message that skype has problem loading when computer is turned on the first time every day. this started when the latest firefox v6.0 was downloaded.
''mbratlie [[#question-1055011|said]]''
<blockquote>
It was working fine and I had no problems, and then one day I tried opening a window and it froze. When I tried quiting the program my whole window went black. The x to the close the window doesn't work. The only option I have in my tool bar is Firefox and nothing happens when I try to quit firefox. Every time I try to shut down my computer Firefox prevents it. I haven't updated Firefox yet, so it's an older program, but only by a month or two. What's going on and how do I fix it?
</blockquote>
This is the first time it's ever happened. I downloaded the new operating system for Firefox but I can't install it until the Firefox currently running on my laptop quits, which it won't. -
How to extend the execution time of an ABAP Program using the Process chain
Hello Sapians,
Our Environment has got 600seconds = 10 mintues as the execution time.
My ABAP Program is taking more than this 600 seconds, to show the result, I found this when I tried to execute in debug mode, it shows the result.
If I execute in background also it shows the results succesfully.
Only issue is when I execute this report in foreground it has been taking ages and goes on Time OUT Error.
It has been decided that we can extend the execution time only for this report, and it will reset the time back to 10mintues once the report has been executed successfully or failed in between for any other reasons.
And we can achieve this by using the process chains.
Can any body help me please in this regard
Thanks,Hi,,,,,,,,,,
Besides Process Chain There is another way out for this........
Resetting time counter of dialog process so that time-out does not
happen. Use this fm within your program at appropriate locations to
reset time counter.
"CALL FUNCTION 'TH_REDISPATCH'."
Thanks
Saurabh -
Why the execution time increases with a while loop, but not with "Run continuously" ?
Hi all,
I have a serious time problem that I don't know how to solve because I don't know exactly where it comes from.
I command two RF switches via a DAQ card (NI USB-6008). Only one position at the same time can be selected on each switch. Basically, the VI created for this functionnality (by a co-worker) resets all the DAQ outputs, and then activates the desired ones. It has three inputs, two simp0le string controls, and an array of cluster, which contains the list of all the outputs and some informations to know what is connected (specific to my application).
I use this VI in a complex application, and I get some problems with the execution time, which increased each time I callled the VI, so I made a test VI (TimeTesting.vi) to figure out where the problem came from. In this special VI I record the execution time in a csv file to analyse then with excel.
After several tests, I found that if I run this test VI with the while loop, the execution time increases at each cycle, but if I remove the while loop and use the "Run continuously" funtionnality, the execution time remains the same. In my top level application I have while loops and events, and so the execution time increases too.
Could someone explain me why the execution time increases, and how can I avoid that? I attached my test VI and the necessary subVIs, as well as a picture of a graph which shows the execution time with a while loop and with the "run continuously".
Thanks a lot for your help!
Solved!
Go to Solution.
Attachments:
TimeTesting.zip 70 KB
Graph.PNG 20 KBjul7290 wrote:
Thank you very much for your help! I added the "Clear task" vi and now it works properly.
If you are still using the RUn Continuously you should stop. That is meant strictly for debugging. In fact, I can't even tell you the last time I ever used it. If you want your code to repeat you should use loops and control the behavior of the code.
Mark Yedinak
"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot -
Reduce the execution time for the below query
Hi,
Please help me to reduce the execution time on the following query .. if any tuning is possible.
I have a table A with the columns :
ID , ORG_LINEAGE , INCLUDE_IND ( -- the org lineage is a string of ID's. If ID 5 reports to 4 and 4 to 1 .. the lineage for 5 will be stored as the string -1-4-5)
Below is the query ..
select ID
from A a
where INCLUDE_IND = '1' and
exists (
select 1
from A b
where b.ID = '5'
and b.ORG_LINEAGE like '%-'||a.ID||'-%'
order by ORG_LINEAGE;
The only constraint on the table A is the primary key on the ID column.
Following will be the execution plan :
Execution Plan
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=406 Card=379 Bytes=2
653)
1 0 SORT (ORDER BY) (Cost=27 Card=379 Bytes=2653)
2 1 FILTER
3 2 TABLE ACCESS (FULL) OF 'A' (Cost=24 Card
=379 Bytes=2653)
4 2 TABLE ACCESS (BY INDEX ROWID) OF 'A' (Co
st=1 Card=1 Bytes=6)
5 4 INDEX (RANGE SCAN) OF 'ORG_LINEAGE'
(NON-UNIQUE)I order it by the org_lineage to get the first person. So it is a result problem? The order by doesn't give you the first person, it gives you a sorted result set (of which there may be zero, one, or thousands).
If you only want one row from that, then you're spending a lot of time tuning the wrong query.
How do you know which ORG_LINEAGE row you want?
Maybe it would help if you posted some sample data. -
Execution time in minutes and seconds
In the UUT Report, the Execution Time displays in seconds. How can I get that to display in minutes and seconds.
I'm just now getting to this, and I've decided to address this in the reportgen_html.seq. In the step labelled "Add Execution Time", the expression reads,
Locals.Header += "<TR><TD NOWRAP='NOWRAP'><B><LI>" + ResStr("MODEL", "RPT_HEADER_EXEC_TIME") + "</B><TD><B>" + (PropertyExists("Parameters.MainSequenceResults.TS.TotalTime") ? Str(Parameters.MainSequenceResults.TS.TotalTime, Parameters.ReportOptions.NumericFormat , 1, True) + ResStr("MODEL", "RPT_HEADER_SECONDS") : ResStr("MODEL", "RPT_NOT_APPLICABLE")) + "</B>\n"
I found the RPT_HEADER_SECONDS constant and changed it to _MINUTES and changed the string. I divided the Parameters.MainSequenceResults.TS.TotalTime by 60, and this all seems to work. The only thing that's not working is that I'm updating the Parameters.ReportOptions.NumericFormat, and no matter what I do it keeps showing me 13 decimal points.
The Parameters.ReportOptions.NumericFormat is set to %$.13f (but I've tried several variations).
I just want it to display something like 21.63 minutes. Also, what is the $ doing in that expression -
TO REDUCE THE EXECUTION TIME OF REPORT
HI,
CAN ANYONE TELL ME THAT, HOW CAN I REDUCE THE EXECUTION TIME OF THE REPORT. IS THERE ANY IDEA TO IMPROVE THE PERFORMANCE OF THE REPORT.Hi Santosh,
Good check out the following documentation
<b>Performance tuning</b>
For all entries
Nested selects
Select using JOINS
Use the selection criteria
Use the aggregated functions
Select with view
Select with index support
Select Into table
Select with selection list
Key access to multiple lines
Copying internal tables
Modifying a set of lines
Deleting a sequence of lines
Linear search vs. binary
Comparison of internal tables
Modify selected components
Appending two internal tables
Deleting a set of lines
Tools available in SAP to pin-point a performance problem
<b>Optimizing the load of the database</b>
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)
Some steps that might make FOR ALL ENTRIES more efficient:
Removing duplicates from the the driver table
Sorting the driver table
If possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement:
FOR ALL ENTRIES IN i_tab
WHERE mykey >= i_tab-low and
mykey <= i_tab-high.
Nested selects
The plus:
Small amount of data
Mixing processing and reading of data
Easy to code - and understand
The minus:
Large amount of data
when mixed processing isnt needed
Performance killer no. 1
Select using JOINS
The plus
Very large amount of data
Similar to Nested selects - when the accesses are planned by the programmer
In some cases the fastest
Not so memory critical
The minus
Very difficult to program/understand
Mixing processing and reading of data not possible
Use the selection criteria
SELECT * FROM SBOOK.
CHECK: SBOOK-CARRID = 'LH' AND
SBOOK-CONNID = '0400'.
ENDSELECT.
SELECT * FROM SBOOK
WHERE CARRID = 'LH' AND
CONNID = '0400'.
ENDSELECT.
Use the aggregated functions
C4A = '000'.
SELECT * FROM T100
WHERE SPRSL = 'D' AND
ARBGB = '00'.
CHECK: T100-MSGNR > C4A.
C4A = T100-MSGNR.
ENDSELECT.
SELECT MAX( MSGNR ) FROM T100 INTO C4A
WHERE SPRSL = 'D' AND
ARBGB = '00'.
Select with view
SELECT * FROM DD01L
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
SELECT SINGLE * FROM DD01T
WHERE DOMNAME = DD01L-DOMNAME
AND AS4LOCAL = 'A'
AND AS4VERS = DD01L-AS4VERS
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
SELECT * FROM DD01V
WHERE DOMNAME LIKE 'CHAR%'
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
Select with index support
SELECT * FROM T100
WHERE ARBGB = '00'
AND MSGNR = '999'.
ENDSELECT.
SELECT * FROM T002.
SELECT * FROM T100
WHERE SPRSL = T002-SPRAS
AND ARBGB = '00'
AND MSGNR = '999'.
ENDSELECT.
ENDSELECT.
Select Into table
REFRESH X006.
SELECT * FROM T006 INTO X006.
APPEND X006.
ENDSELECT
SELECT * FROM T006 INTO TABLE X006.
Select with selection list
SELECT * FROM DD01L
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
ENDSELECT
SELECT DOMNAME FROM DD01L
INTO DD01L-DOMNAME
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
ENDSELECT
Key access to multiple lines
LOOP AT TAB.
CHECK TAB-K = KVAL.
ENDLOOP.
LOOP AT TAB WHERE K = KVAL.
ENDLOOP.
Copying internal tables
REFRESH TAB_DEST.
LOOP AT TAB_SRC INTO TAB_DEST.
APPEND TAB_DEST.
ENDLOOP.
TAB_DEST[] = TAB_SRC[].
Modifying a set of lines
LOOP AT TAB.
IF TAB-FLAG IS INITIAL.
TAB-FLAG = 'X'.
ENDIF.
MODIFY TAB.
ENDLOOP.
TAB-FLAG = 'X'.
MODIFY TAB TRANSPORTING FLAG
WHERE FLAG IS INITIAL.
Deleting a sequence of lines
DO 101 TIMES.
DELETE TAB_DEST INDEX 450.
ENDDO.
DELETE TAB_DEST FROM 450 TO 550.
Linear search vs. binary
READ TABLE TAB WITH KEY K = 'X'.
READ TABLE TAB WITH KEY K = 'X' BINARY SEARCH.
Comparison of internal tables
DESCRIBE TABLE: TAB1 LINES L1,
TAB2 LINES L2.
IF L1 <> L2.
TAB_DIFFERENT = 'X'.
ELSE.
TAB_DIFFERENT = SPACE.
LOOP AT TAB1.
READ TABLE TAB2 INDEX SY-TABIX.
IF TAB1 <> TAB2.
TAB_DIFFERENT = 'X'. EXIT.
ENDIF.
ENDLOOP.
ENDIF.
IF TAB_DIFFERENT = SPACE.
ENDIF.
IF TAB1[] = TAB2[].
ENDIF.
Modify selected components
LOOP AT TAB.
TAB-DATE = SY-DATUM.
MODIFY TAB.
ENDLOOP.
WA-DATE = SY-DATUM.
LOOP AT TAB.
MODIFY TAB FROM WA TRANSPORTING DATE.
ENDLOOP.
Appending two internal tables
LOOP AT TAB_SRC.
APPEND TAB_SRC TO TAB_DEST.
ENDLOOP
APPEND LINES OF TAB_SRC TO TAB_DEST.
Deleting a set of lines
LOOP AT TAB_DEST WHERE K = KVAL.
DELETE TAB_DEST.
ENDLOOP
DELETE TAB_DEST WHERE K = KVAL.
Tools available in SAP to pin-point a performance problem
The runtime analysis (SE30)
SQL Trace (ST05)
Tips and Tricks tool
The performance database
Optimizing the load of the database
Using table buffering
Using buffered tables improves the performance considerably. Note that in some cases a stament can not be used with a buffered table, so when using these staments the buffer will be bypassed. These staments are:
Select DISTINCT
ORDER BY / GROUP BY / HAVING clause
Any WHERE clasuse that contains a subquery or IS NULL expression
JOIN s
A SELECT... FOR UPDATE
If you wnat to explicitly bypass the bufer, use the BYPASS BUFFER addition to the SELECR clause.
Use the ABAP SORT Clause Instead of ORDER BY
The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The datbase server will usually be the bottleneck, so sometimes it is better to move thje sort from the datsbase server to the application server.
If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement) but are sorting by another key, it could be better to use the ABAP SORT stament to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the datbase server sort it.
Avoid ther SELECT DISTINCT Statement
As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplciate rows.
Good Luck and thanks
AK -
Do the execution time of the insert command depend upon the no the indexes
hi,
Do the execution time of the insert,update and delete command depend upon the no the indexes created for a table......
Edited by: [email protected] on Mar 4, 2009 3:02 AMsure,..
An index is a structure which contains entries pointing to the actual data in the table.
When you insert a record into a table, the data which should also be indexed is inserted in the index structure. This index data needs to be in a specific place, not just anywhere (as opposed to e.g. a heap table).
So this might lead to an update and insert in the index structure.
This is just to give you an idea. More on the subject in Tom Kyte's Expert Oracle Database Architecture and of course Oracle's documentation.
Maybe you are looking for
-
Itunes absolutely will not work
i upgraded itunes, which caused it to stop working...i have uninstalled, reinstalled, system restored, tried everything. i just want my itunes back working. please help me in resolving this issue. i am running norton antivirus 2006 if this makes any
-
Tax And pricing not calculating automatically on Purchase Order
Hi All, While creating a Purchase order the Taxes are not calculating automatically .We need to manually enter the Tax on the Purchase order .The quantity conversion is not flowing properly so it is effecting the invoice receipt (not distributing the
-
PSA Deletion variant in Process chain
When I add more than one PSA tables in one process step of Process chain would the deletion happen sequentially or parallelly? In other words, if I have some 20 PSA tables to be deleted, can I put all of them in one step or should I put them in diffe
-
Summing up numbers to a whole number
Hello everyone, I have this really weird requirement for a payroll implementation I am working on. The client doesn't want any decimal places in payroll results. But the problem comes when you have proration. Oracle hrms has certain events with trigg
-
Resource filter is not working on 'Timesheet Adjustment' page. in project server 2013
Environment : Project Server 2013 In Time-sheet approval page, Time sheet manager unable to filter the resource time-sheet. In time-sheet adjustment page time-sheet manager unable to filter the data as per resource. Please help to resolve the issue.