0BWTC_C02 - Viewing number of query executions and refreshes

Hi,
I having been testing some queries I created for infocube 0BWTC_C02.  Is there any way to limit the key figure 0TCTNAVCTR to only show navigations that were query refreshes (e.g. ignoring navigations such as removing/adding a drilldown, results row, ect.)?  Do any of the available characteristics show what type of navigation was being performed, so that I could restrict the query to only look at certain types of navigations?
Thanks,
Andy

Hi Pcrao,
I am using the BW statistics infocube 0BWTC_C02.
But as far as I see, the key figure 0TCTNAVCTR( number of navigation steps)now only includes query execution, but also includes all other navigation steps like drill down etc.
Can we do some restriction on navigation type etc to find just the number times query execution takes place?
Thanks,
James

Similar Messages

  • Bitmap indexes have effect on query execution and equation of values.

    Hi,
    I have a Fact table and 17 dimension tables linked to it. On each foreign-key in the Fact-Table I have created a BITMAP Index. After that I Analyzed the fact table and made sure that the referential constraints were valid.
    Everything seem to be OK until I ran into a difference in totals when using the next 2 queries that should both result into the same total amount.
    Query 1:
    Below query is resulting in a wrong total amount and seems to be cartesian.
    SELECT    SUM(F.DOLLARS)
    FROM       SALES_FACTS         F
    ,               DIM_TIME                A
    ,               DIM_CUSTOMER      B
    ,               DIM_SALESAGENT  C
    ,               DIM_SALESTYPE     D
    ,               DIM_GEOGRAFIC     E
    WHERE    F.TIME_ID     =     A.TIME_ID
    AND         F.CUST_ID     =    B.CUST_ID
    AND         F.SA_ID         =    C.SA_ID
    AND         F.ST_ID          =   D.ST_ID
    AND         F.GEO_ID       =   E.GEO_ID
    AND         A.YEAR          =   '2006'
    AND         C.SALESNUM =   '3770'
    AND D.ST_ID <> '4'
    Query 2:
    Qeury 2 is the same as query 1 exept the the type of sales (D.ST_ID) is now set with in a range of allowed values. This query gives the correct result.
    SELECT    SUM(F.DOLLARS)
    FROM       SALES_FACTS         F
    ,               DIM_TIME                A
    ,               DIM_CUSTOMER      B
    ,               DIM_SALESAGENT  C
    ,               DIM_SALESTYPE     D
    ,               DIM_GEOGRAFIC     E
    WHERE    F.TIME_ID     =     A.TIME_ID
    AND         F.CUST_ID     =    B.CUST_ID
    AND         F.SA_ID         =    C.SA_ID
    AND         F.ST_ID          =   D.ST_ID
    AND         F.GEO_ID       =   E.GEO_ID
    AND         A.YEAR          =   '2006'
    AND         C.SALESNUM =   '3770'
    AND D.ST_ID in ('1','2','3','5') In my situation it seems that when I use the <> (not equal to) symbols in combination with the bitmap indexes, that the result of the sum becomes cartesian and thus incorrect.
    Has anyone an idea why the calculation of the total amount is different in both queries?
    Any help is very appreciated.
    Regards, Ilona

    Another strange effect is when I leave out the quotation around the not equal to 4 for the Sales_type id (ST_ID <> 4 in stead op ST_ID <> '4' ) then the totals is perfect.
    Query 1 version without quotations around ST_ID:
    SELECT    SUM(F.DOLLARS)
    FROM       SALES_FACTS         F
    ,               DIM_TIME                A
    ,               DIM_CUSTOMER      B
    ,               DIM_SALESAGENT  C
    ,               DIM_SALESTYPE     D
    ,               DIM_GEOGRAFIC     E
    WHERE    F.TIME_ID     =     A.TIME_ID
    AND         F.CUST_ID     =    B.CUST_ID
    AND         F.SA_ID         =    C.SA_ID
    AND         F.ST_ID          =   D.ST_ID
    AND         F.GEO_ID       =   E.GEO_ID
    AND         A.YEAR          =   '2006'
    AND         C.SALESNUM =   '3770'
    AND D.ST_ID <> 4 I still have no clue what causes this effect.
    Regards, Ilona

  • Number of query values and destination fields are not the same.

    Hey can any one help me out with this. I have no idea where i'm going wrong.
    String query_beg="insert into [insert$] values('"+rs1.getString("USERID")+"','"+rs1.getString("NAME")+"','"+beg_1+"','"+beg1_1+"','"+rs1.getTime("LOGINTIME")+"','"+rs1.getString("CLIENT_TIMEZONE")+"')";
    int num = stmnt2.executeUpdate(query_beg);Thanks in advance!
    Cheers

    I think it�s missing some field in your values

  • Query Performace and Order by

    Hello All -
    I have a query which executes in 250msecs. The moment I throw an order by clause in it the query takes 25secs to execute.
    The order by clause in on PK (just 1 column of type NUMBER)
    Records Returned : 300K
    Point to Note is I only need top 500 rows after the sorting is done.
    Can you please suggest some ways to reduce the time of query execution and still have order by clause in it.
    Thanks for your help.

    Point to Note is I only need top 500 rows after the
    sorting is done.
    Can you please suggest some ways to reduce the time
    of query execution and still have order by clause in
    it.
    Thanks for your help.Show us your query. Maybe we can find a way to make it faster. Also do you order ascending or descending and what is your oracle database version?
    This won't help much probably.
    SELECT *
    FROM (SELECT rownum rn, yourotherCols
          FROM yourTables order by PK)
    WHERE RN <= 500;Message was edited by:
    Sven W.

  • Query execution Flow

    Dear Experts,
    I would like to know how does the query execution happens @ runtime.
    Definitely its a SQL which been executed in backend.
    I have one scenerio Like Cube is having Material As Characteristic (M1,M2,M3)
    & Navigation Attribute Material group (MG) also some kef Figure Like Sales-Values.
    So can you please let me know what will be the order of tables which will be
    referred @ runtime when I execute the query.
    Please Advice.
    Regards,
    Vivek

    Hi,
    Check in RSRT with execute+debug and select SQL display, you will find the information.
    Check the below blogs for more info:
    /people/arun.varadarajan/blog/2009/07/19/how-to-utilize-your-sql-skills-in-sap-bw--part-2--understanding-query-execution
    /people/arun.varadarajan/blog/2009/07/19/how-to-utilize-your-sql-skills-in-sap-bw--part-3--query-execution-and-analysis
    Reg
    Pra

  • Finding number of working days during query execution

    Hi ,
    We have a requirement to calculate number of working days during query execution. In the cube we got "received date", this will be used as a variable in the query. Based on the received date value entered, query needs to display number of products received from past 1, 2,3,4 days (working days should include weekends or public holidays).
    1day     2 days     3 days     4 days   5 days 
    10         12            20            15          20
    to me it appears as I need to create virtual key figures.
    Regards,
    Ramz

    Hi ramesh,
    First try to create formula variables for start data and end date to calculate the no of working days.
    Create a Variable ZSTDT --of type replacement path.
    Type of Variable = Formula
    Variable Name = ZSTDT
    Characteristic = <info object>
    For Intervals Use = Select From Value
    Offset Start = 0000 Offset Length = 0000
    Replacement var with : key
    use the same steps to create one more formula variable to get end date.
    Now create a formula to get the No of days.
    once after getting no of days you can create buckets as per your need.
    for more info check the below links
    http://www.sd-solutions.com/SAP-HCM-BW-Replacement-Path-Variables.html
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/30f15839-0cf1-2b10-c6a7-ebe68cc87cdc?quicklink=index&overridelayout=true

  • Materialized view - parameter and refresh

    Hi,
    We are creating a Materialized view that has 2 rows for a CCID, one for this year and one for previous year with balances in 12 buckets.
    We have 2 questions:
    1. Can a materialized view be created with a parameter? or it can only take hard coded values?
    2. Can we refresh a part of materialized view, lets say we want to refresh the balances only for this year?
    Thanks

    user12182208 wrote:
    Hi,
    We are creating a Materialized view that has 2 rows for a CCID, one for this year and one for previous year with balances in 12 buckets.
    We have 2 questions:
    1. Can a materialized view be created with a parameter? or it can only take hard coded values? Typically, you want a materialized view to contain a complete set of aggregate data ... so, no, parameters don't really make sense (also, the results are pre-computed unlike a regular VIEW which is just a stored query. With a MV the data is actually computed on creation unless you defer it, and takes up physical storage).
    >
    2. Can we refresh a part of materialized view, lets say we want to refresh the balances only for this year?
    You can (depending on your Oracle Version and complexity of your materialized view) create a materialized view that does fast refreshes. If for some reason it was pertinent for you to achieve what you've asked, you could make 2 MV's and then a view that does a UNION ALL of them (the MV's would not contain overlaps), then you would just refresh the 1 MV, seems odd to me to want to do this though.
    Thanks

  • Oracle View that stores the Query execution time

    Hi Gurus
    i m using Oracle 10G in Unix. I wudiold like to know which Data dictionary view stores the execution of a query. If it is not stored then hw to find the query execution time other than (Set timing on) command. What is the use of elapsed time and what is the difference between execution time and elapsed time? How to calculate the execution time of a query.
    THanks
    Ram

    If you have a specific query you're going to run in SQL*Plus, just do
    a 'set timing on' before you execute the query.
    If you've got application SQL coming in from all over the place, you can
    identify specific SQL in V$SQL/ and look at ELAPSED_TIME/EXECUTIONS
    to get an average elapsed time.
    If you've got an application running SQL, and you need to know the
    specific timing of a specific execution (as opposed to an average),
    you can use DBMS_SUPPORT to set trace in the session that your
    application is running in, and then use TkProf to process the resulting
    trace file.

  • View query execution taking more time

    hi all,
    what would be the reason that my event view is still not getting executed for around 24 hours.
    actually i created 2 event views one is like ora1 and another is like ora1_1 both are having the same data.
    the first view ora1 executed by 14 hours.
    but my second view still not get executed it is still running for last 30 hours.
    very urgent.
    plz tell me the reason for the delay
    and if possible provide me a solution too
    thanks in advance
    suresh

    Dear sir,
    Please find the Scripts & Explain Plan for the Scripts in the attachment (ABC.zip)
    ABCReports51_new.sql - Fetching values from EVENT_T_VIEW
    ABCReports51_new_1.sql - Fetching values from EVENT_T
    create_event_view.sql - Command executed to create EVENT_T_VIEW
    ExplainPlan4event_t.txt - Explain Plan for the Query fetching values from event_t table
    ExplainPlan4event_t_view.txt - Explain Plan for the Query fetching values from event_t_view
    indexed_columns.txt - Indexed columns in event_t
    TableDesc.txt - Table description for event_t, event_bal_impacts_t, event_session_dialup_t
    SQL> desc event_bal_impacts_t;
    Name Null? Type
    OBJ_ID0 NUMBER(38)
    REC_ID NUMBER(38)
    ACCOUNT_OBJ_DB NUMBER(38)
    ACCOUNT_OBJ_ID0 NUMBER(38)
    ACCOUNT_OBJ_TYPE VARCHAR2(255)
    ACCOUNT_OBJ_REV NUMBER(38)
    AMOUNT NUMBER
    AMOUNT_DEFERRED NUMBER
    AMOUNT_ORIG NUMBER
    DISCOUNT NUMBER
    GL_ID NUMBER(38)
    IMPACT_CATEGORY VARCHAR2(255)
    IMPACT_TYPE NUMBER(38)
    ITEM_OBJ_DB NUMBER(38)
    ITEM_OBJ_ID0 NUMBER(38)
    ITEM_OBJ_TYPE VARCHAR2(255)
    ITEM_OBJ_REV NUMBER(38)
    PERCENT NUMBER
    PRODUCT_OBJ_DB NUMBER(38)
    PRODUCT_OBJ_ID0 NUMBER(38)
    PRODUCT_OBJ_TYPE VARCHAR2(255)
    PRODUCT_OBJ_REV NUMBER(38)
    QUANTITY NUMBER
    RATE_OBJ_DB NUMBER(38)
    RATE_OBJ_ID0 NUMBER(38)
    RATE_OBJ_TYPE VARCHAR2(255)
    RATE_OBJ_REV NUMBER(38)
    RATE_TAG VARCHAR2(255)
    RESOURCE_ID NUMBER(38)
    RESOURCE_ID_ORIG NUMBER(38)
    TAX_CODE VARCHAR2(255)
    NODE_LOCATION VARCHAR2(255)
    LINEAGE VARCHAR2(255)
    SQL> desc event_session_dialup_t;
    Name Null? Type
    OBJ_ID0 NUMBER(38)
    ANI VARCHAR2(120)
    BYTES_IN NUMBER(38)
    BYTES_OUT NUMBER(38)
    DESCR VARCHAR2(255)
    DNIS VARCHAR2(60)
    IPADDR RAW(30)
    LOGIN VARCHAR2(255)
    NETWORK VARCHAR2(30)
    PACKETS_IN NUMBER(38)
    PACKETS_OUT NUMBER(38)
    SPEED NUMBER(38)
    STATUS NUMBER(38)
    TERM_CAUSE NUMBER(38)
    TERMSERV_ID VARCHAR2(60)
    TERMSERV_PORT VARCHAR2(60)
    TIMEZONE NUMBER(38)
    TRANS_ID VARCHAR2(60)
    TYPE NUMBER(38)
    UNITS NUMBER(38)
    SQL> desc event_t;
    Name Null? Type
    POID_DB NUMBER(38)
    POID_ID0 NUMBER(38)
    POID_TYPE VARCHAR2(255)
    POID_REV NUMBER(38)
    CREATED_T NUMBER(38)
    MOD_T NUMBER(38)
    READ_ACCESS VARCHAR2(1)
    WRITE_ACCESS VARCHAR2(1)
    ACCOUNT_OBJ_DB NUMBER(38)
    ACCOUNT_OBJ_ID0 NUMBER(38)
    ACCOUNT_OBJ_TYPE VARCHAR2(255)
    ACCOUNT_OBJ_REV NUMBER(38)
    ARCHIVE_STATUS NUMBER(38)
    CURRENCY NUMBER(38)
    DESCR VARCHAR2(255)
    EFFECTIVE_T NUMBER(38)
    END_T NUMBER(38)
    EARNED_START_T NUMBER(38)
    EARNED_END_T NUMBER(38)
    EARNED_TYPE NUMBER(38)
    EVENT_NO VARCHAR2(60)
    FLAGS NUMBER(38)
    GROUP_OBJ_DB NUMBER(38)
    GROUP_OBJ_ID0 NUMBER(38)
    GROUP_OBJ_TYPE VARCHAR2(255)
    GROUP_OBJ_REV NUMBER(38)
    ITEM_OBJ_DB NUMBER(38)
    ITEM_OBJ_ID0 NUMBER(38)
    ITEM_OBJ_TYPE VARCHAR2(255)
    ITEM_OBJ_REV NUMBER(38)
    NAME VARCHAR2(255)
    PROGRAM_NAME VARCHAR2(60)
    PROVIDER_DESCR VARCHAR2(255)
    PROVIDER_ID_DB NUMBER(38)
    PROVIDER_ID_ID0 NUMBER(38)
    PROVIDER_ID_TYPE VARCHAR2(255)
    PROVIDER_ID_REV NUMBER(38)
    PROVIDER_IPADDR RAW(30)
    RUM_NAME VARCHAR2(255)
    TOD_MODE NUMBER(38)
    TIMEZONE_MODE NUMBER(38)
    MIN_QUANTITY NUMBER
    MIN_UNIT NUMBER(38)
    INCR_QUANTITY NUMBER
    INCR_UNIT NUMBER(38)
    ROUNDING_MODE NUMBER(38)
    NET_QUANTITY NUMBER
    UNRATED_QUANTITY NUMBER
    SERVICE_OBJ_DB NUMBER(38)
    SERVICE_OBJ_ID0 NUMBER(38)
    SERVICE_OBJ_TYPE VARCHAR2(255)
    SERVICE_OBJ_REV NUMBER(38)
    SESSION_OBJ_DB NUMBER(38)
    SESSION_OBJ_ID0 NUMBER(38)
    SESSION_OBJ_TYPE VARCHAR2(255)
    SESSION_OBJ_REV NUMBER(38)
    START_T NUMBER(38)
    SYS_DESCR VARCHAR2(255)
    TAX_LOCALES VARCHAR2(1024)
    TAX_SUPPLIER_ID_DB NUMBER(38)
    TAX_SUPPLIER_ID_ID0 NUMBER(38)
    TAX_SUPPLIER_ID_TYPE VARCHAR2(255)
    TAX_SUPPLIER_ID_REV NUMBER(38)
    USERID_DB NUMBER(38)
    USERID_ID0 NUMBER(38)
    USERID_TYPE VARCHAR2(255)
    USERID_REV NUMBER(38)
    INVOICE_DATA VARCHAR2(4000)
    RATED_TIMEZONE_ID VARCHAR2(64)
    TIMEZONE_ADJ_START_T NUMBER(38)
    TIMEZONE_ADJ_END_T NUMBER(38)
    TIMEZONE_ID VARCHAR2(64)
    UNIT NUMBER(38)
    RERATE_OBJ_DB NUMBER(38)
    RERATE_OBJ_ID0 NUMBER(38)
    RERATE_OBJ_TYPE VARCHAR2(255)
    RERATE_OBJ_REV NUMBER(38)
    select index_name, column_name, column_position from all_ind_columns where table_name like upper('event_t')
    INDEX_NAME COLUMN_NAME COLUMN_POSITION
    I_EVENT_CREATED_T CREATED_T 1
    I_EVENT_EVENT__NO EVENT_NO 1
    I_EVENT_ITEM_OBJ__ID ITEM_OBJ_ID0 1
    I_EVENT_NDX CREATED_T 1
    I_EVENT_NDX POID_ID0 2
    I_EVENT_PROVIDER__ID PROVIDER_ID_ID0 1
    I_EVENT__ACCTOBJ_END_T ACCOUNT_OBJ_ID0 1
    I_EVENT__ACCTOBJ_END_T END_T 2
    I_EVENT__END_T END_T 1
    I_EVENT__ID POID_ID0 1
    I_EVENT__SERVOBJ_END_T SERVICE_OBJ_ID0 1
    I_EVENT__SERVOBJ_END_T END_T 2
    explain plan for select 'Technical Building' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(20060101000000) and date2unix(20060501000000) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.21','62.231.255.22','62.231.255.23','62.231.255.24','62.231.255.25','62.231.255.26','62.231.255.27','62.231.255.28','62.231.255.29','62.231.255.30','62.231.255.31','62.231.255.32','62.231.255.33','62.231.255.34','62.231.255.35','62.231.255.36','62.231.255.37','62.231.255.38','62.231.255.39','62.231.255.40','62.231.255.43','62.231.255.44','62.231.255.255','ADSL-7301-Test','AKO2_ERX700','AZA1_ERX700','GHA1_ERX700','GMU4_ERX700','HMR1_ERX700','HMSQ_ERX700','KWR1_ERX700','MUS','MUS1_ERX700','MUT','MUT1_ERX700','MUTRAH-ERX','OMAN-ADSL-Test','QUR2_ERX700','Qur','SEB2_ERX700','TECH_BLDG','WAT1_ERX700','WKB1_ERX700','azaiba','TB-C10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    select
    substr (lpad(' ', level-1) || operation || ' (' || options || ')',1,30 ) "Operation",
    object_name "Object",
    partition_start, partition_stop
    from
    plan_table
    start with id = 0
    connect by prior id=parent_id;
    Operation Object PARTITION_START PARTITION_STOP
    SELECT STATEMENT ()
    SORT (AGGREGATE)
    FILTER ()
    NESTED LOOPS ()
    NESTED LOOPS ()
    PARTITION RANGE (ALL) 1 41
    TABLE ACCESS (BY LOCAL I EVENT_T 1 41
    INDEX (RANGE SCAN) I_EVENT__END_T 1 41
    PARTITION RANGE (ITERATOR KEY KEY
    TABLE ACCESS (BY LOCAL I EVENT_BAL_IMPACTS_T KEY KEY
    INDEX (RANGE SCAN) I_EVENT_BAL_IMPACTS__ID KEY KEY
    PARTITION RANGE (ITERATOR) KEY KEY
    TABLE ACCESS (BY LOCAL IN EVENT_SESSION_DIALUP_T KEY KEY
    INDEX (UNIQUE SCAN) I_EVENT_SESSION_DIALUP__ID KEY KEY
    TABLE ACCESS (FULL) PRODUCT_T
    explain plan for select 'Technical Building' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(20060101000000) and date2unix(20060501000000) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.21','62.231.255.22','62.231.255.23','62.231.255.24','62.231.255.25','62.231.255.26','62.231.255.27','62.231.255.28','62.231.255.29','62.231.255.30','62.231.255.31','62.231.255.32','62.231.255.33','62.231.255.34','62.231.255.35','62.231.255.36','62.231.255.37','62.231.255.38','62.231.255.39','62.231.255.40','62.231.255.43','62.231.255.44','62.231.255.255','ADSL-7301-Test','AKO2_ERX700','AZA1_ERX700','GHA1_ERX700','GMU4_ERX700','HMR1_ERX700','HMSQ_ERX700','KWR1_ERX700','MUS','MUS1_ERX700','MUT','MUT1_ERX700','MUTRAH-ERX','OMAN-ADSL-Test','QUR2_ERX700','Qur','SEB2_ERX700','TECH_BLDG','WAT1_ERX700','WKB1_ERX700','azaiba','TB-C10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    select
    substr (lpad(' ', level-1) || operation || ' (' || options || ')',1,30 ) "Operation",
    object_name "Object",
    partition_start, partition_stop
    from
    plan_table
    start with id = 0
    connect by prior id=parent_id;
    Operation Object PARTITION_START PARTITION_STOP
    SELECT STATEMENT ()
    SORT (AGGREGATE)
    FILTER ()
    NESTED LOOPS ()
    NESTED LOOPS ()
    PARTITION RANGE (ALL) 1 41
    TABLE ACCESS (BY LOCAL I EVENT_T 1 41
    INDEX (RANGE SCAN) I_EVENT__END_T 1 41
    PARTITION RANGE (ITERATOR KEY KEY
    TABLE ACCESS (BY LOCAL I EVENT_BAL_IMPACTS_T KEY KEY
    INDEX (RANGE SCAN) I_EVENT_BAL_IMPACTS__ID KEY KEY
    PARTITION RANGE (ITERATOR) KEY KEY
    TABLE ACCESS (BY LOCAL IN EVENT_SESSION_DIALUP_T KEY KEY
    INDEX (UNIQUE SCAN) I_EVENT_SESSION_DIALUP__ID KEY KEY
    TABLE ACCESS (FULL) PRODUCT_T
    spool create_event_view.lst
    set timing on
    create view event_t_view as (select * from event_t where end_t between date2unix('20060701000000') and date2unix('20061001000000'))
    spool off
    set serveroutput on size 1000000
    set timing on
    set linesize 132
    spool ABCReports51_new_1.lst
    declare
    m_report_year number(8);
    v_start varchar(38);
    v_end varchar(38);
    -- Fetch all Session Events for Non CyberCafe (Only IP Service) Product Events
    cursor SessionUsagePOP1(v_start varchar, v_end varchar) is
    select 'Technical Building' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.21','62.231.255.22','62.231.255.23','62.231.255.24','62.231.255.25','62.231.255.26','62.231.255.27','62.231.255.28','62.231.255.29','62.231.255.30','62.231.255.31','62.231.255.32','62.231.255.33','62.231.255.34','62.231.255.35','62.231.255.36','62.231.255.37','62.231.255.38','62.231.255.39','62.231.255.40','62.231.255.43','62.231.255.44','62.231.255.255','ADSL-7301-Test','AKO2_ERX700','AZA1_ERX700','GHA1_ERX700','GMU4_ERX700','HMR1_ERX700','HMSQ_ERX700','KWR1_ERX700','MUS','MUS1_ERX700','MUT','MUT1_ERX700','MUTRAH-ERX','OMAN-ADSL-Test','QUR2_ERX700','Qur','SEB2_ERX700','TECH_BLDG','WAT1_ERX700','WKB1_ERX700','azaiba','TB-C10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP2(v_start varchar, v_end varchar) is
    select 'Training Center' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.224','62.231.255.225','62.231.255.226','62.231.255.227','62.231.255.228','TRG-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP3(v_start varchar, v_end varchar) is
    select 'Al-Khuwair' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.208') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP4(v_start varchar, v_end varchar) is
    select 'Sallalah' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.192.20','62.231.192.21','62.231.192.22','62.231.255.132','62.231.255.133','62.231.255.134','SAL-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP5(v_start varchar, v_end varchar) is
    select 'Sohar' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.200.20','62.231.200.21','62.231.255.148','62.231.255.149','SOH-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP6(v_start varchar, v_end varchar) is
    select 'Nizwa' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.216.20','62.231.255.180','62.231.255.181','NIZ-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP7(v_start varchar, v_end varchar) is
    select 'Masirah' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('212.72.13.41') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP8(v_start varchar, v_end varchar) is
    select 'Ibri' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.224.20') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP9(v_start varchar, v_end varchar) is
    select 'Sur' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.164','SUR-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP10(v_start varchar, v_end varchar) is
    select 'Buraimi' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('BR-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    begin
    m_report_year := 2006;
    v_start:='20060701000000';
    v_end:='20061001000000';
    /** Dialup Accounts Usage on each month **/
    dbms_output.put_line('Dialup Accounts Usage on each month during the Year ' || m_report_year);
    dbms_output.put_line('POP Name MM-YYYY No. of Seconds Avg. No. of Seconds');
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP1(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP2(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP3(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP4(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP5(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP6(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP7(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP8(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP9(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP10(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    end;
    spool off
    Dialup Accounts Usage on each month during the Year 2006
    POP Name MM-YYYY No. of Seconds Avg. No. of Seconds
    Technical Building 07-2006 1,468,439,634 1,985.848
    Technical Building 08-2006 1,476,030,818 1,954.927
    Technical Building 09-2006 1,385,143,427 1,917.764
    Training Center 07-2006 19,481,275 2,193.343
    Training Center 08-2006 7,368,849 2,317.977
    Training Center 09-2006
    Al-Khuwair 07-2006 327,753,498 1,929.392
    Al-Khuwair 08-2006 326,043,930 1,867.751
    Al-Khuwair 09-2006 314,307,853 1,884.758
    Sallalah 07-2006 297,238,088 2,127.765
    Sallalah 08-2006 291,646,501 2,049.130
    Sallalah 09-2006 256,812,968 2,050.403
    Sohar 07-2006 499,669,759 2,002.588
    Sohar 08-2006 517,602,784 1,996.208
    Sohar 09-2006 460,677,766 1,965.760
    Nizwa 07-2006 313,445,474 1,804.896
    Nizwa 08-2006 336,749,026 1,820.708
    Nizwa 09-2006 279,534,466 1,809.074
    Masirah 07-2006 17,417,301 2,315.822
    Masirah 08-2006 20,053,961 2,791.087
    Masirah 09-2006 17,225,347 2,656.593
    Ibri 07-2006
    Ibri 08-2006
    Ibri 09-2006
    Sur 07-2006 146,555,060 1,765.681
    Sur 08-2006 148,694,745 1,710.157
    Sur 09-2006 138,260,990 1,687.962
    Buraimi 07-2006
    Buraimi 08-2006
    Buraimi 09-2006
    PL/SQL procedure successfully completed.
    Elapsed: 14:27:26.17
    set serveroutput on size 1000000
    set timing on
    set linesize 132
    spool ABCReports51_new.lst
    declare
    m_report_year number(8);
    v_start varchar(38);
    v_end varchar(38);
    -- Fetch all Session Events for Non CyberCafe (Only IP Service) Product Events
    cursor SessionUsagePOP1(v_start varchar, v_end varchar) is
    select 'Technical Building' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.21','62.231.255.22','62.231.255.23','62.231.255.24','62.231.255.25','62.231.255.26','62.231.255.27','62.231.255.28','62.231.255.29','62.231.255.30','62.231.255.31','62.231.255.32','62.231.255.33','62.231.255.34','62.231.255.35','62.231.255.36','62.231.255.37','62.231.255.38','62.231.255.39','62.231.255.40','62.231.255.43','62.231.255.44','62.231.255.255','ADSL-7301-Test','AKO2_ERX700','AZA1_ERX700','GHA1_ERX700','GMU4_ERX700','HMR1_ERX700','HMSQ_ERX700','KWR1_ERX700','MUS','MUS1_ERX700','MUT','MUT1_ERX700','MUTRAH-ERX','OMAN-ADSL-Test','QUR2_ERX700','Qur','SEB2_ERX700','TECH_BLDG','WAT1_ERX700','WKB1_ERX700','azaiba','TB-C10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP2(v_start varchar, v_end varchar) is
    select 'Training Center' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.224','62.231.255.225','62.231.255.226','62.231.255.227','62.231.255.228','TRG-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP3(v_start varchar, v_end varchar) is
    select 'Al-Khuwair' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.208') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP4(v_start varchar, v_end varchar) is
    select 'Sallalah' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.192.20','62.231.192.21','62.231.192.22','62.231.255.132','62.231.255.133','62.231.255.134','SAL-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP5(v_start varchar, v_end varchar) is
    select 'Sohar' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.200.20','62.231.200.21','62.231.255.148','62.231.255.149','SOH-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP6(v_start varchar, v_end varchar) is
    select 'Nizwa' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.216.20','62.231.255.180','62.231.255.181','NIZ-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP7(v_start varchar, v_end varchar) is
    select 'Masirah' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('212.72.13.41') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP8(v_start varchar, v_end varchar) is
    select 'Ibri' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.224.20') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP9(v_start varchar, v_end varchar) is
    select 'Sur' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('62.231.255.164','SUR-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    cursor SessionUsagePOP10(v_start varchar, v_end varchar) is
    select 'Buraimi' PopName, sum(end_t - start_t) UsageSec, avg(end_t - start_t) AvgSec
    from event_bal_impacts_t c, event_session_dialup_t b, event_t_view a
    where
    end_t between date2unix(v_start) and date2unix(v_end) and
    b.obj_id0 = a.poid_id0 and
    c.obj_id0 = a.poid_id0 and
    c.rec_id = 0 and
    a.service_obj_type = '/service/ip' and
    a.poid_type = '/event/session/dialup' and
    b.termserv_id in ('BR-10K-ADSL') and
    c.product_obj_id0 not in
    select poid_id0 from product_t
    where name like '%Cyber%'
    begin
    m_report_year := 2006;
    v_start:='20060701000000';
    v_end:='20061001000000';
    /** Dialup Accounts Usage on each month **/
    dbms_output.put_line('Dialup Accounts Usage on each month during the Year ' || m_report_year);
    dbms_output.put_line('POP Name MM-YYYY No. of Seconds Avg. No. of Seconds');
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP1(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP2(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP3(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP4(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP5(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP6(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP7(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP8(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP9(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    for c1 in 7..9
    loop <<c1_loop>>
    for c11 in SessionUsagePOP10(
    m_report_year || lpad(c1, 2, '0') || '01000000',
    m_report_year || lpad(c1 + 1, 2, '0') || '01000000'
    loop <<c11_loop>>
    dbms_output.put_line(
    rpad(c11.PopName,25, ' ') || ' ' ||
    to_char(c1, '00') || '-' ||
    m_report_year || ' ' ||
    to_char(c11.UsageSec,'999,999,999,999') || ' ' ||
    to_char(c11.AvgSec,'999,999,999.999')
    end loop c11_loop;
    end loop c1_loop;
    end;
    spool off

  • Strange query plans, and so different results from a view.

    In my database (11g), I have a currency exchange rate table, which contains all currencies and their exchange rate to USD. I need to have a number of different exchange rates - To GBP, EUR, etc...
    To accomplish this I have created a view, which has one union statement of all the USD exchange rates, with the same data joined back on itself to give the exchange rates based on their exchange rate to USD - ie: SELECT b1.Date, b1.Currency AS FromCurrency, b2.Currency as ToCurrency, b1.Rate/b2.Rate as Exchange Rate FROM Rates b1, Rates b2 on b1.Date = b2.Date
    This view works fine when I query it, and returns the data as I expect.
    I have a second view that is joined to this view to give a return of the amount in each currency for reporting. This view seems to work correctly when I narrow down the search requirements and have a small set of data.
    The issue I am having is when I query the second view and get it to return all the data. Instead of receiving 4 rows per transaction (I am only interested in 4 exchange rates for display) I typically receive up to 2 rows. The first record is for the conversion to USD, the second record is for the conversion to the supplied currency. The issue is that this exchange rate actually includes the aggregate for all 3 other requested currencies (not the USD).
    So instead of getting something like:
    Amt RC BC (Amt = Amount, RC = Reporting Currency. BC = Base Currency)
    60 GBP GBP
    80 EUR GBP
    100 USD GBP
    1000 ZAR GBP
    60 GBP USD
    80 EUR USD
    100 USD USD
    1000 ZAR USD
    I get the following set of results:
    1140 GBP GBP
    100 USD GBP
    100 USD USD
    Has anyone come accross something similar or have any ideas on how I can resolve this?
    Thanks
    PS: I can get both sets of results from the same view depending on the filter criteria. Also if I convert the exchange rates into a table, it then returns the correct results as expected.

    943081 wrote:
    The idea is to seek help in solving the problem. I was hoping that perhaps someone had experienced the same thing - different results for "effectively" the same query:Well, that's the issue... without additional info, it's not clear what issue you were seeing.
    SELECT * FROM view WHERE Date = '01 January, 2012'
    verse
    SELECT * FROM view WHERE Date > '31 December, 2011' ORDER BY DateNow it's a bit clearer. That second query is not "effectively" the same as the first query. If the date column is in DATE format, then you ought to have a to_date() around the date string to explicitly convert it into a date so you can do date-to-date comparisons correctly. Also, DATE datatype stores times as well as dates, so asking for data matching midnight of a specific date is different than asking for data greater than midnight of the previous day.
    If the date string is a string, then ... well, the string "31 December 2011" is greater than the string "31 August 2013", despite it being an earlier date. This is why making sure you're using the right datatype for the job is important - a date is different to a string that just happens to contain a date.
    DateID
    I have no objection to using a Date but always struggle to understand what someone means when they tell me "06/07/2012" - granted if the day is above 12 or the same day and month I don't have a problem - but it still leaves 121 days a year that are confusing. sure, but just because you find outputting the display (or rather, someone else's output) confusing doesn't mean you still shouldn't use the correct datatype. Store things as a date, and you can then output it in whatever format you like. Try doing that with a string or a number.
    Don't say it doesn't happen as I got a birthday card from a company in May this year when I have specifically entered my date of birth as being the 5 of a month (name drop down box on their website)!Just because someone else doesn't understand how to work with dates correctly doesn't mean you can't! It's not exactly rocket science, after all!*{;-)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • After I run a query can I get it to return the number of files matched and each individual file name?

    After I run a query can I get it to return the number of files matched and each individual file name?  I am trying to do a data mining routine and this would be helpful. 
    BBANACKI

    Hi bbanacki,
    Please have a look at the following code:
    Define your queries and then:
    oAdvancedQuery.ReturnType=eSearchFile
    oMyDataFinder.Results.MaxCount = iMaxNumberOfReturndElements
    Call oMyDataFinder.Search(oAdvancedQuery)
    Set oMyResults  = oMyDataFinder.Results
    If oMyResults.IsIncomplete Then
      msgbox "The first " & str(oMyResults.Count) & " files found"
    Else
      msgbox str(oMyResults.Count) & "  files found"
    End If
    for iLoop = 1 to oMyResults.Count
      Cell.Text = oMyResults(iLoop).Properties("Name").Value
      Cell.Text = oMyResults(iLoop).Properties("fullpath").Value
    next
    Greetings
    Walter

  • Help with query rewrite and materialized views

    Hello everybody,
    I'm currently learning how to use Oracle (10G Enterprise) and in particular, Materialized Views.
    I seem to have a problem making the optimizer use a materialized view. I have already set the OPTIMIZER_MODE, QUERY_REWRITE_ENABLED and QUERY_REWRITE_INTEGRITY as needed.
    I need to create a materialized view for the following query:
    Q1:
    SELECT PS_SUPPKEY, PS_PARTKEY, PS_SUPPCOST
    FROM PARTSUPPLIER E, PART WHERE PS_PARTKEY=P_PARTKEY and (lower(P_COMMENT) LIKE ''_o_a\%'' or lower(P_COMMENT) LIKE ''_o_u\%'')
    and PS_SUPPCOST =
    (SELECT min( PS_SUPPCOST)
    FROM PARTSUPPLIER I
    WHERE E.PS_PARTKEY=I.PS_PARTKEY)'
    I created it using the following code:
    CREATE MATERIALIZED VIEW mv_q1
    ENABLE QUERY REWRITE
    AS SELECT PS_SUPPKEY, PS_PARTKEY, PS_SUPPCOST
    FROM PARTSUPPLIER E JOIN PART ON (PS_PARTKEY=P_PARTKEY)
    WHERE lower(P_COMMENT) LIKE '_o_a%' or lower(P_COMMENT) LIKE '_o_u%'
    and PS_SUPPCOST=
    (SELECT min( PS_SUPPCOST)
    FROM PARTSUPPLIER I
    WHERE E.PS_PARTKEY=I.PS_PARTKEY);
    I have created the statistics using:
    execute dbms_stats.gather_table_stats('frandres',' mv_q1');
    execute dbms_stats.gather_table_stats('frandres','PARTSUPPLIER');
    execute dbms_stats.gather_table_stats('frandres','PART');
    Both partsupplier and part are tables and not views.
    When executing Q1, the plan does not use the materialized view. Furthermore, when using explain rewrite:
    DECLARE
    qrytxt VARCHAR2(3000) := 'SELECT PS_SUPPKEY, PS_PARTKEY, PS_SUPPCOST
    FROM PARTSUPPLIER E, PART WHERE PS_PARTKEY=P_PARTKEY and (lower(P_COMMENT) LIKE ''_o_a\%'' or lower(P_COMMENT) LIKE ''_o_u\%'')
    and PS_SUPPCOST =
    (SELECT min( PS_SUPPCOST)
    FROM PARTSUPPLIER I
    WHERE E.PS_PARTKEY=I.PS_PARTKEY)';
    BEGIN
    dbms_mview.EXPLAIN_REWRITE
    (qrytxt,'MV_Q1','MV_Q1');
    END;
    I get the following message:
    MESSAGE
    QSM-01150: query did not rewrite
    QSM-01263: query rewrite not possible when query references a dictionary table o
    r view
    QSM-01219: no suitable materialized view found to rewrite this query
    What I can't understand is why it says I am referencing the dictionary or a view?
    If I remove the (lower(P_COMMENT) LIKE ''_o_a\%'' or lower(P_COMMENT) LIKE ''_o_u\%'') condition to the query (using the same materialized view), I get the following message from EXPLAIN_REWRITE:
    MESSAGE
    QSM-01150: query did not rewrite
    QSM-01219: no suitable materialized view found to rewrite this query
    Which is reasonable.
    I don't know if the like condition is messing up my materialized view. Can anyone please help?
    Thanks a lot in advance.
    Edited by: user12072111 on Oct 29, 2009 9:43 PM

    Bingo!
    The 10.2.0.3 patch set is supposed to fix this ( [List of bugs fixed (MVs)|http://www.dbatools.net/doc/bug10203.html#MVIEW] )
    In particular:
    5052568      Query rewrite does not work for SQL with LIKE clause.
    Thank you very much for your message!
    The downside is that I'm only using Oracle for educational purposes and consequently have no Metalink id, so I can't install the patch. Thanks a lot though!

  • Query Execution/Elapsed Time and Oracle Data Blocks

    Hi,
    I have created 3 tables with one column only. As an example Table 1 below:
    SQL> create table T1 ( x char(2000));
    So 3 tables are created in this way i.e. T1,T2 and T3.
    T1 = in the default database tablespace of 8k (11g v11.1.0.6.0 - Production) (O.S=Windows).
    T2 = I created in a Tablespace with Blocksize 16k.
    T3 = I created in a Tablespace with Blocksize 4k. In the same Instance.
    Each table has approx. 500 rows (So, table sizes are same in all the cases to test Query execution time ). As these 3 tables are created under different data block sizes so the ALLOCATED no. of data blocks are different in all cases.
    T1  =   8k  = 256 Blocks =  00:00:04.76 (query execution time/elapsed time)
    T2  = 16k=121 Blocks =  00:00:04.64
    T3 =   4k =  490 Blocks =  00:00:04.91
    Table Access is FULL i.e. I have used select * from table_name; in all 3 cases. No Index nothing.
    My Question is why query execution time is nearly the same in all 3 cases because Oracle has to read all the data blocks in each case to fetch the records and there is a much difference in the allocated no. of blocks ???
    In 4k block size example, Oracle has to read just 121 blocks and it's taking nearly the same time as it's taking to read 490 blocks???
    This is just 1 example of different data blocks. I have around 40 tables in each block size tablespace and the result are nearly the same. It's very strange for me because there is a much difference in the no. of allocated blocks but execution time is almost the same, only difference in milliseconds.
    I'll highly appreciate the expert opinions.
    Bundle of thanks in advance.
    Best Regards,

    Hi Chris,
    No I'm not using separate databases, it's 8k database with non-standard blocksizes of 16k and 4k.
    Actually I wanted to test the Elapsed time of these 3 tables, so for that I tried to create the same size
    tables.
    And how I equalize these is like I have created one column table with char(2000).
    555 MB is the figure I wanted to use for these 3 tables ( no special figure, just to make it bigger than the
    RAM used for my db at the db startup to be sure of not retrieving the records from cache).
    so row size with overhead is 2006 * 290,000 rows = 581740000(bytes) / 1024 = 568105KB / 1024 = 555MB.
    Through this math calculation I thought It will be the total table size. So I Created the same no. of rows in 3 blocksizes.
    If it's wrong then what a mes because I was calculating tables sizes in the same way from the last few months.
    Can you please explain a little how you found out the tables sizes in different block sizes.Though I understood how you
    calculated size in MB from these 3 block sizes
    T8K =97177 BLOCKS=759MB *( 97177*8 = 777416KB / 1024 = 759MB )*
    T16K=41639 BLOCKS=650MB
    BT4K=293656 BLOCKS=1147MB
    For me it's new to calculate the size of a table. Can you please tell me then how many rows I can create in each of
    these 3 tables to make them equal in MB to test for elapsed time.
    Then I'll again run my test and put the results here. Because If I've wrongly calculated table sizes then there is no need to talk about elapsed time. First I must equalize the table sizes properly.
    SQL> select sum(bytes)/1024/1024 "Size in MB" from dba_segments> 2 where segment_name = 'T16K';
    Size in MB
    655
    Is above SQL is correct to calculate the size or is it the correct alternative way to your method of calculating the size??
    I created the same table again with everything same and the result is :
    SQL> select num_rows,blocks from user_tables where table_name = 'T16K';NUM_ROWS BLOCKS
    290000 41703
    64 more blocks are allocated this time so may be that's y it's showing total size of 655 instead of 650.
    Thanks alot for your help.
    Best Regards,
    KAm
    Edited by: kam555 on Nov 20, 2009 5:57 PM

  • How to Create a View of a Query and assign it into my web template?

    Hi All,
    I need to create 3 views for my query and show that on my web template. I have never done this before. Can you please let me know step-by step procedure to create views for a query and how to show it on my WAD report?
    Thanks,
    Satyam

    Hi Satyam,
    Include the Dropdown Box web item in your web template. In the Web Item Parameters tab, select the Data Binding type as Query View Selection. Assign the Dataprovider from Selection of Query Views button below the Data Binding Type. You also have the option to Display Specific list of Query Views or all views based on that Query. For this you have to choose Selection of Query Views button. Here you can turn on Specific List of Query Views checkbox and select the Views depending on your requirement.
    Regards,
    Hari.
    Edited by: Hari Krishnan K on Aug 18, 2010 2:33 PM

  • How query cost and execution time are releated ?

    hi experts,
      i am curious to know, how the query cost and execution time is related?
     Query taking less time ,query cost is 65%, but query taking more time but query cost is 0%.
    how to connect both and improve query performance.
    Thanks

    i think you are refering to cost (relative to the batch) execution 65%, where there are more that one statement, it may compare the cost of each statement with in the batch
    i assume it mainly take subtree cost and IO stat as cost, but in some cases i may wrong when there is multi line function and many other facter influence the cost, and i would say it depends on the query
    cost is unit-less
    The reason these costs exist is because of the query optimization SQL Server does: it does cost-based optimization, which means that the optimizer formulates a lot of different ways to execute the query, assigns a cost to each of these alternatives, and
    chooses the one with the least cost. The cost tagged on each alternative is heurestically calculated, and is supposed to roughly reflect the amount of processing and I/O this alternative is going to take.
    refer :
    http://blogs.msdn.com/b/sqlqueryprocessing/archive/2006/10/11/what-is-this-cost.aspx
    Thanks
    Saravana kumar C

Maybe you are looking for

  • BT Sport App on IOS

    Getting error message when logging in saying that my BT ID is not correct yet it is the primary one and logs me in online to my BT account also other people I know are having the same problems

  • How to order / group a report by a placeholder column ?

    How to order / group a report by a placeholder column populated by the group filter ? In more detail ..... My Data model editor's select statement brings back (say 1000 rows) from the database. The group filter decides (on performing certain validati

  • How can I get rid of this column??

    When you have no columns selected from the View Options (pressing CTRL-J) there are four default columns: Album By Artist - (unnamed column that appears to be track number) - [Check box] - Name How do get rid of seeing the track number column - I hav

  • Can't start up after adding new account

    Hi there, I've just added a new user account and when. I restated my MacBook pro, i cannot log in to either of my accounts. The screen hangs in the log in page. Doesn't even give me the option to enter password. Can someone please help me!

  • Can I print a contact sheet from Bridge?

    Does anyone know how I print a contact sheeet in Bridge?