eBooks on SQL query optimization

Hello.

can someone assign me all the technical links for ebooks on tuning SQL query to 10g or 11g.

Tuning SQL queries, it's something I want to build my expertise...

There may be many consultants as the query SQL, Access Advisor Advisor and so on... but nothing of such adjustment your queries manually for maximum optimization.

Kindly help me in this!

Check Oracle docs http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/toc.htm

But really, you should also check:

http://www.asktom.Oracle.com

http://tkyte.blogspot.com

AND all the other blogs he does (like Jonathan Lewis site and blog) you will find many interesting articles there, the 'real world', regarding performance and optimization.

Published by: hoek on March 24, 2009 10:40

Tags: Database

Similar Questions

  • Performance of SQL query optimization

    SELECT
    BOX WHEN SACA. CTD_TYPE = 2 THEN 'JMP' WHEN SACA. CTD_TYPE = 3 THEN "PTD" WHAT SACA. CTD_TYPE = 4 THEN "QTD" WHAT SACA. CTD_TYPE = 5 THEN 'CDA' END AS NAME,
    SACA. TOT_REVENUE, SACC. TOT_REVENUE AS LAST_TOT_REVENUE,
    SACA. TOT_MARGIN, SACC. TOT_MARGIN AS LAST_TOT_MARGIN,
    SACA. TOT_MARGIN_PCT, SACC. TOT_MARGIN_PCT AS LAST_TOT_MARGIN_PCT,
    SACA. TOT_VISIT_CNT, SACC. TOT_VISIT_CNT AS LAST_TOT_VISIT_CNT,
    SACA. AVG_ORDER_SIZE, SACC. AVG_ORDER_SIZE AS LAST_AVG_ORDER_SIZE,
    SACA. TOT_MOVEMENT, SACC. TOT_MOVEMENT AS LAST_TOT_MOVEMENT
    DE AAAAAAAAAAAA JOIN AAAAAAAAAAAA SACC WE SACA SACA. CTD_TYPE = OF THE GUIDE OF THE SACC. CTD_TYPE WHERE SACA. SUMMARY_CTD_ID = (SELECT SUMMARY_CTD_ID FROM SALES_AGGR_DAILY WHERE LOCATION_LEVEL_ID = 5 AND location_id = 5656 AND PRODUCT_LEVEL_ID is NULL AND PRODUCT_ID IS NULL AND CALENDAR_ID = (SELECT LAST_AGGR_CALENDARID FROM SALES_AGGR_WEEKLY WHERE LOCATION_LEVEL_ID = 5 AND location_id = 5656 AND CALENDAR_ID = 365 AND PRODUCT_LEVEL_ID is NULL AND PRODUCT_ID IS NULL)) AND of the Guide of the SACC. SUMMARY_CTD_ID = (SELECT SUMMARY_CTD_ID FROM SALES_AGGR_DAILY WHERE LOCATION_LEVEL_ID = 5 AND location_id = 5656 AND PRODUCT_LEVEL_ID is NULL AND PRODUCT_ID IS NULL AND CALENDAR_ID = (SELECT LAST_AGGR_CALENDARID FROM SALES_AGGR_WEEKLY WHERE LOCATION_LEVEL_ID = 5 AND location_id = 5656 AND CALENDAR_ID = 365 AND PRODUCT_LEVEL_ID is NULL AND PRODUCT_ID IS NULL))

    Normally this query run 15-17 seconds my bike to reduce below 6 seconds... Can someone help me with this?

    Edited by: 927853 18 April 2012 10:59
    /* Formatted on 2012/04/17 14:42 (Formatter Plus v4.8.8) */
    SELECT CASE
             WHEN saca.ctd_type = 2
               THEN 'WTD'
             WHEN saca.ctd_type = 3
               THEN 'PTD'
             WHEN saca.ctd_type = 4
               THEN 'QTD'
             WHEN saca.ctd_type = 5
               THEN 'YTD'
           END AS NAME,
           saca.tot_revenue, sacc.tot_revenue AS last_tot_revenue, saca.tot_margin, sacc.tot_margin AS last_tot_margin,
           saca.tot_margin_pct, sacc.tot_margin_pct AS last_tot_margin_pct, saca.tot_visit_cnt, sacc.tot_visit_cnt AS last_tot_visit_cnt,
           saca.avg_order_size, sacc.avg_order_size AS last_avg_order_size, saca.tot_movement, sacc.tot_movement AS last_tot_movement
      FROM sales_aggr_ctd saca JOIN sales_aggr_ctd sacc ON saca.ctd_type = sacc.ctd_type
     WHERE EXISTS (
             SELECT 1
               FROM sales_aggr_daily oops
              WHERE oops.summary_ctd_id = saca.summary_ctd_id
                AND oops.location_level_id = 5
                AND oops.location_id = 5656
                AND oops.product_level_id IS NULL
                AND oops.product_id IS NULL
                AND EXISTS (
                      SELECT 1
                        FROM sales_aggr_weekly xxx
                       WHERE oops.calendar_id = xxx.last_aggr_calendarid
                         AND xxx.location_level_id = 5
                         AND xxx.location_id = 5656
                         AND xxx.calendar_id = 365
                         AND xxx.product_level_id IS NULL
                         AND xxx.product_id IS NULL))
       AND EXISTS (
             SELECT 1
               FROM sales_aggr_daily zzz
              WHERE sacc.summary_ctd_id = zzz.summary_ctd_id
                AND zzz.location_level_id = 5
                AND zzz.location_id = 5656
                AND zzz.product_level_id IS NULL
                AND zzz.product_id IS NULL
                AND EXISTS (
                      SELECT 1
                        FROM sales_aggr_weekly mmm
                       WHERE zzz.calendar_id = mmm.last_aggr_calendarid
                         AND mmm.location_level_id = 5
                         AND mmm.location_id = 5656
                         AND mmm.calendar_id = 365
                         AND mmm.product_level_id IS NULL
                         AND mmm.product_id IS NULL))
    
  • What is the best way to optimize a SQL query: call a function or doing a join?

    Hi, I want to know what is the best way to optimize a SQL query, call a function inside the SELECT statement, or make a simple join?

    It depends on.  Could be a.  Could be the other.  Could be no difference.  You would need to compare with your tables in your environment with your settings.

    If you put a gun to my head, I was given no other information and required that I answered the question, I would tend to wait that the join would be more effective.  In general, if you can do something in pure SQL, it will be more effective than if you call PL/SQL.

    Justin

  • SQL Query - store the result for optimization?

    Good day experts,

    I'm looking for advice on a report. I did a lot of analytical functions to get the basic data that I have to do my report and its takes about 50 min for SQL finish. Now, with these data, I need to create 3 different reports and I can't use the SQL even since there are a lot of aggregation (example would be product group in one case and by customer in 2nd). For each of these different group garages I need another report.

    So how to create 3 reports of 1 SQL query without running the query 3 times?

    First thing that comes to mind is to store the result set in a fictitious table, and then query the table since I get the basic data are about 300 lines and then perform different garages group.

    Best regards

    Igor

    So how to create 3 reports of 1 SQL query without running the query 3 times?

    You already know the obvious answer - store data 'somewhere '.

    If any 'somewhere' depends on your needs and you have not provided ALL the.

    MV - if the query is always the same, you might use a MV and make a complete refresh when you want that new data. The data are permanent and can be queried by other sessions, but the query that accesses the data is frozen in the definition of MV.

    GTT (global temporary table) - If a NEW charge of data AND three reports will be ALWAYS executed by a single session and then data are no longer necessary so a TWG may work. The application that loads the TWG can be different for each race, but the data won't be available for a single session and ONLY for the duration of this session. So if something goes wrong and the session ends the data are missing.

    First thing that comes to mind is to store the result set in a fictitious table, and then query the table since I get the basic data are about 300 lines and then perform different garages group.

    Which is commonly called a "table of REPORT-READY." Those that are useful when data must be permanent and available for multiple sessions/users. Generally, there is a batch (for example the package procedure) that periodically refreshes / updates the data during a window of failure. Or the table can have a column (for example AS_OF) that allows it to contain multiple data sets and the update process let alone the existing data and creates a new set of data.

    If your database is about 300 lines you can consider a table report and even use it to contain multiple data sets. Then, the reports can be written to query the data by using a value AS_OF that wraps and returns the appropriate data. You don't need a window of failure since the oldest data are still available (but can be removed when you no longer need.

    If you need a set of data, you can use a partitioned table work (with only one partition) to collect the new set of data, then a SWAP PARTITION to 'swap' in the new data. Only, this "Exchange" takes a fraction of a second and avoids a window of failure. Once the swap done no matter what user query will get new data.

  • Need help to reduce the cost of my sql Query below 100 to optimize.

    Can you please suggest how to reduce the COST of my SQL query? Is it possible to get the < 100 COST?

    My goal:
    ------------------------

    To recover the data of length (a column is in normalised_event: table) corresponding to each type of call (which is to extract the column rc.abbreviation in reference_code: table) in a given range of dates. So I wrote the following as SQL below:

    ------------------------------------------------------------------------------------------------------------------
    Select nvl (sum (round(ne.duration/60,3)), 0), rc.abbreviation
    Since the rc reference_code, normalised_event not
    where to_char (rc.reference_code) = ne.full_path
    and rc.reference_type_id = 505002 AND
    trunc (don't. CHARGE_START_DATE) between trunc (to_date (January 1, 2008 "," dd-mm-yyyy hh24:mi:ss'))))
    and trunc (to_date (January 1, 2009 "," dd-mm-yyyy hh24:mi:ss'))))
    Rc.abbreviation group

    -----------------------------------------------------------------------------------------------------------------

    IAM using Toad Software which is taken in charge by oracle 9i.


    Explain the plan above query is:

    explain plan
    Set statement_id = "mp01" for
    Select nvl (sum (round(ne.duration/60,3)), 0), rc.abbreviation
    Since the rc reference_code, normalised_event not
    where to_char (rc.reference_code) = ne.full_path
    and rc.reference_type_id = 505002 AND
    trunc (don't. CHARGE_START_DATE) between trunc (to_date (January 1, 2008 "," dd-mm-yyyy hh24:mi:ss'))))
    and trunc (to_date (January 1, 2009 "," dd-mm-yyyy hh24:mi:ss'))))
    Rc.abbreviation group



    Select LPad (' ', 2 *(Level-1)). Level | '.' || NVL (position 0). ' ' ||
    Operation | ' ' || Options of | ' ' || Object_name | ' ' ||
    Object_type | ' ' || Decode (id, 0, Statement_Id |) "Cost = ' | Position)
    "Query plan.
    From Plan_Table
    Start with id = 0 and Statement_Id = 'mp01 ".
    Connect Id Parent_Id = prior
    And Statement_Id = 'mp01 ";


    ---------------------------Query Plan explained is----------------------------------------------------------

    1.555 INSTRUCTION SELECT mp01 cost = 555
    2.1 TYPE GROUP
    3.1 FILTER
    4.1 HASH JOIN
    5.1 TABLE ACCESS BY INDEX ROWID REFERENCE_CODE
    6.1 INDEX RANGE SCAN NON-UNIQUE I_REFERENCE_CODE_REF_TYPE
    5.2 PARTITION RANGE ALL THE
    6.1 TABLE ACCESS FULL NORMALISED_EVENT

    -Automatic tracking of the SQl query is:.

    recursive calls - 0
    DB block gets - 0
    compatible gets - 174
    physical reads - 0
    size - 104
    Parse count (hard) - 0
    Parse count (chess) - 0
    run the County - 2
    bytes sent via SQL * Net to dblink - 0
    bytes received via SQL * Net from dblink - 0

    I was wrong. Once again, this shows how it is dangerous to assume (I assumed that FBI was new in 10g because it is when I used them), and the power of the community to ensure that accurate information is provided.

    John

  • How do I get recommendations sql query manually, its possible or not?

    I'm new dba oracle and my company gives me sql optimize, if research on google and knowledge, addm can give recommendations of sql query

    but I sql query and in addm can not give recommendations,

    I then how sql query performance increase... ?

    and the sql script to get the recommendations?

    Thanks in advance

    1. upgrade to oracle 11

    2. (take the topgun)

    Select / * + RESULT_CACHE * / a.empid, empname from

    (select empid, empname from india_emp

    where deptno <> 10 and empid NOT IN (105,202,11,45,695,646,726,8465,965,56,646,689,446)

    Union of all the

    Select empid, empname from us_emp

    where deptno <> 10 and empid NOT IN (105,202,11,45,695,646,726,8465,965,56,646,689,446)

    Union of all the

    Select empid, empname from uk_emp

    where deptno <> 10 and empid NOT IN (105,202,11,45,695,646,726,8465,965,56,646,689,446)

    Union of all the

    Select empid, empname from uae_emp

    where deptno <> 10 and empid NOT IN (105,202,11,45,695,646,726,8465,965,56,646,689,446)

    Union of all the

    Select empid, empname from brazl_emp

    where deptno <> 10 and empid NOT IN (105,202,11,45,695,646,726,8465,965,56,646,689,446)

    Union of all the

    Select empid, empname from chine_emp

    where deptno <> 10 and empid NOT IN (105,202,11,45,695,646,726,8465,965,56,646,689,446)

    Union of all the

    Select empid, empname from jpn_emp

    where deptno in (54,256,362,9879,24,46) and empid NOT IN (105,202,11,45,695,646,726,8465,965,56,646,689,446)

    ) a

    order by 2;

    3. run the query 3 times.

    The query will be lightning fast from the 3rd time

    4. read the full performance tuning guide

    http://docs.Oracle.com/CD/E11882_01/server.112/e41573/TOC.htm

  • String separated by commas to 'IN' operator in SQL query

    Hello

    The issue is that the "In" operator in the report query accepts values contained in the element of page Apex... 221,332,542.

    Is there a common solution for this problem?

    Thank you

    Patrick

    984146 wrote:

    The issue is that the "In" operator in the report query accepts values contained in the element of page Apex... 221,332,542.

    It's the common "variable list" model [anti-]. In

    select * from table where columnvalue in (7788, 7839, 7876)
    

    (7788, 7839, 7876)is a list of expressions and the predicate is evaluated as a membership condition.

    In

    select * from table where columnvalue in :P1_X
    

    :P1_Xis a scalar string, unable to contain multiple values.

    In a report of type APEX, a source report of the body of the PL/SQL function returning a SQL query with lexical substitution can be used to produce a "variable list:

    return 'select * from table where columnvalue in (' || :P1_X || ')';
    

    where P1_X contains less than 1000 values, has been disinfected to code SQL injectionand string values are properly cited.

    Some people suggest the following approach, that will work also in interactive APEX reports:

    select * from table where instr(':' || :P1_X || ':', ':' || columnvalue || ':') > 0
    

    However, it is underperforming because it eliminates the possibility of using the index optimizer or the size of the partition in the execution plan.

    See various elements in the list to ask Tom and imitating the channel to the table using sql features for effective solutions.

  • SQL Query + long running.

    Dear gurus/masters/All,
    I beg you all to help me with the setting of the SQL query that takes more time. DB version: 10.2.0.4

    Query SQL WHERE condition:
    select column1, column2, .........
    FROM
    SIEBEL.S_ORG_EXT T1,
    SIEBEL.S_PROD_INT T2,
    SIEBEL.S_VOD T3,
    SIEBEL.S_ORG_EXT T4,
    SIEBEL.S_ORG_EXT T5,
    SIEBEL.S_ORG_EXT_X T6,
    SIEBEL.S_PROD_LN T7,
    SIEBEL.S_ASSET_OM T8,
    SIEBEL.S_VOD_VER T9,
    SIEBEL.S_CTLG_CAT T10,
    SIEBEL.S_CONTACT T11,
    SIEBEL.S_PARTY T12,
    SIEBEL.S_PARTY T13,
    SIEBEL.S_PROD_INT T14,
    SIEBEL.S_ASSET_BU T15,
    SIEBEL.S_CTLG_CAT T16,
    SIEBEL.S_ORG_EXT T17,
    SIEBEL.S_ORG_EXT T18,
    SIEBEL.S_ASSET T19,
    SIEBEL.S_ADDR_PER T20,
    SIEBEL.S_ORG_EXT T21,
    SIEBEL.S_ASSET_X T22,
    SIEBEL.S_ASSET T23
    WHERE
    T16.PAR_CAT_ID = T10.ROW_ID (+) AND
    T14.CG_PR_CTLG_CAT_ID = T16.ROW_ID (+) AND
    T3.ROW_ID = T9.VOD_ID AND
    T14.CFG_MODEL_ID = T3.OBJECT_NUM AND
    T23.OWNER_CON_ID = T11.ROW_ID (+) AND
    T23.OWNER_ACCNT_ID = T6.PAR_ROW_ID (+) AND
    T23.PER_ADDR_ID = T20.ROW_ID (+) AND
    T23.PROD_ID = T14.ROW_ID AND
    T23.OWNER_ACCNT_ID = T21.PAR_ROW_ID (+) AND
    T14.PR_PROD_LN_ID = T7.ROW_ID (+) AND
    T23.ROOT_ASSET_ID = T19.ROW_ID (+) AND
    T19.PROD_ID = T2.ROW_ID (+) AND
    T23.BILL_ACCNT_ID = T18.PAR_ROW_ID (+) AND
    T23.RTNG_DLR_ID = T1.PAR_ROW_ID (+) AND
    T23.PREF_SRV_DLR_ID = T17.PAR_ROW_ID (+) AND
    T23.DLR_ID = T4.PAR_ROW_ID (+) AND
    T23.ROW_ID = T22.PAR_ROW_ID (+) AND
    T23.ROW_ID = T8.PAR_ROW_ID (+) AND
    T23.PR_CON_ID = T12.ROW_ID (+) AND
    T23.BU_ID = T15.BU_ID (+) AND T23.ROW_ID = T15.ASSET_ID (+) AND
    T15.BU_ID = T13.ROW_ID (+) AND
    T15.BU_ID = T5.PAR_ROW_ID (+) AND
    ((T23.SERIAL_NUM IS NOT NULL AND T23.PAR_ASSET_ID IS NULL OR T23.X_PHONE_NUMBER IS NOT NULL AND T23.PAR_ASSET_ID IS NOT NULL) AND 
     (T9.VER_NUM = :1));
    Query execution plan:
    PLAN_TABLE_OUTPUT
    ------------------------------------------------------------------------------------------------------------------------------------------------------
    Plan hash value: 967177145
    
    --------------------------------------------------------------------------------------------------------------------
    | Id  | Operation                                         | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
    --------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT                                  |                | 54117 |    92M|  4435K  (1)| 01:58:43 |
    |   1 |  NESTED LOOPS OUTER                               |                | 54117 |    92M|  4435K  (1)| 01:58:43 |
    |   2 |   NESTED LOOPS OUTER                              |                | 54117 |    87M|  4261K  (1)| 01:54:04 |
    |   3 |    NESTED LOOPS OUTER                             |                | 54117 |    86M|  4154K  (1)| 01:51:13 |
    |   4 |     NESTED LOOPS OUTER                            |                | 54117 |    85M|  4111K  (1)| 01:50:03 |
    |   5 |      NESTED LOOPS OUTER                           |                | 54117 |    84M|  3980K  (1)| 01:46:33 |
    |   6 |       NESTED LOOPS OUTER                          |                | 54117 |    83M|  3937K  (1)| 01:45:24 |
    |   7 |        NESTED LOOPS OUTER                         |                | 54117 |    81M|  3763K  (1)| 01:40:44 |
    |   8 |         NESTED LOOPS OUTER                        |                | 54117 |    81M|  3751K  (1)| 01:40:25 |
    |   9 |          NESTED LOOPS OUTER                       |                | 54117 |    80M|  3621K  (1)| 01:36:57 |
    |  10 |           NESTED LOOPS OUTER                      |                | 54117 |    73M|  3515K  (1)| 01:34:07 |
    |  11 |            NESTED LOOPS OUTER                     |                | 54117 |    71M|  3410K  (1)| 01:31:18 |
    |  12 |             NESTED LOOPS OUTER                    |                | 54117 |    69M|  3410K  (1)| 01:31:18 |
    |  13 |              NESTED LOOPS OUTER                   |                | 54117 |    67M|  3410K  (1)| 01:31:18 |
    |  14 |               NESTED LOOPS OUTER                  |                | 54117 |    66M|  3410K  (1)| 01:31:18 |
    |  15 |                NESTED LOOPS OUTER                 |                | 54117 |    64M|  3324K  (1)| 01:28:59 |
    |  16 |                 NESTED LOOPS OUTER                |                | 54117 |    62M|  3237K  (1)| 01:26:40 |
    |  17 |                  NESTED LOOPS                     |                | 54117 |    57M|  3106K  (1)| 01:23:10 |
    |  18 |                   NESTED LOOPS OUTER              |                |    71 | 43665 |   381   (2)| 00:00:01 |
    |  19 |                    NESTED LOOPS OUTER             |                |    71 | 42316 |   323   (2)| 00:00:01 |
    |  20 |                     NESTED LOOPS OUTER            |                |    71 | 41322 |   322   (2)| 00:00:01 |
    |  21 |                      NESTED LOOPS                 |                |    71 | 24708 |   265   (3)| 00:00:01 |
    |  22 |                       NESTED LOOPS                |                |    77 |  2772 |   141   (4)| 00:00:01 |
    |* 23 |                        TABLE ACCESS FULL          | S_VOD_VER      |    75 |  1350 |    72   (7)| 00:00:01 |
    |  24 |                        TABLE ACCESS BY INDEX ROWID| S_VOD          |     1 |    18 |     1   (0)| 00:00:01 |
    |* 25 |                         INDEX UNIQUE SCAN         | S_VOD_P1       |     1 |       |     1   (0)| 00:00:01 |
    |  26 |                       TABLE ACCESS BY INDEX ROWID | S_PROD_INT     |     1 |   312 |     2   (0)| 00:00:01 |
    |* 27 |                        INDEX RANGE SCAN           | S_PROD_INT_F9  |     1 |       |     1   (0)| 00:00:01 |
    |  28 |                      TABLE ACCESS BY INDEX ROWID  | S_PROD_LN      |     1 |   234 |     1   (0)| 00:00:01 |
    |* 29 |                       INDEX UNIQUE SCAN           | S_PROD_LN_P1   |     1 |       |     1   (0)| 00:00:01 |
    |  30 |                     TABLE ACCESS BY INDEX ROWID   | S_CTLG_CAT     |     1 |    14 |     1   (0)| 00:00:01 |
    |* 31 |                      INDEX UNIQUE SCAN            | S_CTLG_CAT_P1  |     1 |       |     1   (0)| 00:00:01 |
    |  32 |                    TABLE ACCESS BY INDEX ROWID    | S_CTLG_CAT     |     1 |    19 |     1   (0)| 00:00:01 |
    |* 33 |                     INDEX UNIQUE SCAN             | S_CTLG_CAT_P1  |     1 |       |     1   (0)| 00:00:01 |
    |* 34 |                   TABLE ACCESS BY INDEX ROWID     | S_ASSET        |   760 |   375K| 43753   (1)| 00:01:11 |
    |* 35 |                    INDEX RANGE SCAN               | S_ASSET_U2     | 55873 |       |   312   (3)| 00:00:01 |
    |  36 |                  TABLE ACCESS BY INDEX ROWID      | S_ASSET_OM     |     1 |    94 |     2   (0)| 00:00:01 |
    |* 37 |                   INDEX RANGE SCAN                | S_ASSET_OM_U1  |     1 |       |     2   (0)| 00:00:01 |
    |  38 |                 TABLE ACCESS BY INDEX ROWID       | S_CONTACT      |     1 |    39 |     2   (0)| 00:00:01 |
    |* 39 |                  INDEX UNIQUE SCAN                | S_CONTACT_P1   |     1 |       |     1   (0)| 00:00:01 |
    |  40 |                TABLE ACCESS BY INDEX ROWID        | S_ADDR_PER     |     1 |    29 |     2   (0)| 00:00:01 |
    |* 41 |                 INDEX UNIQUE SCAN                 | S_ADDR_PER_P1  |     1 |       |     1   (0)| 00:00:01 |
    |  42 |               TABLE ACCESS BY INDEX ROWID         | S_ORG_EXT      |     1 |    32 |     1   (0)| 00:00:01 |
    |* 43 |                INDEX UNIQUE SCAN                  | S_ORG_EXT_U3   |     1 |       |     1   (0)| 00:00:01 |
    |  44 |              TABLE ACCESS BY INDEX ROWID          | S_ORG_EXT      |     1 |    32 |     1   (0)| 00:00:01 |
    |* 45 |               INDEX UNIQUE SCAN                   | S_ORG_EXT_U3   |     1 |       |     1   (0)| 00:00:01 |
    |  46 |             TABLE ACCESS BY INDEX ROWID           | S_ORG_EXT      |     1 |    32 |     1   (0)| 00:00:01 |
    |* 47 |              INDEX UNIQUE SCAN                    | S_ORG_EXT_U3   |     1 |       |     1   (0)| 00:00:01 |
    |  48 |            TABLE ACCESS BY INDEX ROWID            | S_ORG_EXT      |     1 |    36 |     2   (0)| 00:00:01 |
    |* 49 |             INDEX UNIQUE SCAN                     | S_ORG_EXT_U3   |     1 |       |     1   (0)| 00:00:01 |
    |  50 |           TABLE ACCESS BY INDEX ROWID             | S_ORG_EXT      |     1 |   139 |     2   (0)| 00:00:01 |
    |* 51 |            INDEX UNIQUE SCAN                      | S_ORG_EXT_U3   |     1 |       |     1   (0)| 00:00:01 |
    |  52 |          TABLE ACCESS BY INDEX ROWID              | S_ORG_EXT_X    |     1 |    16 |     2   (0)| 00:00:01 |
    |* 53 |           INDEX RANGE SCAN                        | S_ORG_EXT_X_U1 |     1 |       |     2   (0)| 00:00:01 |
    |* 54 |         INDEX UNIQUE SCAN                         | S_PARTY_P1     |     1 |    12 |     1   (0)| 00:00:01 |
    |  55 |        TABLE ACCESS BY INDEX ROWID                | S_ASSET_BU     |     1 |    34 |     3   (0)| 00:00:01 |
    |* 56 |         INDEX RANGE SCAN                          | S_ASSET_BU_U1  |     1 |       |     2   (0)| 00:00:01 |
    |* 57 |       INDEX UNIQUE SCAN                           | S_PARTY_P1     |     1 |    12 |     1   (0)| 00:00:01 |
    |  58 |      TABLE ACCESS BY INDEX ROWID                  | S_ASSET        |     1 |    37 |     2   (0)| 00:00:01 |
    |* 59 |       INDEX UNIQUE SCAN                           | S_ASSET_P1     |     1 |       |     2   (0)| 00:00:01 |
    |  60 |     TABLE ACCESS BY INDEX ROWID                   | S_PROD_INT     |     1 |    16 |     1   (0)| 00:00:01 |
    |* 61 |      INDEX UNIQUE SCAN                            | S_PROD_INT_P1  |     1 |       |     1   (0)| 00:00:01 |
    |  62 |    TABLE ACCESS BY INDEX ROWID                    | S_ORG_EXT      |     1 |    14 |     2   (0)| 00:00:01 |
    |* 63 |     INDEX UNIQUE SCAN                             | S_ORG_EXT_U3   |     1 |       |     1   (0)| 00:00:01 |
    |  64 |   TABLE ACCESS BY INDEX ROWID                     | S_ASSET_X      |     1 |    93 |     3   (0)| 00:00:01 |
    |* 65 |    INDEX RANGE SCAN                               | S_ASSET_X_U1   |     1 |       |     2   (0)| 00:00:01 |
    --------------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
      23 - filter("T9"."VER_NUM"=TO_NUMBER(:1))
      25 - access("T3"."ROW_ID"="T9"."VOD_ID")
      27 - access("T14"."CFG_MODEL_ID"="T3"."OBJECT_NUM")
      29 - access("T14"."PR_PROD_LN_ID"="T7"."ROW_ID"(+))
      31 - access("T14"."CG_PR_CTLG_CAT_ID"="T16"."ROW_ID"(+))
      33 - access("T16"."PAR_CAT_ID"="T10"."ROW_ID"(+))
      34 - filter("T23"."PAR_ASSET_ID" IS NULL AND "T23"."SERIAL_NUM" IS NOT NULL OR "T23"."X_PHONE_NUMBER" IS
                  NOT NULL AND "T23"."PAR_ASSET_ID" IS NOT NULL)
      35 - access("T23"."PROD_ID"="T14"."ROW_ID")
      37 - access("T23"."ROW_ID"="T8"."PAR_ROW_ID"(+))
      39 - access("T23"."OWNER_CON_ID"="T11"."ROW_ID"(+))
      41 - access("T23"."PER_ADDR_ID"="T20"."ROW_ID"(+))
      43 - access("T23"."RTNG_DLR_ID"="T1"."PAR_ROW_ID"(+))
      45 - access("T23"."DLR_ID"="T4"."PAR_ROW_ID"(+))
      47 - access("T23"."PREF_SRV_DLR_ID"="T17"."PAR_ROW_ID"(+))
      49 - access("T23"."BILL_ACCNT_ID"="T18"."PAR_ROW_ID"(+))
      51 - access("T23"."OWNER_ACCNT_ID"="T21"."PAR_ROW_ID"(+))
      53 - access("T23"."OWNER_ACCNT_ID"="T6"."PAR_ROW_ID"(+))
      54 - access("T23"."PR_CON_ID"="T12"."ROW_ID"(+))
      56 - access("T23"."ROW_ID"="T15"."ASSET_ID"(+) AND "T23"."BU_ID"="T15"."BU_ID"(+))
      57 - access("T15"."BU_ID"="T13"."ROW_ID"(+))
      59 - access("T23"."ROOT_ASSET_ID"="T19"."ROW_ID"(+))
      61 - access("T19"."PROD_ID"="T2"."ROW_ID"(+))
      63 - access("T15"."BU_ID"="T5"."PAR_ROW_ID"(+))
      65 - access("T23"."ROW_ID"="T22"."PAR_ROW_ID"(+))
    
    Note
    -----
       - dynamic sampling used for this statement
    
    105 rows selected.

    Hello

    It is not necessary to display the trace file - everything is clear from the plans that you have posted. The optimizer is the selectivity calculation assuming the absence of correlation between the columns. You can do these calculations that yourself and you see that if the entries are correct and if the hypothesis of lack of correlation is also correct, then the results should be correct, too. Since they are not, it's one of two things: optimizer stats are wrong, or the columns are in fact related.

    First of all check the optimizer statistics: i.e. take NUM_ROWS and NUM_NULLS of DBA_TAB_COL_STATISTICS and compare them with the actual rowcounts. If they are correct (in a reasonable error margin), then it means that the columns are correlated, and the optimizer will need additional assistance to obtain right of cardinalities.

    Best regards
    Nikolai

  • Œuvres SQL query to MS SQL Server 2008, but not when you use the database kit

    I have this SQL query:

    DECLARE TABLE (@DataTypeTable)
    Name varchar (128).
    TypeID INT)

    -Add comma delimeted type data in the temporary table names
    INSERT INTO @DataTypeTable (name)
    SELECT * from WhatWeShouldDoRead.func_Split (@DataTypeTrimmed, ',')

    SELECT the name OF @DataTypeTable

    That takes a comma delimited by the string and returns the string as a table.  It works correctly in Microsoft SQL Server Management Studio.  When I run this as a stored procedure I return nothing.  There are no errors, SQL or otherwise.  I checked that I am connected to the correct database and the stored procedure is responsible without changing any error chain which is reported of this stored procedure (that code is not shown in the example above).  Has anyone seen this problem before, or have experience with SQL/Labview interfaces to tell me what I am doing wrong?

    Thanks in advance.


  • LabVIEW sql query

    HI HI... I'm a student doing a project related to labview. My task is to create a vi, type a user name and password to continue the whole VI.

    As I am a newbie to SQL query language, can anyone help me this?... This isn't like the VI with password lock

    There is a connection of the user called button in my main façade... u by clicking on it, a pop-up window will come out asking you a user name and a password. If the user name and the password is correct, then you can proceed. The problem is that I'm stuck with database...
    Help me pls!

    with respect,

    Ray

    Hello

    You have two cases:

    (1) connect to the database with string (link a string of connection information), and then type something like this:
    Driver is SQL Native Client;. Server = IP. Add.re.SS; UID = username; PW = *** ; Database = MyDatabase (depends on your database)

    (2) use a UDL file (you can configure it to connect to your database, with specific format). Remember that the connection is successful with test button.

    There is a UDL file that you can edit here: C:\Program NIUninstaller Instruments\LabVIEW 2010\examples\database\Labview.udl

    Edit: The connection dropped, you can set the path to an mdb file, and I think you can give the path of your accdb file.

    Kind regards

  • SQL query for empty string

    I am trying to execute the following SQl query, SELECT * failure WHERE ID = '123 ' AND RepairAction =' '; using the DB tools run Query.vi. This query never find record in my database. My database contains a record where the registered ID contains the value '123' and the RepairAction field is an empty string. If I remove the declaration 'AND RepairAction' ';' my query text, the record is found. I think my problem is that I do not use the correct syntax to describe and an empty string. I tried the following: "," ",""," "and NULL as empty and none of these work string arguments.

    I was hoping someone might be able to tell me what the correct syntax is an empty string or if there is another approach that I take.

    Thanks in advance for your help,

    Jim

    Jim,

    Just to be sure, have you used 'is' instead of '=' in this command?

    This makes all the difference in this command.

    Cerati

  • Support of SQL query: what tasks are Sunday from 07:00 - 12:00

    Hello tide Admins.

    I need to do a SQL query that can give me a list of jobs that are running on a given (Sunday) day from 07:00 - 12:00.  Our environment is not a maintenance window.  Therefore, whenever there is application of patches or upgrades, it causes more work and risk of failure of the tide tasks.    By moving jobs over the period from 07:00 - 12:00 Sunday, patch can be completed without disrupting the calendar.

    Im not the best at the SQL script and can not get my script to work. any help would be great. Here's what I have so far.  I get the error ' could not find identifier multi-player jobmst.jobmst_name.  IM using Tidal 6.0.3 with SQL for DB Admeral table.

    SELECT dbo.jobdtl.jobdtl_id, dbo.jobmst.jobmst_prntname, dbo.jobmst.jobmst_name

    FROM dbo.jobdtl INNER JOIN

    dbo.jobmst ON dbo.jobdtl.jobdtl_id = dbo.jobmst.jobdtl_id

    WHERE (dbo.jobdtl.jobdtl_fromdt > 14 September 2016 06:00 ') AND (dbo.jobdtl.jobdtl_fromdt< '09/11/2016="" 012:00:00="">

    GROUP OF dbo.jobdtl.jobdtl_id, dbo.jobmst.jobmst_prntname, dbo.jobmst.jobmst_name

    Hi Jeff

    The time window from the jobdtl returns only jobs that have an early start time and windows of time from beginning to the end, so there may be some tasks which are not time bound but have dependencies on other jobs, variables, etc.

    Here are the 2 SQL queries against the table jobrun and jobmst:

    -The list of jobs that took place last Sunday between 07:00 and 12:00

    SELECT jobmst.jobmst_prntname, jobmst.jobmst_name, jobrun.jobrun_time FROM jobrun
    JOIN jobmst on jobrun.jobmst_id = jobmst.jobmst_id
    WHERE jobrun.jobrun_time > = 9/11/2016 07:00 ' and jobrun.jobrun_time<= '9/11/2016="" 12:00="">
    ORDER BY jobrun.jobrun_time

    -For a list of jobs that are scheduled to run on Sunday to come between 07:00 and 12:00

    SELECT jobmst.jobmst_prntname, jobmst.jobmst_name, jobrun.jobrun_esttime FROM jobrun
    JOIN jobmst on jobrun.jobmst_id = jobmst.jobmst_id
    WHERE jobrun.jobrun_esttime > = 9/18/2016 07:00 ' and jobrun.jobrun_esttime<= '9/18/2016="" 12:00="">
    ORDER BY jobrun.jobrun_esttime

    ARO

    The Derrick

  • How to get the value of a column in sql query?

    Hi, anyone knows how to get the value of a column in sql query?

    Here is my code, the value must be 1350079224397 in my PB, but I get 0

    QString query ("SELECT version FROM db_version");

    QVariant result = sda.execute (query);
    QVariantMap versionMap = result.toList () such () .toMap ();
    If (! versionMap.IsEmpty ())
    {
    qDebug()<"Version: "=""><>
    }

    OK, I have the solution

    QString query ("SELECT version as version FROM db_version");

  • Looking for a SQL query to retrieve callvariables + ECC to a RESULTS of SCRIPT EXECUTE (translation VRUS)

    Hi team,

    I'm looking for a SQL query check data (ECC + CallVariable) due to a RESULT of SCRIPT EXECUTE when you ask an external VRU with a translation route to VRU with a 'run external Script '.

    In my view, that the data are analyzed between the termination call detail + termination call Variable.

    If you have already such a SQL query I would be very grateful to have.

    Thanks and greetings

    Nick

    Omar,

    respectfully, shorten the interval of a day might not be an option for a history report ;-)

    I recommend to take a look at the following SQL query:

    DECLARE @dateFrom DATETIME, @dateTo DATETIME

    SET @dateFrom = ' 2014-01-24 00:00:00 '

    SET @dateTo = ' 2014-01-25 00:00:00 '

    SELECT

    TCV. DateTime,

    TCD. RecoveryKey,

    TCD. RouterCallKeyDay,

    TCD. RouterCallKey,

    VME. EnterpriseName AS [ECVEnterpriseName],

    TCV. ArrayIndex,

    TCV. ECCValue

    OF Termination_Call_Variable tcv

    JOIN THE

    (SELECT RouterCallKeyDay, RouterCallKey, RecoveryKey IN Termination_Call_Detail WHERE DateTime > @dateFrom AND DateTime)< @dateto)="">

    THE tcv. TCDRecoveryKey = tcd. RecoveryKey

    LEFT OUTER JOIN Expanded_Call_Variable VME ON tcv. ExpandedCallVariableID = VME. ExpandedCallVariableID

    WHERE the tcv. DateTime > @dateFrom AND tcv. DateTime<>

    With variables, you can set up your code (for example, you could write SET @dateFrom =? and let the calling application to fill in the DateTime for you).

    In addition, join two large tables with all the lines, as you did (TCD - TCV) is never a good option.

    Another aspect to consider: all the ECC is actually arrays (always), is not good to leave aside the index value (tcv. ArrayIndex).

    G.

  • DA on updatable report items Sql query using the class

    Request Express 4.2.5.00.08

    10-11 g Oracle

    I have a page, so it has a link/button when he clicks then modal region will appear. Modal region has a as a table (Type SQL Query (updateable report)). All work very well so far.


    However, I've now added some complex things.

    for example. My region is based on the query of SQL Type (editable report).

    SELECT id, name of family, Traghetti, area, d_date, start_time, End_time, displacement, role of table where id =: P10_ID;

    I can also add a new line of course.

    My problem is, (point) Shift display based on the value of Start_Time point) and so I made sure the class for two items.

    for example, Start_Time (' class = "st_tm" ') and Maj ('class to = "Shift_time" '). Start_Time is based on (LOV) and shift is off the point in the sql query, but change the Start_Time.

    And now, I created the DA.

    1. event: change

    Selection type: jQuery Selector

    jQuery Selector: .st_tm

    Condition: No.

    1. action: set value

    Set type: Expression Javascript

    The JavaScript Expression: $(this.triggeringElement) .val ();

    The element affected: P10_X1 (it is a hidden item)

    2. action: Plsql Code

    Code: start to null; end;

    Page items to submit: P10_X1

    3. action: Plsql Code

    Code: start

    If: P10_X1 between '03' AND '11' then

    : P10_X1: = 'EARLIES ';

    elsif: P10_X1 then '12' and '18'

    : P10_X1: = 'LATES ';

    on the other

    : P10_X1: = 'NIGHTS';

    end if;

    end;

    Page items to submit: P10_X1

    NOW another DA

    Event: change

    Article (s) P10_X1

    Condition (in list)

    value (HASTY, LATES, NIGHTS)

    Action:

    Set type: Expression Javascript

    The JavaScript Expression: $(this.triggeringElement) .val ();

    Affected item:

    Selection type: jQuery Selector

    jQuery Selector:. Shift_time

    Well, I look forward all the above work well, but I'm having a problem.

    If I have more than 1 lines on a modal region and if I change the Start_Time value for a row then MAJ (point) is changing but he effect on all lines.

    I want, if I make the changes on the line line # 2 while only 2 # MAJ (point) must be not performed any other lines?

    Help, please!

    Kind regards

    RI

    I found the solution me thank you.

    I removed all the DA mentioned above and created a new.

    1. event: change

    Selection type: jQuery Selector

    jQuery Selector: .st_tm

    Condition: No.

    Scope of the event: dynamic and light on page load.

    Action (Javascript code)

    ROW_ID = $(this.triggeringElement).attr('id').substr (4);

    If ($(this.triggeringElement). val() > = 03 &. val() $(this.triggeringElement))<= 11)="">

    .Val ('EARLIES') $(«#f11_» + row_id);

    }

    ElseIf ($(this.triggeringElement). > 11 val() & $(this.triggeringElement). val())<= 18)="">

    .Val ('LATES') $(«#f11_» + row_id);

    }

    ElseIf (. val() > $19 (this.triggeringElement)) {}

    .Val ('NIGHTS') $(«#f11_» + row_id);

    }

    also created another DA because I have a disabled report items.

    Event: before the page is sent.

    $('_:_disabled').removeAttr ("disabled");

    and finally created manual process of DML for tabular and everything works fine. (Insert, Update, and delete).

    Kind regards.

Maybe you are looking for

  • Low WLan/WiFi signal using satellite L50

    I bought Toshiba Satellite L50. I really bard WIFI reception - good now I sat 2 meters between the router and I have only 2-3 bars.If I am to 7 meters away, I have no reception at all. There is no problem with the router, I checked with other devices

  • read/write binary file in struct

    Hi all, I created a profile of struct defined as follows: typedef struct {profile name char [30];Electric float;Double frequency;Profile of struct * next; } I can write structures in a file, but I have to do that when you try to insert a struct, you

  • Error for counter - write frequency

    I get the following error in Labview trying to write property of the duty of a meter lifecycle: Error - 200301 occurred to DAQmx Write (counter frequency 1Chan 1Samp) .vi:1 Possible reasons: Measurements: Unable to update the generation of pulses pro

  • When UAC is disabled

    When UAC is disabled, is an administrator connected with a full administrator access token? Or it is connected with the standard access token (as in the case when this OPTION is enabled) and the elevation happens in silence?

  • Dell laptop, cannot install the drivers for USB drives.

    Although the fans more of my family and the power of Google, I can not solve this problem is to have my sister. Each USB key she inserts into his laptop computer are, although recognized, never installed.  For example, when I install in another compu