Trace not generated using  Initialization SQL Statement - Custom profile

Im following the steps given below to generate trace :
Navigate to System Administrator > Profile > System
Check --User and provide the User for which the tracing has to be set.
In the Profile field provide Initialization%SQL%Custom and click Find-- button.
(b) In the User Value column on the Profile Values form, enter the statement shown below and click 'Save'.
BEGIN FND_CTL.FND_SESS_CTL('','','','','','ALTER SESSION SET max_dump_file_size=5000000 EVENTS=''10046 TRACE NAME CONTEXT FOREVER, LEVEL 12'''); FND_TRACE.SET_TRACE_IDENTIFIER('XXXTEST'); END;
Note: Specify an identifier to help you identify your trace file. XXXTEST was used in this case and will show at the end of the trace file name.
You may need to set the MAX_DUMP_FILE_SIZE to UNLIMITED if the file is truncated
But the the trace is not getting generated. I searched user_dump_dest and all other location but couldn't find a file with the name "XXXTEST".
kindly help....

Hİ;
I suggest please check How To Trace a Concurrent Request And Generate TKPROF File [ID 453527.1]. If you are sure your system generate trace, you may go with find -name xx.trace
Regard
Helios

Similar Messages

  • Trace is still getting generated even after disabling the profile option Initialization SQL Statement - Custom

    Hi All,
    we have a problem with profile option "Initialization SQL Statement - Custom". we have set this at user level. after some time, we have cleared the profile option value for this user.
    But we can still see the generated trace files are getting updated. we did checked this trc files from path returned from below query.
    select name, value
    from   v$parameter
    where  name like 'user_dump_dest';
    Please help us on how to resolve this issue. we are using Oracle Apps R 12.1.2 version.
    Thanks in advance
    Raghava

    Before logging out we suspect that he closed the browser instead of logout link.
    What if you make the user logout, can you reproduce the issue then?
    We have verified the profile options for this user and found that value is cleared for profile Initialization SQL Statement - Custom.
    How do you know that the files were generated for this user and because of this profile option? Have you verified profile options for all users at all level?
    Thanks,
    Hussein

  • SSIS The parameterized sql statement yields metadata which does not match the main SQL statement

    Hi all,
    I'm getting the above error when trying to execute a custom lookup.  What I'm trying to do is lookup the minimum promotional price between date ranges.  The SQL executes fine in SSMS
    SELECT refTable.PRICE
    FROM ( SELECT MIN(PRICE) AS PRICE ,
    NAME ,
    ITEMRELATION ,
    FROMDATE ,
    TODATE
    FROM [dbo].[AllCustPrices]
    GROUP BY NAME ,
    ITEMRELATION ,
    FROMDATE ,
    TODATE
    ) [refTable]
    WHERE [refTable].[NAME] = ?
    AND [refTable].[ITEMRELATION] = ?
    AND ? BETWEEN [refTable].[FROMDATE]
    AND [refTable].[TODATE]
    but errors in SSIS?

    Apologies, totally forgot i posted a question on here.  I still haven't resolved this.  full error text is TITLE: Package Validation Error
    Package Validation Error
    ADDITIONAL INFORMATION:
    Error at Data Flow Task [Lookup MIN Price [440]]: The parameterized SQL statement yields metadata which does not match the main SQL statement.
    Error at Data Flow Task [SSIS.Pipeline]: "Lookup MIN Price" failed validation and returned validation status "VS_ISBROKEN".
    Error at Data Flow Task [SSIS.Pipeline]: One or more component failed validation.
    Error at Data Flow Task: There were errors during task validation.
     (Microsoft.DataTransformationServices.VsIntegration)
    BUTTONS:
    OK
    If I take off the MIN function and just put * SSIS is quite happy, it does not like MIN for some reason?
    I'm really stumped with this... checked metadata for third parameter which is W/C Date DT_DBTIMESTAMP which is same as FROMDATE, TODATE where i'm using BETWEEN...

  • How can i use one SQL statement to solve problem?

    How can i use one SQL statement to solve the question below?
    For a Table named A, there is a column named F(char type).
    Now select all the records where F like '%00' and update their F value to '%01'
    Just one SQL statement.Do not use PL/SQL block.
    How to do that?
    Thanks.

    What is the data volume for this table?
    Do you expect lots of rows to have '%00' as their value?
    Following two statements come to mind. Other experts would be able to provide better alternatives:
    If you have index on SUBSTR(f, 2):
    UPDATE A
    SET    f = SUBSTR(f,
                      1,
                      length(f) - 2) || '01'
    WHERE  substr(f,
                  -2) = '00';If most of the rows have pattern '%00':
    UPDATE A
    SET    f = SUBSTR(f,
                      1,
                      length(f) - 2) ||
               DECODE(SUBSTR(f,
                             -2),
                      '00',
                      '01',
                      SUBSTR(f,
                             -2));

  • Function 'myfunc' may not be used in SQL Options

    <p>
    Hello,
    I have created a simple function in a packege for use in an update statement. The function is
    FUNCTION myfnc(p1 IN t1.c1%TYPE)
    RETURN VARCHAR2
    IS
    BEGIN
    IF p1 = 3 THEN
    RETURN 'A';
    ELSE
    RETURN 'B';
    END IF;
    END myfnc;
    I use it in a procedure which exists in the same package as the function as follows
    Update t1
    set c1 = myfnc(c2);
    I am getting the compliation error Function 'myfunc' may not be used in SQL.
    There is no db manipulation going on and I have tried using
    PRAGMA RESTRICT_REFERENCES (myfnc, WNDS, WNPS, RNDS, RNPS);
    but to no avail.
    One other thing is that I thought this was compiling OK but then I decided to put the function in the package specification so I could unit test it using a db call. Now if I drop and recreate the package without the declaration in the specification the compile error still occurs. Perhaps that's my mind playing tricks but maybe there is something here I am not aware of.
    Any suggestions?
    </p>

    Hi,
    You found the solution.
    Although it's allowed to say
    Update     t1
    set     c1 = local_var;in a package, where local_var is not defined outside of the procedure, let alone the package, and
    although it's legal to say:
    local_var = myfnc (some_other_var); inside the package where myfnc is a private function (included in the package body, but not in the package header), still
    it is not legal to say:
    Update     t1
    set     c1 = myfnc (c2); If there is a problem with putting myfnc in the package header (for example, you don't want people calling it directly, for some reason), you can make it a stand-alone function, like Someoneelse did, or put in a different package, and give the owner of your first package (and no one else) EXECUTE privileges on it.
    As William pointed out, if myfnc is really this simple, you might not need a function at all.

  • Function name_function may not be used in SQL

    Dear forums,
    when i compiled my form that contain the function package, i got the error "Function <name_function> may not be used in SQL". But when i execute the function from sql plus, it works smoothly.
    What's the solution ?
    with great thanks,

    Hi Salim,
    as far as I understand you you try to use a function that is stored in the form. The select statement is worked on the database where your function is not known. You have to create this function on the database as you did it for using in SQLPlus.
    Regards,
    Werner

  • Can you use nested sql statements in jsp??

    HI, I was wondering if you can use nexted sql statements...
    example...
    <%@ page language="java" contentType="text/html" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="forum.DataAccess" %>
    <%
         // Create a new instance of the DataAccess Class
              DataAccess d = new DataAccess();
         // This call the database connection method from the DataAccess Class
              d.ConnectDatabase();
         /* This gets the threads from database for the categories */
              // This is initilzing the variables
                   String threadname = null;
                   int threadid = 0;
              // This sets the sql variable to nothing
                   String sql = "";
                   String sql1 = "";
              // This sets the rs variable to null
                   ResultSet rs = null;
                   ResultSet rs1 = null;
              // This is doing a SELECT on the thread table based on the category id
                   sql += "select * from forum_threads where ft_catid = 2";
                   rs = d.SQLQuery(sql);
         /* End of categories */
         while (rs.next()){
                                       threadid = rs.getInt("ft_threadid");
                                       threadname = rs.getString("ft_threadname");
         sql1 += "select * from forum_messages where fm_catid = 2 and fm_threadid = " + threadid + "";
         rs1 = d.SQLQuery(sql1);
    %>
    THis is the error I get.....
    javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt
    I know what that is.. it is because I am trying to open another result set before the first one is closed... but I need that one open cause I need to loop through the ids and run it against the second query??
    Any suggestions...

    I am not positive but it seems from your error message you will not be able to use the nested SQL. Another option would be to store the values of the ResultSet in a Vector (or Array), and then close your ResultSet and loop through the vector or array instead...
    Zac

  • How to use Native SQL statement in JDBC receiver interface

    Dear All,
    Can any one please help us in using Native SQL statement in a JDBC receiver channel. The reason why I need to use Native SQL statement instead of standard XML structure is that I need to execute a dynamic SQL query in third party database system lke:-
    Select Field1 Field2 from TABLE Where Field3 like "%Name'
    I expect the the response in the form of XML file which I can pick up using synchornous interface as mentioned on help.sap.com:-
    http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    The value for %Name can change dynamically according to the transaction and hence cannot be inluded as a KEY element in standard XLM structure,
    Hence I need to know:-
    1. What message mapping I should use in case if I have to use Native SQL statement.
    2.What operation mapping I should use in case if I have to use Native SQL statement.
    If guess correclty I may have to use Java mapping to do the above activities. Hence I want to know
    3 .How do to go about it to do the Java mapping.
    Thanks
    Ameet

    >
    Ameet Deshpande wrote:
    > Dear All,
    >
    > Can any one please help us in using Native SQL statement in a JDBC receiver channel. The reason why I need to use Native SQL statement instead of standard XML structure is that I need to execute a dynamic SQL query in third party database system lke:-
    >
    > "
    > Select Field1 Field2 from TABLE Where Field3 like "%Name'
    > "
    > I expect the the response in the form of XML file which I can pick up using synchornous interface as mentioned on help.sap.com:-
    >
    > http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    > http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    >
    > The value for %Name can change dynamically according to the transaction and hence cannot be inluded as a KEY element in standard XLM structure,
    >
    > Hence I need to know:-
    >
    > 1. What message mapping I should use in case if I have to use Native SQL statement.
    > 2.What operation mapping I should use in case if I have to use Native SQL statement.
    > If guess correclty I may have to use Java mapping to do the above activities. Hence I want to know
    > 3 .How do to go about it to do the Java mapping.
    >
    > Thanks
    > Ameet
    You can use a stored procedure, and call it from jdbc receiver adapter.
    I also solve this issue, with a DBLookup in message mapping. You can refer to my blog, and this usefull 3d:
    http://simonlesflex.wordpress.com/2010/12/07/pi-oracle-dblookup/
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler

  • How to use  alternative SQL  statements  in  EJB

    I have a probelm to use alternative sql statements in EJB,
    could any one sugg on this topic,
    Thanks in advance.

    Please explain your problem better. Really can't figure what you are trying to do.....
    choosing which sql statement to use at runtime
    or creating dynamic sql statement at runtime
    which??
    Regards

  • Can't create an MBO object using an SQL Server connection profile

    Hi all,
    I'm trying to create an MBO from an table using an SQL Server connection profile. The connection is fine but when i grag a table into Mobile Application Diagram in order to create an MBO i got the following exeption:
    I´ve already configured the necessary jar (sqljdbc4.jar) in the following directories:
    C:\Sybase\UnwiredPlatform\Servers\UnwiredServer\lib
    C:\Sybase\UnwiredPlatform\Unwired_WorkSpace\Eclipse\sybase_workspace\mobile\eclipse\plugins\com.sybase.uep.com.sqlserver_2.1.0.201109131337
    but i always get the same error.
    Any help, suggest would be apreciated
    thx,
    Nuno

    Hi Nuno,
    I just wanted you to verify the path where you have pasted JAR file. As you mentioned
    Path 1:
    C:\Sybase\UnwiredPlatform\Servers\UnwiredServer\lib
    but as per doc it should be under:
    C:\Sybase\UnwiredPlatform\Servers\UnwiredServer\lib\3rdparty
    Path 2:
    C:\Sybase\UnwiredPlatform\Unwired_WorkSpace\Eclipse\sybase_workspace\mobile\eclipse\plugins\com.sybase.uep.com.sqlserver_2.1.0.201109131337
    but as per doc it should be under:
    C:\Sybase\UnwiredPlatform\Unwired_WorkSpace\Eclipse\sybase_workspace\mobile\eclipse\plugins\com.sybase.uep.com.sqlserver_2.1.0.201109131337\lib
    Rgrds,
    JK

  • Using 'NOT IN' Within a SQL Statement

    Does anyone know why the following SQL statement does not return any values? The problem is with the SELECT statement within the 'NOT IN' clause. When explicitly typing in the part_ids returned from the select statement, everything works as expected.
    Thanks for any help.
    SELECT Distinct Part_Id, Trans_Date
         FROM Invctrl
         WHERE Trans_Type = 0
         AND Trans_Date BETWEEN To_Date( '1-Mar-2006 00:00:00', 'dd-mon-yyyy hh24:mi:ss' )
         AND To_Date( '31-Jan-2007 23:59:59', 'dd-mon-yyyy hh24:mi:ss' )               
         AND Part_Id NOT IN (SELECT part_Id From InvCtrl WHERE Trans_Date < To_Date( '1-Mar-2006 00:00:00', 'dd-mon-yyyy hh24:mi:ss'))

    'NOT IN' should be avoided where ever we can.
    Change your query to 'IN' clause as below and it should work.
    SELECT DISTINCT part_id, trans_date
               FROM invctrl
              WHERE trans_type = 0
                AND trans_date BETWEEN TO_DATE ('1-Mar-2006 00:00:00',
                                                'dd-mon-yyyy hh24:mi:ss'
                                   AND TO_DATE ('31-Jan-2007 23:59:59',
                                                'dd-mon-yyyy hh24:mi:ss'
                AND part_id IN (
                       SELECT part_id
                         FROM invctrl
                        WHERE trans_date BETWEEN TO_DATE ('1-Mar-2006 00:00:00',
                                                          'dd-mon-yyyy hh24:mi:ss'
                                             AND TO_DATE ('31-Jan-2007 23:59:59',
                                                          'dd-mon-yyyy hh24:mi:ss'
                       MINUS
                       SELECT part_id
                         FROM invctrl
                        WHERE trans_date <
                                 TO_DATE ('1-Mar-2006 00:00:00',
                                          'dd-mon-yyyy hh24:mi:ss'
    [pre]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to find redo generated per each SQL Statement?

    Database version is 10.2.0.4. OS is AIX.
    We have excessive redo generation during specific time of a day. We would like to identify which statement is contributing to this excessive redo.
    ADDM shows this as first finding
    Waits on event "log file sync" while performing COMMIT and ROLLBACK operations were consuming significant database time.
    Is it possible to find out which sql statement is generating how much redo in bytes during a specific time?
    Thank You
    Sarayu

    user11181920 wrote:
    Is it possible to find out which sql statement is generating how much redo in bytes during a specific time?It will not help you.
    For example, you will see bunch of UPDATE,DELETE,INSERT statements issued by apps. So? What you going to do with them? If you can modify the app to eliminate unnecessary DMLs - it would be great of course. But it is unlikely.From what I've seen, namely developers putting way more commits in than the business rules would justify, it is not so unlikely.
    >
    Also when DML statements generate Redo, the do not cause too many waits of "log file sync", because buffer Log writer flushes buffer as soon as it fills more than 30% or after some time, or on Commit/Rollback. This may or may not be true, as there can be several reasons for log file sync: insufficient I/O (which is the only one you are addressing); CPU starvation (because the cpu ultimately controls i/o requests, and even fixing some unrelated sql that hogs the cpu could change this); lgwr priority (on some systems it makes sense to simply raise the priority, it can vary widely as to whether this makes sense); and other things like private redo, file option flags and the IMU relationships with undo that can be too complicated to put in a partial sentence.
    >
    Waits on event "log file sync" while performing COMMIT and ROLLBACK operations were consuming significant database time.So the root cause can be too many commits, which you should evaluate and fix if possible. You can also use Tanel Poder's snapper script, including on lgwr to see more closely what it is waiting on. See page 28: http://files.e2sn.com/slides/Tanel_Poder_log_file_sync.pdf
    >
    Right. It is because Log Writer writes here synchronously, reliably, it waits until HDD writes data down and responds its written OK.
    And HDDs are not the fastest things in computer. They are mechanical - that is why.
    I would recommend you :
    1. Place redo log files on fast HDDs that used preferably dedicated for this purpose only. If other I/O will frequently disturb these drives they will cause heads change tracks which causes longest HDD waits.
    2. Consider to use faster technology like SAN or SSD.Read this instant classic: http://www.pythian.com/news/28797/de-confusing-ssd-for-oracle-databases/

  • Parameter value in sql statement (Custom Folder)

    Hi ,
    I want to formulate a custom folder - consisting of a sql statement , inside of which there is a parameter. Then in Desktop , the users can select a number as the searching criteria and this value will replace the parameter in sql statement , as in the following:
    select CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE , SUM_POSOTITA from
    select CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE , SUM_POSOTITA , row_number() over (order by sum_posotita desc) rw  from
      (SELECT CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, TO_DATE(DATES_EKTELESIS,'DD/MM/RRRR') DATES ,SUM(POSOTITA) SUM_POSOTITA
              FROM  EKTELESI_AT_SINT_CLINIC A, MITROO_FARMAKOU B
               WHERE CODE_FARMAKOU = FARMAK_CODE
               GROUP BY CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, DATES_EKTELESIS))
      where rw<=&p
      order by SUM_POSOTITA desc The problem is that the use of parameter , whereas in sql*plus is valid, in Discoverer is not....
    What can i do in this situation...????
    Thanks , a lot
    Simon

    However , a peculiar event happens....
    whereas the sql statement is:
    select CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE , SUM_POSOTITA,RW from
    select CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE , SUM_POSOTITA , row_number() over (order by sum_posotita desc) rw  from
      (SELECT CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, TO_DATE(DATES_EKTELESIS,'DD/MM/RRRR') DATES ,SUM(POSOTITA) SUM_POSOTITA
              FROM  EKTELESI_AT_SINT_CLINIC A, MITROO_FARMAKOU B
               WHERE CODE_FARMAKOU = FARMAK_CODE
               GROUP BY CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, DATES_EKTELESIS
      UNION ALL
      SELECT CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, TO_DATE(DATES_EKTELESIS,'DD/MM/RRRR') DATES,SUM(POSOTITA) SUM_POSOTITA
              FROM  EKTELESI_AT_SINT_EX_IATR A, MITROO_FARMAKOU B
               WHERE CODE_FARMAKOU = FARMAK_CODE
               GROUP BY CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, DATES_EKTELESIS
      UNION ALL
      SELECT CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, TO_DATE(DATES_EKTELESIS,'DD/MM/RRRR') DATES,SUM(POSOTITA) SUM_POSOTITA
              FROM  EKTELESI_AT_SINT_FOREON_MS A, MITROO_FARMAKOU B
               WHERE CODE_FARMAKOU = FARMAK_CODE
               GROUP BY CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, DATES_EKTELESIS
      UNION ALL
      SELECT CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, TO_DATE(DATES_EKTELESIS,'DD/MM/RRRR') DATES,SUM(POSOTITA) SUM_POSOTITA
              FROM  EKTELESI_GEN_SINT_KLIN A, MITROO_FARMAKOU B
               WHERE CODE_FARMAKOU = FARMAK_CODE
               GROUP BY CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, DATES_EKTELESIS
      UNION ALL
      SELECT CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, TO_DATE(DATES_EKTELESIS,'DD/MM/RRRR') DATES,SUM(POSOTITA) SUM_POSOTITA
              FROM  EKTELESI_GEN_SINT_EX_IATR A, MITROO_FARMAKOU B
               WHERE CODE_FARMAKOU = FARMAK_CODE
               GROUP BY CODE_FARMAKOU,EMP_NAME,PACKTYPE,PACKSIZE, DATES_EKTELESIS))
      order by RW ascand produces the results....
    CODE_FARMAKOU                            EMP_NAME                                                                         PACKTYPE                     PACKSIZE                  SUM_POSOTITA         RW
    1000003279                               MOXACEF                                                                          BT                           40(BLIST10X4)                       45          1
    0000014071                               DOPAMINE HYDROCHLORIDE                                                           VIAL                         5 ML X 25                           30          2
    1000016655                               KABIVEN                                                                          BT                           50ÖÕÓ.×1,7ML                        21          3
    1000014127                               DEPON VIT. C                                                                     BT                           2TUBX10                              6          4
    0000002419                               FACTREL INJECTION                                                                VIAL                         2 ML                                 5          5
    0000086289                               DETUSSIN EXPECTORANT                                                             BOT                          120 ML                               3          6
    1000016655                               KABIVEN                                                                          BT                           50ÖÕÓ.×1,7ML                         2          7
    1000014127                               DEPON VIT. C                                                                     BT                           2TUBX10                              2          8
    1000000760                               DEPON                                                                            BT                           20(BLIST2X10)                        2          9
    1000003279                               MOXACEF                                                                          BT                           40(BLIST10X4)                        1         10
    1000003279                               MOXACEF                                                                          BT                           40(BLIST10X4)                        1         11
    1000000760                               DEPON                                                                            BT                           20(BLIST2X10)                        1         12
    12 rows selectedIn Discoverer , even i select to see -as parameter- let's say the 10 first records, the system displays the 7 first records , whereas when i want to see the 1,2,3,4,5,6,7 first records the system works fine....and displays accordingly 1,2,3,4,5,6,7 first records. The problem occurs above the 8th record-as parameter selected..!!!!!
    I defined the parameter as :Rw<=:Rw
    What may be the problem...????
    SORRY!!!!! I FOUND THE PROBLEM ....!!!!
    Regards and many thanks,
    Simon
    Message was edited by:
    sgalaxy

  • Index not being used in Select statement

    Friends
    I have the following SQL statement:
    SELECT
    a.acct,
    a.date_field,
    UPPER(b.feegroup) feegrp,
    SUM (a.fee1) fee1,
    SUM (a.fee2) fee2,
    SUM (a.fee3) fee3
    FROM table1 a, table2 b
    WHERE 1 = 1
    AND a.fee_id = b.fee_id
    GROUP BY a.acct, a.date_field, b.feegroup;
    Both the tables have index on fee_id column. When I run the explain plan for this statement, I am getting the following output:
    Operation | Option | Object Name | Position
    SELECT STATEMENT | | | 560299
    HASH | GROUP BY| |1
    TABLE ACCESS | FULL| table2 | 1
    TABLE ACCESS | FULL| table1 | 2
    Why Oracle is not using the index?
    Edited by: darshilm on Dec 10, 2009 3:56 PM

    The proposed plan is the optimal according to your current conditions in the "where clause" where you have only the equality join condition and therefore the CBO can use HASH JOIN. Using any kind of index access would just increase the amount of required work unless you would add some very restrictive conditions which will select rows from relatively small amount of blocks. Here I have to mention that what really counts in the CBO cost calculation is the amount of blocks accessed and not the number of rows. The "currency" for I/O in Oracle is a block and not a row. CBO always uses an assumption that there is nothing in the buffer cache and it will have to perform a physical read for every block.
    How many blocks will actually be accessed depends on the data distribution. It can happen that every single row that you have to retrieve resides in a different block and although you access only 1000 rows out of a million row table you would have to visit almost every block of that table. For such a situation a FULL TABLE SCAN is the best access path and Oracle will use multiblock I/O for that. On the other side you can have those 1000 rows only in a few blocks and then the index access would be the most appropriate one. For index access Oracle uses single block I/O. Usually the actual situation is somewhere between this two extreme situations. But you can run some tests by yourself and see when an index access will be replaced by a full table scan while you will make your predicates less selective.
    HTH, Joze
    Co-author of the forthcoming book "Expert Oracle Practices"
    http://www.apress.com/book/view/9781430226680
    Oracle related blog: http://joze-senegacnik.blogspot.com/
    Blog about flying: http://jsenegacnik.blogspot.com/
    Blog about Building Ovens, Baking and Cooking: http://senegacnik.blogspot.com

  • Who to use Native SQL statements in ABAP

    hi all,
    who to use native sql staements in abap bypassing Application server.
    with regards,
    suresh babu aluri.

    Hi
    Native SQL statements define an area in an ABAP program in which one or more Native SQL statements are to be carried out. The area between EXEC and ENDEXEC is not completely checked by the syntax check. The statements entered there are passed to the Native SQL interface and processed there as follows:
    Almost all SQL statements that are valid for the addressed database system can be included between EXEC and ENDEXEC, in particular the DDL statements. These SQL statements are passed from the Native SQL interface to the database system largely unchanged. The syntax rules are specified by the database system, in particular the case sensitivity rules for database objects. If the syntax allows a separator character between individual statements, you can include several Native SQL statements between EXEC and ENDEXEC. Generally, the semicolon ( is used as the separator character.
    You can also include SAP-specific Native SQL language elements between EXEC and ENDEXEC. These statements are not passed directly from the Native SQL interface to the database, but are converted appropriately.
    All Native SQL statements bypass SAP buffering.
    The ENDEXEC statement sets sy-dbcnt to the number of table rows processed in the last Native SQL statement. After implicit cursor processing with PERFORMING, sy-dbcnt contains the total number of lines read.
    Programs with Native SQL statements are generally dependent on the database system used, so that they cannot be executed in all ABAP systems. This is especially true for the examples in this section, which was written for Informix database systems.
    Example
    Inserting two rows in the database table SCARR. If neither of these rows exists, sy-subrc is set to 0 by ENDEXEC and sy-dbcnt to 1. Otherwise, an exception is raised and handled.
    DATA: exc_ref    TYPE REF TO cx_sy_native_sql_error,
          error_text TYPE string.
    TRY.
        EXEC SQL.
          INSERT INTO scarr
                      (MANDT, CARRID, CARRNAME, CURRCODE, URL)
            VALUES ('000', 'FF', 'Funny Flyers', 'EUR',
                    'http://www.ff.com');
          INSERT INTO scarr
                     (MANDT, CARRID, CARRNAME, CURRCODE, URL)
            VALUES ('000', 'EF', 'Easy Flyers', 'EUR',
                    'http://www.ef.com');
        ENDEXEC.
      CATCH cx_sy_native_sql_error INTO exc_ref.
        error_text = exc_ref->get_text( ).
        MESSAGE error_text TYPE 'I'.
    ENDTRY.
    Reward points if useful
    Regards
    Anji

Maybe you are looking for

  • Qosmio F20 with Vista RTM

    I have successfully installed Windows Vista RTM on my Qosmio F20-155 device. The installation went smooth and everything is fine. I have the following problems which I suppose are common with everyone else: - No SD card support - Waiting for new nVid

  • Is there a way to block my cell number from appearing in someone's caller id when making a telephone call?

    Is there a way to block my cell phone number from appearing in someone's caller id?

  • File names trashed

    I am unfortunately still using version 6. However, I am hoping someone else has had this problem this is on a mac running Tiger 4.6. When I setup a site and put the files to a remote location, the files are all associated with textedit and the names

  • IPhoto does not see any changes after editing a photo in Camera Raw

    Hello everyone , I have some small problem with my iPhoto. I have set up Camer Raw in iPhoto as  External Editor, so when I click on edit in IPhoto, automatically opens my JPG in Camera Raw. After editing in Camera Raw I'm clicking on ,,Save image" t

  • Sound problems after upgrading

    Hi, After installing the pay upgrade on my iPodTouch last week I can't control the volume. It plays everything on max. There's no way I can use my touch now without losing my hearing. What gives? thanks alf