Diffrence between assign a String object by literal and through new
Plz tell me
What is the diffrence between
String x = "surya";
or
String y = new String("Surya");
Plz tell me
What is the diffrence between
String x = "surya";
or
String y = new String("Surya");When String x = "surya"; is compiled it is placed in the class's pool of strings. If the same string literal is found elsewhere in the class the same string litteral in the pool is reused ( this is possible since String is immutable ).
When you use the constructor in String to create the string, a whole new String instance is created. However, this causes extra memory allocation for no apparent advantage
Similar Messages
-
Difference Between assigning a task to a position and a job
Hi Friends
What is the difference between assigning the Task to a position and a Job ? Can we assign for both...Hi Ram,
Positions are generally derived from jobs.
Thus, common tasks of the positions that are deriven from the same job should be assigned to the job.
However, more specific tasks of positions are assigned directly to the position itself.
e.g. Engineer is a job and computer engineer is a position derived from it.
The tasks that are done commonly by all engineers are assigned to job (e.g. Solves problems)
However, tasks specific to computer engineer (e.g. Writes computer programs) is assigned to the position.
Hope its clear.
Best wishes,
Dilek -
Assigning of excess sequence to condition and adding New condition in Prici
Hi,
We have different pricing procedure for our baisc price present there is no excess sequence assign to it now as per our requirement i have created a new contion table and have assign that to a excess sequence I want to know is there any problem if i assign that Access sequence to conddition what can be the problem ,
and 2nd case
I want to create new condition what is the total process to assign that new condition to our exsiting pricing procedure.
regards,
zafarDear Friend,
there is no problem when you assign the access sequence to the condition at the time you are going to maintain the condition in MEK1 transaction it will ask the different combination
for example material /vendor combination, or material plant combination, or else what accesses your maintained for that access sequence it will ask
in the case of maintaining the conditions in the pricing procedure check the on what the value has to be calculated which step and which counter your assigning the condition based on that it will calculate the value for that condition
Regards
Pramod -
I have an older G4 Mac laptop that I use exclusively for playing music. Trouble is that it's limited to an older system and thus runs iTunes 4. Much of my music is on my newer machine which runs iTunes 11.x. I have made certain libraries available for sharing on my newer machine, but cannot see those libraries on the shared list on the older Mac. How do I get both machines to see each other. Note: they also do not see each other if I try to Go -> Connect to server -> Browse. However, they will connect if I type in the address (e.g. afp...) of the machine that I'm trying to connect to. Anyway, I'm hoping there's some soft of back compatability setting that I've overlooked.
rrThis article has the directions:
http://support.apple.com/kb/HT1203
The important steps for you are these
+To listen to another account's music files+
+Open iTunes.+
+From the iTunes menu, choose Preferences.+
+Click Advanced.+
+Deselect the "Copy files to iTunes Music folder when adding to library file" option.+
+Click OK.+
+From the File menu, choose Add File to Library.+
+Note: Windows users can also choose Add Folder to Library to add a folder of songs.+
+Navigate in the Add File To Library window to the location where the other user's music is saved (the iTunes Music folder in the case above).+
+Click Open.+
+Repeat these steps for each account that is listening to shared music.+
+When another user of the computer has imported new music from CD, repeat steps 6 through 8 to add the music to your library.+ -
Diffrence between the ALE , EDI , LSMW
HI
what is diffrence between the ALE , EDI , LSMW
regards
shivajiPls go through the links
http://expertanswercenter.techtarget.com/eac/knowledgebaseAnswer/0,295199,sid63_gci983331,00.html
http://help.sap.com/saphelp_nw2004s/helpdata/en/6f/1bd5bea85b11d6b28500508b5d5211/content.htm
http://eai.ittoolbox.com/groups/technical-functional/seebeyond-l/ale-vs-edi-format-when-sending-idocs-to-sap-via-trfc-1709320
LSMW - Using a BAPI
Reward if it helps. -
When I place images in iBook Author, they are automatically assigned these properties: "Object Causes Wrap" and a "Picture Frame" stroke.
I don't want that and couldn't find where can I change it in the Preferences. Anyone has an idea?I've sent a feature request for a new version of Author:
When I place images in iBook Author, they are automatically assigned these properties: "Object Causes Wrap" and a "Picture Frame" stroke.
It would be great if I could be able to change it in the Preferences to "No wrap" and "No Frame" so I don't have to manually adjust every single image of my book - there are lots of them.
It would be really nice if Author implements "Layer's" concept like almost all graphic programs like Photoshop, Flash, Illustrator, etc. -
What is the diffrence between BAPI and RFC and business object
Hi Experts,
Can anybody tel me what is the diffrence between RFC and BAPI , and also what is ther relation with business object?
Thanx in advance.
Nilesh HiwaleHi,
BAPI's are associated with Business Objects and also they are RFC enabled.
But RFC's are the FM's which can be called from external systems, those FM's can be used in many places based on the applications..
Check these Links
whats the difference between BAPI and RFC??
Diff. Between BAPI and RFC
Regards
Kiran -
What is the diffrence between extends and creating new object?
HI ALL,
what is the diffrence between extends and creating new object?
meaning
class base{
class derived extends base{
class base{
class derived {
derived(){
base var = new base();
can u people tell me diffence from the above examples.
THANKS.
ANANDAWhen you create a new object you have to supply the class to which that
object belongs. A class can extend from another class. If it does so
explicitly you can define the 'parent' class from which the class extends.
If you don't explicitly mention anything, the class will implicitly extend
from the absolute base class named 'Object'.
Your example is a bit convoluted: when you create a Derived object,
its constructor creates another object, i.e. an object from the class from
which the Derived class extends.
Extending from a class and creating an object don't have much in common.
kind regards,
Jos -
How many java String objects are created in string literal pool by executin
How many java String objects are created in string literal pool by executing following five lines of code.
String str = "Java";
str = str.concat(" Beans ");
str = str.trim();
String str1 = "abc";
String str2 = new String("abc").intern();
Kindly explain thanks in advance
Senthilvirtuoso. wrote:
jverd wrote:
In Java all instances are kept on the heap. The "String literal pool" is no exception. It doesn't hold instances. It holds references to String objects on the heap.Um, no.
The literal pool is part of the heap, and it holds String instances.
[http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#22972]
[http://java.sun.com/docs/books/jvms/second_edition/html/ConstantPool.doc.html#67960]
You're referring to the JVM. That's not Java.It's part of Java.
There is nowhere in Java where it is correct to say "The string literal pool holds references, not String objects." -
String object vs String literal
Hi ,
I understand how the string objects are created using new operator and using literal.I also understand how they are stored in memory.All I want to know is that when and why should I create a String object using new and when I should create an object using literal.Is there any specific reason for creating an object using new operator when objects created by both the ways are immutable.
Thanks for the help in advance.
Thanks
MouliIf you look at the String source code (particularly the constructors) youll learn a lot.
String objects contain a char[] array - and this is the most important part --> a start and length value.
I believe they were attempting to optimize, but this has important implications for developers.
String objects dont necessarily store just the text you see, it may just reference a much bigger char array.
For example, say an API passes you a string that is (lets pretend) a file path (C:\files\java\...\file.txt) that is 1,000,000 characters long.
Now say that you call getFileName() and want to save the filename in a list.
String filename = API.getFile("...").getFileName();
List.add(filename);
Say you do this about 250,000 times.
You estimate that the average file name is 10 chars and ensure there is that much RAM.
You run out of memory. Why?
Well, this example actually happened to me in a real program I was writing to archive drive files.
File.getFilename() returns a substring() of the entire File path.
However, substring is implemented to return a String that just references the original char[] array!
So the really long file path never gets garbage collected!
I was able to fix the program by coding it:
String filename = new String(API.getFile("...").getFileName()); // Copies only the needed chars!
List.add(filename);
So thats really all you need to watch out for. If memory is a concern in your program you want to
make sure you arent referencing large char[] arrays unnecessarily.
But like all things, this is rarely anything to give much thought to.
Only something to remember if you run into problems after coding sensibly and profiling
(or in my case, crashing with OOM exceptions, lol). -
Diffrence between cpu and elapse time in tkprof
Hi All
i found huge diffrence between cpu and elapsed time in tkprof. can you please advice me on this issue.
>call count cpu elapsed disk query current rows
==================================================
Parse 1 0.12 1.36 2 11 0 0
Execute 1 14.30 720.20 46548 190520 205 100
Fetch 0 0.00 0.00 0 0 0 0
======================================================
total 2 14.42 721.56 46550 190531 205 100
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 173 (recursive depth: 1)
Elapsed times include waiting on following events:
Event waited on Times waited Max. Wait Total Waited
===========================================
db file sequential read 46544 0.49 632.12
db file scattered read 1 0.00 0.00
my select statement
SELECT cst.customer_id> ,DECODE(COUNT(cr.deposit_date), 0, 0, ROUND(SUM(cr.deposit_date - ps.trx_date) / COUNT(cr.deposit_date))) avgdays
> ,DECODE(COUNT(cr.deposit_date), 0, 0, ROUND(SUM(cr.deposit_date - ps.due_date) / COUNT(cr.deposit_date))) avgdayslate
> ,NVL(SUM(DECODE(SIGN(cr.deposit_date - ps.due_date),1, 1, 0)), 0) newlate
> ,NVL(SUM( DECODE(SIGN(cr.deposit_date - ps.due_date),1, 0, 1)), 0) newontime
>
> FROM ar_receivable_applications_all ra
> ,ar_cash_receipts_all cr
> ,ar_payment_schedules_all ps
> ,zz_ar_customer_summary_all cst
> WHERE ra.cash_receipt_id = cr.cash_receipt_id
> AND ra.apply_date BETWEEN ADD_MONTHS(SYSDATE, -12) AND SYSDATE
> AND ra.status = 'APP'
> AND ra.display = 'Y'
> AND ra.applied_payment_schedule_id = ps.payment_schedule_id
> AND ps.customer_id = cst.customer_id
> AND NVL(ps.receipt_confirmed_flag,'Y') = 'Y'
> group by cst.customer_id ;
Thanks,
Anuuser653066 wrote:
Hi All
i found huge diffrence between cpu and elapsed time in tkprof. can you please advice me on this issue.
call count cpu elapsed disk query current rows
================================================================================
Parse 1 0.12 1.36 2 11 0 0
Execute 1 14.30 720.20 46548 190520 205 100
Fetch 0 0.00 0.00 0 0 0 0
================================================================================
total 2 14.42 721.56 46550 190531 205 100
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 173 (recursive depth: 1)
Elapsed times include waiting on following events:
Event waited on Times waited Max. Wait Total Waited
===========================================================================
db file sequential read 46544 0.49 632.12
db file scattered read 1 0.00 0.00
SELECT cst.customer_id
,DECODE(COUNT(cr.deposit_date), 0, 0, ROUND(SUM(cr.deposit_date - ps.trx_date) / COUNT(cr.deposit_date))) avgdays
,DECODE(COUNT(cr.deposit_date), 0, 0, ROUND(SUM(cr.deposit_date - ps.due_date) / COUNT(cr.deposit_date))) avgdayslate
,NVL(SUM(DECODE(SIGN(cr.deposit_date - ps.due_date),1, 1, 0)), 0) newlate
,NVL(SUM( DECODE(SIGN(cr.deposit_date - ps.due_date),1, 0, 1)), 0) newontime
FROM ar_receivable_applications_all ra
,ar_cash_receipts_all cr
,ar_payment_schedules_all ps
,zz_ar_customer_summary_all cst
WHERE ra.cash_receipt_id = cr.cash_receipt_id
AND ra.apply_date BETWEEN ADD_MONTHS(SYSDATE, -12) AND SYSDATE
AND ra.status = 'APP'
AND ra.display = 'Y'
AND ra.applied_payment_schedule_id = ps.payment_schedule_id
AND ps.customer_id = cst.customer_id
AND NVL(ps.receipt_confirmed_flag,'Y') = 'Y'
group by cst.customer_id ; Toon Koppelaars seems to have pinpointed the problem. Where are the 74 seconds unaccounted for seconds (I might have calculated it incorrectly, but I arrived at 88.08 seconds of unaccounted for time: 721.56 total - 1.36 parse - 632.12 db file sequential reads)?
It is interesting that the maximum wait for a single block read reported by TKPROF is 0.49 seconds - this might be an indication of excessive competition for the server's CPU - processes are waiting in the CPU run queue, and therefore not on the CPU. As Toon indicated, 632.12 of the 721.56 seconds were spent waiting for single block reads to complete with 46,544 blocks read. Note also that the query executed at dep=1, and TKPROF may be providing misleading information about what actually happened during those executions. An example of misleading information:
CREATE TABLE T11 (
C1 NUMBER,
C2 VARCHAR2(30));
CREATE TABLE T12 (
C1 NUMBER,
C2 VARCHAR2(30));
CREATE TABLE T13 (
C1 NUMBER,
C2 VARCHAR2(30));
CREATE TABLE T14 (
C1 NUMBER,
C2 VARCHAR2(30));
CREATE OR REPLACE TRIGGER HPM_T11 AFTER
INSERT OR DELETE OR UPDATE OF C1 ON T11
REFERENCING OLD AS OLDDATA NEW AS NEWDATA FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO T12
SELECT
ROWNUM,
DBMS_RANDOM.STRING('A',25)
FROM
DUAL
CONNECT BY
LEVEL <= 100;
END IF;
END;
CREATE OR REPLACE TRIGGER HPM_T12 AFTER
INSERT OR DELETE OR UPDATE OF C1 ON T12
REFERENCING OLD AS OLDDATA NEW AS NEWDATA FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO T13
SELECT
ROWNUM,
DBMS_RANDOM.STRING('A',25)
FROM
DUAL
CONNECT BY
LEVEL <= 100;
END IF;
END;
CREATE OR REPLACE TRIGGER HPM_T13 AFTER
INSERT OR DELETE OR UPDATE OF C1 ON T13
REFERENCING OLD AS OLDDATA NEW AS NEWDATA FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO T14
SELECT
ROWNUM,
DBMS_RANDOM.STRING('A',25)
FROM
DUAL
CONNECT BY
LEVEL <= 100;
END IF;
END;
ALTER SESSION SET TRACEFILE_IDENTIFIER = 'MY_TEST_FIND_ME2';
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 8';
SET TIMING ON
INSERT INTO T11 VALUES (1,'MY LITTLE TEST CASE');
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF';The partial TKPROF output:
INSERT INTO T11
VALUES
(1,'MY LITTLE TEST CASE')
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 8 0 0
Execute 1 0.00 0.00 0 9788 29 1
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.00 0 9796 29 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 56
Rows Row Source Operation
0 LOAD TABLE CONVENTIONAL (cr=9788 pr=7 pw=0 time=0 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
SQL ID : 6asaf110fgaqg
INSERT INTO T12 SELECT ROWNUM, DBMS_RANDOM.STRING('A',25) FROM DUAL CONNECT
BY LEVEL <= 100
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.04 0.09 0 2 130 100
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.04 0.09 0 2 130 100
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 56 (recursive depth: 1)
Rows Row Source Operation
0 LOAD TABLE CONVENTIONAL (cr=9754 pr=7 pw=0 time=0 us)
100 COUNT (cr=0 pr=0 pw=0 time=0 us)
100 CONNECT BY WITHOUT FILTERING (cr=0 pr=0 pw=0 time=0 us)
1 FAST DUAL (cr=0 pr=0 pw=0 time=0 us cost=2 size=0 card=1)
SQL ID : db46bkvy509w4
INSERT INTO T13 SELECT ROWNUM, DBMS_RANDOM.STRING('A',25) FROM DUAL CONNECT
BY LEVEL <= 100
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 100 1.31 1.27 0 93 10634 10000
Fetch 0 0.00 0.00 0 0 0 0
total 101 1.31 1.27 0 93 10634 10000
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 56 (recursive depth: 2)
Rows Row Source Operation
0 LOAD TABLE CONVENTIONAL (cr=164 pr=0 pw=0 time=0 us)
100 COUNT (cr=0 pr=0 pw=0 time=0 us)
100 CONNECT BY WITHOUT FILTERING (cr=0 pr=0 pw=0 time=0 us)
1 FAST DUAL (cr=0 pr=0 pw=0 time=0 us cost=2 size=0 card=1)
SQL ID : 6542yyk084rpu
INSERT INTO T14 SELECT ROWNUM, DBMS_RANDOM.STRING('A',25) FROM DUAL CONNECT
BY LEVEL <= 100
call count cpu elapsed disk query current rows
Parse 2 0.00 0.00 0 0 0 0
Execute 10001 41.60 41.84 0 8961 52859 1000000
Fetch 0 0.00 0.00 0 0 0 0
total 10003 41.60 41.84 0 8961 52859 1000000
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 56 (recursive depth: 3)
Rows Row Source Operation
0 LOAD TABLE CONVENTIONAL (cr=2 pr=0 pw=0 time=0 us)
100 COUNT (cr=0 pr=0 pw=0 time=0 us)
100 CONNECT BY WITHOUT FILTERING (cr=0 pr=0 pw=0 time=0 us)
1 FAST DUAL (cr=0 pr=0 pw=0 time=0 us cost=2 size=0 card=1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
log file switch completion 2 0.07 0.07
********************************************************************************In the above note that the "INSERT INTO T11" is reported as completing in 0 seconds, but it actually required roughly 42 seconds - and that would be visible by manually reviewing the resulting trace file. Also note that the log file switch completion wait was not reported for the "INSERT INTO T11" even though it impacted the execution time.
Back to the possibility of CPU starvation causing lost time. Another test with an otherwise idle server, followed by a second test with the same server having 240 other processes fighting for CPU resources (a simulated load).
ALTER SYSTEM FLUSH BUFFER_CACHE;
ALTER SESSION SET TRACEFILE_IDENTIFIER = 'MY_TEST_QUERY_NO_LOAD';
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 8';
SET TIMING ON
SELECT
COUNT(*)
FROM
T14;
SELECT
SYSDATE
FROM
DUAL;
SQL> SELECT
2 COUNT(*)
3 FROM
4 T14;
COUNT(*)
1000000
Elapsed: 00:00:01.37With no load the COUNT(*) completed in 1.37 seconds. The TKPROF output looks like this:
SQL ID : gy8nw9xzyg3bj
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
NVL(SUM(C2),:"SYS_B_1")
FROM
(SELECT /*+ NO_PARALLEL("T14") FULL("T14") NO_PARALLEL_INDEX("T14") */
:"SYS_B_2" AS C1, :"SYS_B_3" AS C2 FROM "T14" SAMPLE BLOCK (:"SYS_B_4" ,
:"SYS_B_5") SEED (:"SYS_B_6") "T14") SAMPLESUB
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.01 0.84 523 172 1 1
total 3 0.01 0.84 523 172 1 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 56 (recursive depth: 1)
Rows Row Source Operation
1 SORT AGGREGATE (cr=172 pr=523 pw=0 time=0 us)
8733 TABLE ACCESS SAMPLE T14 (cr=172 pr=523 pw=0 time=0 us cost=2 size=12 card=1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 3 0.02 0.04
db file parallel read 1 0.31 0.31
db file scattered read 52 0.03 0.47
SQL ID : 96g93hntrzjtr
select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt, timestamp#,
sample_size, minimum, maximum, distcnt, lowval, hival, density, col#,
spare1, spare2, avgcln
from
hist_head$ where obj#=:1 and intcol#=:2
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.06 2 2 0 0
total 3 0.00 0.06 2 2 0 0
Misses in library cache during parse: 0
Optimizer mode: RULE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
0 TABLE ACCESS BY INDEX ROWID HIST_HEAD$ (cr=2 pr=2 pw=0 time=0 us)
0 INDEX RANGE SCAN I_HH_OBJ#_INTCOL# (cr=2 pr=2 pw=0 time=0 us)(object id 413)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 2 0.02 0.04
SELECT
COUNT(*)
FROM
T14
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 1 1 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.03 0.43 6558 6983 0 1
total 4 0.03 0.44 6559 6984 0 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 56
Rows Row Source Operation
1 SORT AGGREGATE (cr=6983 pr=6558 pw=0 time=0 us)
1000000 TABLE ACCESS FULL T14 (cr=6983 pr=6558 pw=0 time=0 us cost=1916 size=0 card=976987)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.02 0.02
SQL*Net message to client 2 0.00 0.00
db file scattered read 111 0.02 0.38
SQL*Net message from client 2 0.00 0.00Note that TKPROF reported that it only required 0.44 seconds for the query to execute while the SQL*Plus timing indicate that it required 1.37 seconds for the SQL statement to execute. The SQL optimization (parse) with dynamic sampling query accounted for the remaining time, yet TKPROF provided no indication that this was the case.
Now the query with 240 other processes competing for CPU time:
ALTER SYSTEM FLUSH BUFFER_CACHE;
ALTER SESSION SET TRACEFILE_IDENTIFIER = 'MY_TEST_QUERY_WITH_LOAD';
SELECT COUNT(*) FROM T14;
SELECT
SYSDATE
FROM
DUAL;
SQL> SELECT COUNT(*) FROM T14;
COUNT(*)
1000000
Elapsed: 00:00:59.03The query this time required just over 59 seconds. The TKPROF output:
SQL ID : gy8nw9xzyg3bj
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
NVL(SUM(C2),:"SYS_B_1")
FROM
(SELECT /*+ NO_PARALLEL("T14") FULL("T14") NO_PARALLEL_INDEX("T14") */
:"SYS_B_2" AS C1, :"SYS_B_3" AS C2 FROM "T14" SAMPLE BLOCK (:"SYS_B_4" ,
:"SYS_B_5") SEED (:"SYS_B_6") "T14") SAMPLESUB
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.28 423 69 0 1
total 3 0.00 0.28 423 69 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 56 (recursive depth: 1)
Rows Row Source Operation
1 SORT AGGREGATE (cr=69 pr=423 pw=0 time=0 us)
8733 TABLE ACCESS SAMPLE T14 (cr=69 pr=423 pw=0 time=0 us cost=2 size=12 card=1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file scattered read 54 0.01 0.27
db file sequential read 2 0.00 0.00
SQL ID : 7h04kxpa13w1x
SELECT COUNT(*)
FROM
T14
call count cpu elapsed disk query current rows
Parse 1 0.00 0.03 1 1 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.06 58.71 6551 6983 0 1
total 4 0.06 58.74 6552 6984 0 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 56
Rows Row Source Operation
1 SORT AGGREGATE (cr=6983 pr=6551 pw=0 time=0 us)
1000000 TABLE ACCESS FULL T14 (cr=6983 pr=6551 pw=0 time=0 us cost=1916 size=0 card=976987)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.02 0.02
SQL*Net message to client 2 0.00 0.00
db file scattered read 110 1.54 58.59
SQL*Net message from client 1 0.00 0.00Note in the above that the max wait for the db file scattered read is 1.54 seconds due to the extra CPU competition - about 3 times longer than your max wait for a single block read. On your database platform with single block reads, it might be possible that the time in the CPU run queue is not always counted in the db file sequential read wait time or the CPU wait time - what if your operating system is slow at returning timing information to the database instance due to CPU saturation - this might explain the 74 (or 88) lost seconds.
Charles Hooper
IT Manager/Oracle DBA
K&M Machine-Fabricating, Inc.
Edited by: Charles Hooper on Aug 28, 2009 10:26 AM
Fixing formatting problems -
How many string objects - please suggest
Hi there,
Can you somebody please tell how many String objects will be created when the following method is invoked?
public String makinStrings() {
String s = Fred;
s = s + 47;
s = s.substring(2, 5);
s = s.toUpperCase();
return s.toString();
Thanks
ShanHi VShan,
This is your code
public String makinStrings() {
String s = Fred; //1
s = s + 47; //2
s = s.substring(2, 5);//3
s = s.toUpperCase(); //4
return s.toString(); //5
EXPLANATION : String is an immutable object, that means the String object cannot change it's contents.It might sound very unfamiliar but it is TRUE. In line 1: You declare a String object by assigning a a String literal "Fred" to the variable s. Now when you concat "47" with the original contents of s , a new memory space is allocated where s is assigned.+It is important to note+ that the previous reference of s i.e. "Fred" will be lost and now s refers to a new memory location where the contents are "Fred47" , so you have created another object in Line 2. Similarly you create another object in line3 & 4.As far my calculations you have created 4 objects.
I would like you to kindly note that s is already a String so you can directly return s and hence there is no need of s.toString() in Line 5.You should also note that each object is also an eligible candidate for Grabage Collection.
So as soon as Line2 gets executed , the object in Line1 becomes eligible for garbage collection.. that means when GC runs that object will be reclaimed and hence memory will be freed. -
Why r we allowed to create String objects with & without using new operator
While creating any object, usage of the new operator is a must...but only for the string object we can create it with and also without new operator how is it possible to create an object without using new operator.
Because Mr. (Dr.?) Gosling is a kindly soul who realizes that programmers have deadlines and, when he designed Java, was not so rigid or unbending as not to realize that from time to time, certain shortcuts are warranted, even in a relatively pure language such as Java. The direct String literal assignments are a shortcut over using the new operator making Java programming (and execution; there's also a performance benefit) more streamlined.
So look not the gift horse in the mouth, but simply bask in the simplification and ease on the eyes and directly assign your little literals to your heart's content. -
String s= new String("abc");
String s1="abc";Is there any performence issue between these two?
I think both will take same time to create objects.Yes, there is a performance implication.
When using the first line String s = new String("abc"); you are actually creating two objects. As a general rule, you should never use a String class constructor when initializing to a literal value. Even doing String s = new String("abc" + someVariable) is creating one more object than needed. "abc" is the firs object, the result of "abc" + someVariable is the second object, and the String created by the constructor is the third.
It should be noted most recent JVMs use some level of caching of String Literal value objects (I believe this goes as far back as JDK 1.3), such that "abc" is only be created once by the JVM (though I'm not sure if it will cache all literal String objects or use some type of LRU algorthm to discard some of them). Regardless, there is some level of efficiency you get from the JVM doing this. Thus if a method containing String s = "abc" is called repeatedly, a reference to the same String object should be used everytime; there will be no further creations of the object as long as the JVM keeps it in cache.
Using String s= new String("abc") will leverage the cached literal reference to "abc", but also creates a new instance of String to refer to the literal everytime your method is called. This is much less efficient.
Run the following code (I did it using JDK 6):
package org.einsteinium.samples;
public class StringTest {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
boolean equalMethodTest = s1.equals(s2);
System.out.println("Are the objects the same using the equals method? " + equalMethodTest);
boolean equalOperatorTest = (s1 == s2);
System.out.println("Are the objects the same using the equal operator? " + equalOperatorTest);
}It will print:
Are the objects the same using the equals method? true
Are the objects the same using the equal operator? trueNow if you re-write it to:
package org.einsteinium.samples;
public class StringTest {
public static void main(String[] args) {
String s1 = new String("abc");
String s2 = "abc";
boolean equalMethodTest = s1.equals(s2);
System.out.println("Are the objects the same using the equals method? " + equalMethodTest);
boolean equalOperatorTest = (s1 == s2);
System.out.println("Are the objects the same using the equal operator? " + equalOperatorTest);
}it will print:
Are the objects the same using the equals method? true
Are the objects the same using the equal operator? falseI hope this helps some. -
What is the diffrence between OMB plus command and OMB command
what is the diffrence between OMB plus command and OMB command?
are they both TCL command?Hi Alena,
Welcome to SDN.
Check this
EXIT in Loops and Modularization Units
Basic form
EXIT.
Effect
Within a loop structure:
Terminates looop processing (DO, WHILE, LOOP, SELECT).
Within subroutines and other modularization units (but not in a loop structure):
Leaves the subroutine or modularization unit (FORM, MODULE, FUNCTION, TOP-OF-PAGE, END-OF-PAGE).
Outside loop structures and modularization units (report processing):
Terminates report processing and triggers list display.
But not sure about
atexit() .. ,may use in Object Oriented Programming.
(C++)
"At exit-command in module pool."
Mohinder
Edited by: Mohinder Singh Chauhan on Aug 1, 2008 8:06 AM
Maybe you are looking for
-
Print Multiple copies of report, and resetting Page number for each copy.
Dear frnds! i am using developer 6i reports i have a problem. i want to Print Multiple copies of report, and resetting Page number for each copy" that is 4 copies of an invoice is required 1 - for user copy 2- gate copy 3- accounts office 4- office c
-
Can receive email, but can't send....getting error message
I can receive email just fine...but when I try to send email I get this error message: "This message could not be delivered and will remain in your Outbox until it can be delivered. The connection to the server "smtp.mac.com" on port 25 timed out." J
-
I was charging my phone thru my computer now all i see is the apple on screen>
-
How to select data missing in the table?
<p> <strong>I have a list of strings as follows (not in the table): 'aaaaa' 'bbbbb' 'ccccc' In the table T1 I have a VARCHAR column x. The data under x are as follows 'aaaaa' 'ccccc' I want to formulate a query such that it will bring 'bbbbb' since '
-
Rotated pages won't stay rotated!
I received a 5 page .pdf file. When scanned, pages 1, 3, & 5 were scanned in "upside down" while pages 2 & 4 are fine. Inside the 5-page document, there appears to be no way to rotate only the offending pages. So, I extracted them to separate file