Mappings Creation Performance Issue:
Mappings Creation Performance Issue
I am having a performance problem when linking attributes from Splitter Transformation (has app. 80 input ports and 9 different filter condition for 9 target tables) to other transformations. It takes app. 6 minutes to link one attribute from Splitter Transformation to other transformations; generally it should take less than a second. This is the problem only with Splitter Transformation, other transformations works very well.
Any thoughts on this will be very helpful.
Thanks
Ragu Mandala
Ragu,
Unfortunately this issue was introduced in 9.0.3.36.3 (lower versions did not have this... 'feature'). The issue has been rolled into the 9.2.0.3 version, but there is no backport for 9.0.3.
Any chance you can migrate to 9.2? or go back to 9.0.3.35?
Mark.
Similar Messages
-
MAT View Creation Performance Issue
Hello Experts,
Below query is executing approximately in 1-3 sec.
select
COMMITMENT_ID,
FUNDING_RULE_ID,
reporting_year||'-'||reporting_period as RepPeriod,
GET_START_DAY_OF_PERIOD (FUNDING_RULE_ID, reporting_year, reporting_period) START_DAY_OF_PERIODt,
GET_END_DAY_OF_PERIOD(FUNDING_RULE_ID, reporting_year, reporting_period) END_DAY_OF_PERIOD
from
(select
COMMITMENT_ID,
FR_ID as FUNDING_RULE_ID,
COMT_START_DATE,
--COMT_TERMINATION_DATE,
GETREPYEARFROMDATE(COMT_START_DATE,FR_ID) as reporting_year,
GETREPORTINGPERIOD(to_char(COMT_START_DATE, 'mm') ,FR_ID) as reporting_period
from
select
COMMITMENT_ID,
COMT_START_DATE,
--COMT_TERMINATION_DATE,
COALESCE(CB_FUNDING_RULE_ID,NC_FUNDING_RULE_ID) FR_ID
from
(COMMITMENT_TABLE left outer join (CHILD_BENEFICIARY_TABLE left outer join FUNDING_RULE_TABLE a on
a.FUNDING_RULE_ID = CB_FUNDING_RULE_ID )
on COMT_BENEFICIARY_REF = CB_BENEFICIARY_REF
left outer join (NON_CHILD_BENEFICIARY_TABLE left outer join FUNDING_RULE_TABLE b on
b.FUNDING_RULE_ID = NC_FUNDING_RULE_ID)
on
COMT_BENEFICIARY_REF = NC_BENEFICIARY_REF)
The query is returning 4.5 lacks of rows.
I want to create a MAT view by using above query and refresh this on daily basis.
But the MAT view creation is taking more time near about 401sec (6.68min).
Why the MAT view is taking more time?
MAT_VIEW
CREATE MATERIALIZED VIEW "REP_PERIOD_START_END_DATE"
AS select
COMMITMENT_ID,
FUNDING_RULE_ID,
reporting_year||'-'||reporting_period as RepPeriod,
GET_START_DAY_OF_PERIOD (FUNDING_RULE_ID, reporting_year, reporting_period) START_DAY_OF_PERIODt,
GET_END_DAY_OF_PERIOD(FUNDING_RULE_ID, reporting_year, reporting_period) END_DAY_OF_PERIOD
from
(select
COMMITMENT_ID,
FR_ID as FUNDING_RULE_ID,
COMT_START_DATE,
--COMT_TERMINATION_DATE,
GETREPYEARFROMDATE(COMT_START_DATE,FR_ID) as reporting_year,
GETREPORTINGPERIOD(to_char(COMT_START_DATE, 'mm') ,FR_ID) as reporting_period
from
select
COMMITMENT_ID,
COMT_START_DATE,
--COMT_TERMINATION_DATE,
COALESCE(CB_FUNDING_RULE_ID,NC_FUNDING_RULE_ID) FR_ID
from
(COMMITMENT_TABLE left outer join (CHILD_BENEFICIARY_TABLE left outer join FUNDING_RULE_TABLE a on
a.FUNDING_RULE_ID = CB_FUNDING_RULE_ID )
on COMT_BENEFICIARY_REF = CB_BENEFICIARY_REF
left outer join (NON_CHILD_BENEFICIARY_TABLE left outer join FUNDING_RULE_TABLE b on
b.FUNDING_RULE_ID = NC_FUNDING_RULE_ID)
on
COMT_BENEFICIARY_REF = NC_BENEFICIARY_REF)
Is there any way to make the MAT view creation within 3 minutes?CREATE MATERIALIZED VIEW "REP_PERIOD_START_END_DATE"
AS
with tab as
select /*+ materialize */ commitment_id,
comt_start_date,
--COMT_TERMINATION_DATE,
coalesce (cb_funding_rule_id, nc_funding_rule_id)
fr_id
from ( commitment_table
left outer join
( child_beneficiary_table
left outer join
funding_rule_table a
on a.funding_rule_id = cb_funding_rule_id)
on comt_beneficiary_ref = cb_beneficiary_ref
left outer join
( non_child_beneficiary_table
left outer join
funding_rule_table b
on b.funding_rule_id = nc_funding_rule_id)
on comt_beneficiary_ref = nc_beneficiary_ref)
select commitment_id,
funding_rule_id,
reporting_year || '-' || reporting_period as repperiod,
get_start_day_of_period (funding_rule_id,
reporting_year,
reporting_period)
start_day_of_periodt,
get_end_day_of_period (funding_rule_id,
reporting_year,
reporting_period)
end_day_of_period
from (select commitment_id,
fr_id as funding_rule_id,
comt_start_date,
--COMT_TERMINATION_DATE,
getrepyearfromdate (comt_start_date, fr_id) as reporting_year,
getreportingperiod (to_char (comt_start_date, 'mm'), fr_id)
as reporting_period
from tab); -
Portal Context Index Creation Performance issue
Recreating Portal Context Indexes takes around 36 hours at our site (after portal upgrade from 3.0.9.8.2 to 3.0.9.8.5 as per release notes). I was following the Note:158368.1 to rebuild the indexes. Is there anything that i can do to tune this ?
thanks
subuUnfortunately indexing is generally a fairly intensive operation and can be time consuming.
There are some things that you can do to optimize the performance of your database as a whole which may in turn help the performance of your indexing operation. Look at the Performance Guide and Reference book in the database documentation.
Much of the time spent indexing is taken up by filtering binary documents and fetch content identified by URL attributes. In the case of the later, it might be worth checking in the ctx_user_index_errors view to ensure that you don't have a lot of URL requests that are timing out. The timeout is set to 30 seconds and if there are a lot or URLs where the host cannot be resolved or the fetch times out it might be costing a lot of time during the indexing operation. This is often the case if a proxy is required to reach the URLs but the proxy has not be configured correctly. -
OLAP_TABLE performance issues
Please advice. OLAP_TABLE performance is slow and SELECT did not return data after running for > 10 hours.
ISSUES:
(1) I started with only one measure and one dimension in the OLAP_TABLE statement and it returned data. However, when I added the remaining measures and dimensions, the statement never return data. The end user required all 20 measures and all 7 dimensions. How can I overcome the performance issue and get the data from the cube? Please HELP!
(2) The cube is compressed. I read articles saying that OLAP_TABLE cannot use the LOOP keyword when cube is being compressed. I have already using MODEL keyword and the statement did not come back. How can I improve the performance and return data?
(3) Can I create MV using OLAP_TABLE in 10g? If not, is there anyway to get around without MV because the VIEW is killing the performance so badly (it simply did not return and has to be killed manually).
(4) I also used “AWM plug-in” to create the relational table view. However, all 20 measures and 7 dimensions must be included. It exceeded 4000 characters in single PL/SQL function parameter and caused the limitmap error. So the “AWM plug-in” did not work for me.
Appreciate all of our help!
(*) DATA
1 Fact; 7 Dimensions; 1 cube; 20 measures
POSITION_FACT - 9,387,384 rows
DIM_BUSINESS_DAY - 2 rows - 1 hierarchy - 2 levels - 1 attribute
DIM_INSTRUMENT_TYPE - 16 rows - 1 hierarchy - 2 levels - 1 attribute
DIM_RISK_TYPE - 21 rows - 1 hierarchy - 2 levels - 1 attribute
DIM_BOOK - 673 rows - 1 hierarchy - 10 levels - 2 attributes
DIM_CURVE - 4,869 rows - 1 hierarchy - 6 levels - 1 attribute
DIM_REFERENCE_ENTITY - 3,756 rows - 1 hierarchy - 7 levels - 3 attributes
DIM_POSITION - 745,957 rows - 1 hierarchy - 2 levels - 9 attributes
(*) CUBE CREATED IN AWM:
fully pre-aggregated;
used global composites;
used compassion by integer;
partition by business date;
took minimum ~ 30 minutes to build the cube.
ENVIRONMENT:
(*) Oracle Database 10g Release 2 Patch Set 2 (10.2.0.3.0) 64-bit
(*) 3 products installed in Oracle Home: Interim patches: 5746153 (OLAP 'A' patch), 5556081, 5557962
(*) AWM 10.2.0.3.0A
(*) SQL
CREATE OR REPLACE VIEW vw_cube_bi_nrdb_vw_fl AS
SELECT * FROM TABLE(OLAP_TABLE(
'bi_nrdb DURATION SESSION',
MEASURE am_value_total AS NUMBER FROM bi_nrdb_vw_total
MEASURE am_value_03m AS NUMBER FROM bi_nrdb_vw_am_03m
MEASURE am_value_06m AS NUMBER FROM bi_nrdb_vw_am_06m
MEASURE am_value_09m AS NUMBER FROM bi_nrdb_vw_am_09m
MEASURE am_value_01y AS NUMBER FROM bi_nrdb_vw_am_01y
MEASURE am_value_18m AS NUMBER FROM bi_nrdb_vw_am_18m
MEASURE am_value_02y AS NUMBER FROM bi_nrdb_vw_am_02y
MEASURE am_value_03y AS NUMBER FROM bi_nrdb_vw_am_03y
MEASURE am_value_04y AS NUMBER FROM bi_nrdb_vw_am_04y
MEASURE am_value_05y AS NUMBER FROM bi_nrdb_vw_am_05y
MEASURE am_value_06y AS NUMBER FROM bi_nrdb_vw_am_06y
MEASURE am_value_07y AS NUMBER FROM bi_nrdb_vw_am_07y
MEASURE am_value_08y AS NUMBER FROM bi_nrdb_vw_am_08y
MEASURE am_value_09y AS NUMBER FROM bi_nrdb_vw_am_09y
MEASURE am_value_10y AS NUMBER FROM bi_nrdb_vw_am_10y
MEASURE am_value_12y AS NUMBER FROM bi_nrdb_vw_am_12y
MEASURE am_value_15y AS NUMBER FROM bi_nrdb_vw_am_15y
MEASURE am_value_20y AS NUMBER FROM bi_nrdb_vw_am_20y
MEASURE am_value_30y AS NUMBER FROM bi_nrdb_vw_am_30y
MEASURE am_value_40y AS NUMBER FROM bi_nrdb_vw_am_40y
DIMENSION dim_business FROM dim_business_day WITH
ATTRIBUTE dt_business FROM dim_business_day_long_description
DIMENSION dim_risk_type FROM dim_risk_type WITH
ATTRIBUTE id_risk_type FROM dim_risk_type_long_description
DIMENSION dim_instrument_type FROM dim_instrument_type WITH
ATTRIBUTE id_instrument_type FROM dim_instrument_type_long_description
DIMENSION dim_book FROM dim_book WITH
ATTRIBUTE nm_dim_book FROM dim_book_long_description
ATTRIBUTE trader FROM dim_book_trader
DIMENSION dim_reference_entity FROM dim_reference_entity WITH
ATTRIBUTE nm_dim_reference_entity FROM dim_reference_entity_long_description
ATTRIBUTE nm_spn_moody_rating FROM dim_reference_entity_spn_moody_rating
ATTRIBUTE nm_spn_sp_rating FROM dim_reference_entity_spn_sp_rating
DIMENSION dim_position FROM dim_position WITH
ATTRIBUTE id_buysell FROM dim_position_buysell
ATTRIBUTE id_coupon FROM dim_position_coupon
ATTRIBUTE id_cusip FROM dim_position_cusip
ATTRIBUTE id_isin FROM dim_position_isin
ATTRIBUTE id_instrument_name FROM dim_position_instrument_name
ATTRIBUTE id_maturity FROM dim_position_maturity
ATTRIBUTE id_mtm FROM dim_position_mtm
ATTRIBUTE id_notional FROM dim_position_notional
MODEL
DIMENSION BY (dim_business, dt_business, dim_risk_type, id_risk_type, dim_instrument_type, id_instrument_type,
dim_book, nm_dim_book, trader, dim_reference_entity, nm_dim_reference_entity, nm_spn_moody_rating,
nm_spn_sp_rating, dim_position, id_buysell, id_coupon, id_cusip, id_isin, id_instrument_name,
id_maturity, id_mtm, id_notional)
MEASURES (am_value_total, am_value_03m, am_value_06m, am_value_09m, am_value_01y,
am_value_18m,am_value_02y, am_value_03y, am_value_04y, am_value_05y,
am_value_06y, am_value_07y,am_value_08y, am_value_09y, am_value_10y,
am_value_12y, am_value_15y, am_value_20y, am_value_30y, am_value_40y)
RULES UPDATE SEQUENTIAL ORDER ();(1a) Thank you so much! The SQL “the CREATE OR REPLACE VIEW vw_cube_bi_nrdb_vw_fl…” the SQL I provided from my previous was the OLAP_STATEMENT I ran for > 10 hrs and killed manually. Please advice.
I have business requirements to display all 7 dimensions and 20 measures for reporting. So I can’t really filter my dimensions much.
(1b) Separately, I also follow your advice to add the WHERE clause after I created the VIEW vw_cube_bi_nrdb_vw_fl, see below statement and received error.
SQL> select * from vw_cube_bi_nrdb_vw_fl
where dt_business = '06/23/2008'
and ID_RISK_TYPE ='CR01'
and ID_INSTRUMENT_TYPE='VANILLA CDS'
and dim_book='BOOK_63272279'
AND dim_reference_entity='GFN_0113182'
and dim_position='3645636' ;
select * from vw_cube_bi_nrdb_vw_fl
ERROR at line 1:
ORA-32638: Non unique addressing in MODEL dimensions
(4) I received below error when I ran “AWM plug-in” to create a VIEW from AWM. I have already uncheck fields that I do not need and only keeping the measures and dimensions I need. Sorry for the long err below:
AUG-21-2008 12:14:47: . Creating view for cube BI_NRDB_AGGR
AUG-21-2008 12:14:48: ..... generating limitmap for cube
AUG-21-2008 12:14:48: ... generating limitmap for cube
AUG-21-2008 12:14:48: ..... mapping table out of date for cube BI_NRDB_AGGR. Updating mapping table.
AUG-21-2008 12:14:48: ... populating mapping for cube BI_NRDB_AGGR
AUG-21-2008 12:14:48: ..... clearing mappings for the cube
AUG-21-2008 12:14:48: ..... collecting metadata for measures in cube
AUG-21-2008 12:14:48: ..... retrieving dimensions for the cube. Need limitmap for each dimension.
AUG-21-2008 12:14:48: ... generating limitmap for DIM_BUSINESS_DAY
AUG-21-2008 12:14:48: ..... mapping table out of date for dimension DIM_BUSINESS_DAY. Updating mapping table.
AUG-21-2008 12:14:48: ... populating dimension map for DIM_BUSINESS_DAY
AUG-21-2008 12:14:48: ..... clearing mappings for the dimension
AUG-21-2008 12:14:48: ..... retrieving physical objects
AUG-21-2008 12:14:48: ..... checking for value hierarchies
AUG-21-2008 12:14:48: ..... retrieving label for dimension levels
AUG-21-2008 12:14:48: ..... populating mapping info for the DIMENSION clause
AUG-21-2008 12:14:48: ..... populating mapping info for the INHIERARCHY clause
AUG-21-2008 12:14:48: ..... retrieving hierarchy information
AUG-21-2008 12:14:48: ..... populating mapping info for the HIERARCHY and FAMILYREL clauses for hierarchy PRIM
AUG-21-2008 12:14:48: ..... populating mapping info for the ATTRIBUTE clause
AUG-21-2008 12:14:48: ... completed populating mapping for DIM_BUSINESS_DAY
AUG-21-2008 12:14:48: ... generating limitmap for DIM_INSTRUMENT_TYPE
AUG-21-2008 12:14:48: ..... mapping table out of date for dimension DIM_INSTRUMENT_TYPE. Updating mapping table.
AUG-21-2008 12:14:48: ... populating dimension map for DIM_INSTRUMENT_TYPE
AUG-21-2008 12:14:48: ..... clearing mappings for the dimension
AUG-21-2008 12:14:48: ..... retrieving physical objects
AUG-21-2008 12:14:48: ..... checking for value hierarchies
AUG-21-2008 12:14:48: ..... retrieving label for dimension levels
AUG-21-2008 12:14:48: ..... populating mapping info for the DIMENSION clause
AUG-21-2008 12:14:48: ..... populating mapping info for the INHIERARCHY clause
AUG-21-2008 12:14:48: ..... retrieving hierarchy information
AUG-21-2008 12:14:49: ..... populating mapping info for the HIERARCHY and FAMILYREL clauses for hierarchy PRIM
AUG-21-2008 12:14:49: ..... populating mapping info for the ATTRIBUTE clause
AUG-21-2008 12:14:49: ... completed populating mapping for DIM_INSTRUMENT_TYPE
AUG-21-2008 12:14:49: ... generating limitmap for DIM_RISK_TYPE
AUG-21-2008 12:14:49: ..... mapping table out of date for dimension DIM_RISK_TYPE. Updating mapping table.
AUG-21-2008 12:14:49: ... populating dimension map for DIM_RISK_TYPE
AUG-21-2008 12:14:49: ..... clearing mappings for the dimension
AUG-21-2008 12:14:49: ..... retrieving physical objects
AUG-21-2008 12:14:49: ..... checking for value hierarchies
AUG-21-2008 12:14:49: ..... retrieving label for dimension levels
AUG-21-2008 12:14:49: ..... populating mapping info for the DIMENSION clause
AUG-21-2008 12:14:49: ..... populating mapping info for the INHIERARCHY clause
AUG-21-2008 12:14:49: ..... retrieving hierarchy information
AUG-21-2008 12:14:49: ..... populating mapping info for the HIERARCHY and FAMILYREL clauses for hierarchy PRIM
AUG-21-2008 12:14:49: ..... populating mapping info for the ATTRIBUTE clause
AUG-21-2008 12:14:49: ... completed populating mapping for DIM_RISK_TYPE
AUG-21-2008 12:14:49: ... generating limitmap for DIM_BOOK
AUG-21-2008 12:14:49: ..... mapping table out of date for dimension DIM_BOOK. Updating mapping table.
AUG-21-2008 12:14:49: ... populating dimension map for DIM_BOOK
AUG-21-2008 12:14:49: ..... clearing mappings for the dimension
AUG-21-2008 12:14:49: ..... retrieving physical objects
AUG-21-2008 12:14:49: ..... checking for value hierarchies
AUG-21-2008 12:14:49: ..... retrieving label for dimension levels
AUG-21-2008 12:14:49: ..... populating mapping info for the DIMENSION clause
AUG-21-2008 12:14:49: ..... populating mapping info for the INHIERARCHY clause
AUG-21-2008 12:14:49: ..... retrieving hierarchy information
AUG-21-2008 12:14:49: ..... populating mapping info for the HIERARCHY and FAMILYREL clauses for hierarchy PRIM
AUG-21-2008 12:14:49: ..... populating mapping info for the ATTRIBUTE clause
AUG-21-2008 12:14:50: ... completed populating mapping for DIM_BOOK
AUG-21-2008 12:14:50: ... generating limitmap for DIM_CURVE
AUG-21-2008 12:14:50: ..... mapping table out of date for dimension DIM_CURVE. Updating mapping table.
AUG-21-2008 12:14:50: ... populating dimension map for DIM_CURVE
AUG-21-2008 12:14:50: ..... clearing mappings for the dimension
AUG-21-2008 12:14:50: ..... retrieving physical objects
AUG-21-2008 12:14:50: ..... checking for value hierarchies
AUG-21-2008 12:14:50: ..... retrieving label for dimension levels
AUG-21-2008 12:14:50: ..... populating mapping info for the DIMENSION clause
AUG-21-2008 12:14:50: ..... populating mapping info for the INHIERARCHY clause
AUG-21-2008 12:14:50: ..... retrieving hierarchy information
AUG-21-2008 12:14:50: ..... populating mapping info for the HIERARCHY and FAMILYREL clauses for hierarchy PRIM
AUG-21-2008 12:14:50: ..... populating mapping info for the ATTRIBUTE clause
AUG-21-2008 12:14:50: ... completed populating mapping for DIM_CURVE
AUG-21-2008 12:14:50: ... generating limitmap for DIM_REFERENCE_ENTITY
AUG-21-2008 12:14:50: ..... mapping table out of date for dimension DIM_REFERENCE_ENTITY. Updating mapping table.
AUG-21-2008 12:14:50: ... populating dimension map for DIM_REFERENCE_ENTITY
AUG-21-2008 12:14:50: ..... clearing mappings for the dimension
AUG-21-2008 12:14:50: ..... retrieving physical objects
AUG-21-2008 12:14:50: ..... checking for value hierarchies
AUG-21-2008 12:14:50: ..... retrieving label for dimension levels
AUG-21-2008 12:14:50: ..... populating mapping info for the DIMENSION clause
AUG-21-2008 12:14:50: ..... populating mapping info for the INHIERARCHY clause
AUG-21-2008 12:14:50: ..... retrieving hierarchy information
AUG-21-2008 12:14:50: ..... populating mapping info for the HIERARCHY and FAMILYREL clauses for hierarchy PRIM
AUG-21-2008 12:14:50: ..... populating mapping info for the ATTRIBUTE clause
AUG-21-2008 12:14:51: ... completed populating mapping for DIM_REFERENCE_ENTITY
AUG-21-2008 12:14:51: ... generating limitmap for DIM_POSITION
AUG-21-2008 12:14:51: ..... mapping table out of date for dimension DIM_POSITION. Updating mapping table.
AUG-21-2008 12:14:51: ... populating dimension map for DIM_POSITION
AUG-21-2008 12:14:51: ..... clearing mappings for the dimension
AUG-21-2008 12:14:51: ..... retrieving physical objects
AUG-21-2008 12:14:51: ..... checking for value hierarchies
AUG-21-2008 12:14:51: ..... retrieving label for dimension levels
AUG-21-2008 12:14:51: ..... populating mapping info for the DIMENSION clause
AUG-21-2008 12:14:51: ..... populating mapping info for the INHIERARCHY clause
AUG-21-2008 12:14:51: ..... retrieving hierarchy information
AUG-21-2008 12:14:51: ..... populating mapping info for the HIERARCHY and FAMILYREL clauses for hierarchy PRIM
AUG-21-2008 12:14:51: ..... populating mapping info for the ATTRIBUTE clause
AUG-21-2008 12:14:51: ... completed populating mapping for DIM_POSITION
AUG-21-2008 12:14:51: ... completed generating limitmap for cube BI_NRDB_AGGR
AUG-21-2008 12:14:51: ..... assigning limitmap to variable in the AW
AUG-21-2008 12:14:51: ..... BI_NRDB_AGGR_CUBE_LIMITMAP found. Will update the variable
AUG-21-2008 12:14:51: ..... defining view BI_DEMO.BI_NRDB_AGGR_CUBEVIEW over the cube
AUG-21-2008 12:14:51: **
AUG-21-2008 12:14:51: ** ERROR: View not created.
AUG-21-2008 12:14:51: ** CAUSE: CREATE VIEW statement failed
AUG-21-2008 12:14:51: ORA-36804: The OLAP_TABLE function encountered an error while parsing the LIMITMAP.
AUG-21-2008 12:14:51: *** DEBUG INFORMATION ***
AUG-21-2008 12:14:51: VIEW CREATION DDL ((truncated after 3900 characters)
AUG-21-2008 12:14:51: CREATE OR REPLACE VIEW BI_DEMO.BI_NRDB_AGGR_CUBEVIEW AS
SELECT *
FROM table(OLAP_TABLE ('BI_DEMO.BI_NRDB duration session',
'&(BI_NRDB_AGGR_CUBE_LIMITMAP)'))
MODEL
DIMENSION BY (
DIM_BUSINESS_DAY,
DIM_INSTRUMENT_TYPE,
DIM_RISK_TYPE,
DIM_BOOK,
DIM_CURVE,
DIM_REFERENCE_ENTITY,
DIM_POSITION)
MEASURES (
DIM_BUSINE_PRIM_PRNT,
DIM_BUSINE_ALL_BUSINE_LVLDSC,
DIM_BUSINE_BUSINESS_D_LVLDSC,
DIM_BUSINE_LDSC,
DIM_BUSINE_LEVEL,
DIM_INSTRU_PRIM_PRNT,
DIM_INSTRU_ALL_INSTRU_LVLDSC,
DIM_INSTRU_INSTRUMENT_LVLDSC,
DIM_INSTRU_LDSC,
DIM_INSTRU_LEVEL,
DIM_RISK_T_PRIM_PRNT,
DIM_RISK_T_ALL_RISK_T_LVLDSC,
DIM_RISK_T_RISK_TYPE_LVLDSC,
DIM_RISK_T_LDSC,
DIM_RISK_T_LEVEL,
DIM_BOOK_PRIM_PRNT,
DIM_BOOK_ALL_BOOK_LVLDSC,
DIM_BOOK_SYSTEM_LVLDSC,
DIM_BOOK_REGION_LVLDSC,
DIM_BOOK_BUSINESS2_LVLDSC,
DIM_BOOK_BUSINESS1_LVLDSC,
DIM_BOOK_BUSINESS_LVLDSC,
DIM_BOOK_DESK_LVLDSC,
DIM_BOOK_RISKSTRIPE_LVLDSC,
DIM_BOOK_SUBRISKSTR_LVLDSC,
DIM_BOOK_BOOK_LVLDSC,
DIM_BOOK_TRADER,
DIM_BOOK_LDSC,
DIM_BOOK_LEVEL,
DIM_CURVE_PRIM_PRNT,
DIM_CURVE_ALL_CURVE_LVLDSC,
DIM_CURVE_CURRENCY_LVLDSC,
DIM_CURVE_SENIORITY_LVLDSC,
DIM_CURVE_CURVE_OWNE_LVLDSC,
DIM_CURVE_CURVE_NAME_LVLDSC,
DIM_CURVE_CURVE_LVLDSC,
DIM_CURVE_LDSC,
DIM_CURVE_LEVEL,
DIM_REFERE_ALL_GFN_LVLDSC,
DIM_REFERE_GFN_INDUST_LVLDSC,
DIM_REFERE_GFN_COUNTR_LVLDSC,
DIM_REFERE_GFN_LVLDSC,
DIM_REFERE_SPN_INDUST_LVLDSC,
DIM_REFERE_SPN_COUNTR_LVLDSC,
DIM_REFERE_SPN_LVLDSC,
DIM_REFERE_LDSC,
DIM_REFERE_SPN_SP_RATING,
DIM_REFERE_SPN_MOODY_RATING,
DIM_REFERE_LEVEL,
DIM_REFERE_PRIM_PRNT,
DIM_POSITI_PRIM_PRNT,
DIM_POSITI_ALL_POSITI_LVLDSC,
DIM_POSITI_TRADE_ID_LVLDSC,
DIM_POSITI_COUPON,
DIM_POSITI_MATURITY,
DIM_POSITI_INSTRUMENT_NAME,
DIM_POSITI_NOTIONAL,
DIM_POSITI_BUYSELL,
DIM_POSITI_CUSIP,
DIM_POSITI_ISIN,
DIM_POSITI_LDSC,
DIM_POSITI_MTM,
DIM_POSITI_LEVEL,
TOTAL,
AM_40Y,
AM_30Y,
AM_20Y,
AM_15Y,
AM_12Y,
AM_10Y,
AM_09Y,
AM_08Y,
AM_07Y,
AM_06Y,
AM_05Y,
AM_04Y,
AM_03Y,
AM_02Y,
AM_18M,
AM_01Y,
AM_09M,
AM_06M,
AM_03M,
OLAP_CALC
) RULES UPDATE SEQUENTIAL ORDER()
AUG-21-2008 12:14:51: LIMITMAP (truncated after 3900 characters):
AUG-21-2008 12:14:51: DIMENSION DIM_BUSINESS_DAY FROM DIM_BUSINESS_DAY WITH -
HIERARCHY DIM_BUSINE_PRIM_PRNT FROM DIM_BUSINESS_DAY_PARENTREL(DIM_BUSINESS_DAY_HIERLIST \'PRIM\') -
INHIERARCHY DIM_BUSINESS_DAY_INHIER -
FAMILYREL DIM_BUSINE_ALL_BUSINE_LVLDSC, -
DIM_BUSINE_BUSINESS_D_LVLDSC -
FROM DIM_BUSINESS_DAY_FAMILYREL(DIM_BUSINESS_DAY_LEVELLIST \'ALL_BUSINESS_DAY\'), -
DIM_BUSINESS_DAY_FAMILYREL(DIM_BUSINESS_DAY_LEVELLIST \'BUSINESS_DAY\') -
LABEL DIM_BUSINESS_DAY_LONG_DESCRIPTION -
ATTRIBUTE DIM_BUSINE_LDSC FROM DIM_BUSINESS_DAY_LONG_DESCRIPTION -
ATTRIBUTE DIM_BUSINE_LEVEL FROM DIM_BUSINESS_DAY_LEVELREL-
DIMENSION DIM_INSTRUMENT_TYPE FROM DIM_INSTRUMENT_TYPE WITH -
HIERARCHY DIM_INSTRU_PRIM_PRNT FROM DIM_INSTRUMENT_TYPE_PARENTREL(DIM_INSTRUMENT_TYPE_HIERLIST \'PRIM\') -
INHIERARCHY DIM_INSTRUMENT_TYPE_INHIER -
FAMILYREL DIM_INSTRU_ALL_INSTRU_LVLDSC, -
DIM_INSTRU_INSTRUMENT_LVLDSC -
FROM DIM_INSTRUMENT_TYPE_FAMILYREL(DIM_INSTRUMENT_TYPE_LEVELLIST \'ALL_INSTRUMENT_TYPE\'), -
DIM_INSTRUMENT_TYPE_FAMILYREL(DIM_INSTRUMENT_TYPE_LEVELLIST \'INSTRUMENT_TYPE\') -
LABEL DIM_INSTRUMENT_TYPE_LONG_DESCRIPTION -
ATTRIBUTE DIM_INSTRU_LDSC FROM DIM_INSTRUMENT_TYPE_LONG_DESCRIPTION -
ATTRIBUTE DIM_INSTRU_LEVEL FROM DIM_INSTRUMENT_TYPE_LEVELREL-
DIMENSION DIM_RISK_TYPE FROM DIM_RISK_TYPE WITH -
HIERARCHY DIM_RISK_T_PRIM_PRNT FROM DIM_RISK_TYPE_PARENTREL(DIM_RISK_TYPE_HIERLIST \'PRIM\') -
INHIERARCHY DIM_RISK_TYPE_INHIER -
FAMILYREL DIM_RISK_T_ALL_RISK_T_LVLDSC, -
DIM_RISK_T_RISK_TYPE_LVLDSC -
FROM DIM_RISK_TYPE_FAMILYREL(DIM_RISK_TYPE_LEVELLIST \'ALL_RISK_TYPE\'), -
DIM_RISK_TYPE_FAMILYREL(DIM_RISK_TYPE_LEVELLIST \'RISK_TYPE\') -
LABEL DIM_RISK_TYPE_LONG_DESCRIPTION -
ATTRIBUTE DIM_RISK_T_LDSC FROM DIM_RISK_TYPE_LONG_DESCRIPTION -
ATTRIBUTE DIM_RISK_T_LEVEL FROM DIM_RISK_TYPE_LEVELREL-
DIMENSION DIM_BOOK FROM DIM_BOOK WITH -
HIERARCHY DIM_BOOK_PRIM_PRNT FROM DIM_BOOK_PARENTREL(DIM_BOOK_HIERLIST \'PRIM\') -
INHIERARCHY DIM_BOOK_INHIER -
FAMILYREL DIM_BOOK_ALL_BOOK_LVLDSC, -
DIM_BOOK_SYSTEM_LVLDSC, -
DIM_BOOK_REGION_LVLDSC, -
DIM_BOOK_BUSINESS2_LVLDSC, -
DIM_BOOK_BUSINESS1_LVLDSC, -
DIM_BOOK_BUSINESS_LVLDSC, -
DIM_BOOK_DESK_LVLDSC, -
DIM_BOOK_RISKSTRIPE_LVLDSC, -
DIM_BOOK_SUBRISKSTR_LVLDSC, -
DIM_BOOK_BOOK_LVLDSC -
FROM DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'ALL_BOOK\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'SYSTEM\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'REGION\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'BUSINESS2\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'BUSINESS1\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'BUSINESS\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'DESK\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'RISKSTRIPE\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'SUBRISKSTRIPE\'), -
DIM_BOOK_FAMILYREL(DIM_BOOK_LEVELLIST \'BOOK\') -
LABEL DIM_BOOK_LONG_DESCRIPTION -
ATTRIBUTE DIM_BOOK_TRADER FROM DIM_BOOK_TRADER -
ATTRIBUTE DIM_BOOK_LDSC FROM DIM_BOOK_LONG_DESCRIPTION -
ATTRIBUTE DIM_BOOK_LEVEL FROM DIM_BOOK_LEVELREL-
DIMENSION DIM_CURVE FROM DIM_CURVE WITH -
HIERARCHY DIM_CURVE_PRIM_PRNT FROM DIM_CURVE_PARENTREL(DIM_CURVE_HIERLIST \'PRIM\') -
INHIERARCHY DIM_CURVE_INHIER -
FAMILYREL DIM_CURVE_ALL_CURVE_LVLDSC, -
DIM_CURVE_CURRENCY_LVLDSC, -
DIM_CURVE_SENIORITY_LVLDSC, -
DIM_CURVE_CURVE_OWNE_LVLDSC, -
DIM_CURVE_CURVE_NAME_LVLDSC, -
DIM_CURVE_CURVE_LVLDSC -
FROM DIM_CURVE_FAMILYREL(DIM_CURVE_LEVELLIST \'ALL_CURVE\'), -
DIM_CURVE_FAMILYREL(DIM_CURVE_LEVELLIST \'CURRENCY\'), -
DIM_CURVE_FAMILYREL(DIM_CURVE_LEVELLIST \'SENIORITY\'), -
DIM_CURVE_FAMILYREL(DIM_CURVE_LEVELLIST \'CURVE_OWNER\'), -
DIM_CURVE_FAMILYREL(DIM_CURVE_LE
AUG-21-2008 12:14:51: **
AUG-21-2008 12:14:51: ** ERROR: Unable to create view over cube BI_NRDB_AGGR.
AUG-21-2008 12:14:51: ORA-36804: The OLAP_TABLE function encountered an error while parsing the LIMITMAP. -
Performance issues with the Vouchers index build in SES
Hi All,
We are currently performing an upgrade for: PS FSCM 9.1 to PS FSCM 9.2.
As a part of the upgrade, Client wants Oracle SES to be deployed for some modules including, Purchasing, Payables (Vouchers)
We are facing severe performance issues with the Vouchers index build. (Volume of data = approx. 8.5 million rows of data)
The index creation process runs for over 5 days.
Can you please share any information or issues that you may have faced on your project and how they were addressed?Check the following logs for errors:
1. The message log from the process scheduler
2. search_server1-diagnostic.log in /search_server1/logs directory
If the build is getting stuck while crawling then we typically have to increase the Java Heap size for the Weblogic instance for SES> -
Performance Issue For Opening And Closing Balance In FBL1N/3N/5N
Dear experts,
I Am Having Requirement to Bring Opening And Closing Balance In FBL1N, FBL3N, FBL5N.
For This requirement I Used BADI : FI_ITEMS_CH_DATA~CHANGE_ITEMS, below is my Code For FBL1N, And I've Done the same For 3N/5N...With Related BAPI
* IF SY-TCODE = 'FBL1N'.
* LOOP AT ct_items INTO gs_items.
* CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
* EXPORTING
* date = gs_items-budat
* days = '01'
* months = '00'
* signum = '-'
* years = '00'
* IMPORTING
* calc_date = lv_date.
* CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
* EXPORTING
* companycode = gs_items-bukrs
* vendor = gs_items-konto
* keydate = lv_date
** BALANCESPGLI = ' '
** NOTEDITEMS = ' '
** IMPORTING
** RETURN =
* TABLES
* keybalance = lv_obal.
* CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
* EXPORTING
* companycode = gs_items-bukrs
* vendor = gs_items-konto
* keydate = gs_items-budat
** BALANCESPGLI = ' '
** NOTEDITEMS = ' '
** IMPORTING
** RETURN =
* TABLES
* keybalance = lv_cbal
* READ TABLE lv_cbal INTO gs_cbal INDEX 1.
* gs_items-cbal = gs_cbal-lc_bal.
* READ TABLE lv_obal INTO gs_obal INDEX 1.
* gs_items-obal = gs_obal-lc_bal.
* MODIFY ct_items FROM gs_items TRANSPORTING obal cbal.
* CLEAR: gs_items,gs_obal,gs_cbal.
* ENDLOOP.
* ENDIF.
So, Above Code Causing Me the Performance Issue, Kindly Suggest Me the Solution..
Regards,
uday.Hi Uday,
I am sending you the code i used for the creation a Zreport based on FBL5N. Please check if it can of any help.
*& Report ZFBL5N *
REPORT zfbl5n_new .
TABLES : bsid,knc1,lfc1.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_bsid,
bukrs TYPE bsid-bukrs,
kunnr TYPE bsid-kunnr,
belnr TYPE bsid-belnr,
buzei TYPE bsid-buzei,
bldat TYPE bsid-bldat,
blart TYPE bsid-blart,
bschl TYPE bsid-bschl,
shkzg TYPE bsid-shkzg,
dmbtr TYPE bsid-dmbtr,
augdt TYPE bsid-augdt,
augbl TYPE bsid-augbl,
zuonr TYPE bsid-zuonr,
sgtxt TYPE bsid-sgtxt,
zfbdt TYPE bsid-zfbdt,
zterm TYPE bsid-zterm,
zbd1t TYPE bsid-zbd1t,
zbd2t TYPE bsid-zbd2t,
zbd3t TYPE bsid-zbd3t,
kkber TYPE bsid-kkber,
bstat TYPE bsid-bstat,
umskz TYPE bsid-umskz,
END OF ty_bsid.
TYPES: BEGIN OF ty_bsik,
bukrs TYPE bsik-bukrs,
lifnr TYPE bsik-lifnr,
belnr TYPE bsik-belnr,
buzei TYPE bsik-buzei,
bldat TYPE bsik-bldat,
blart TYPE bsik-blart,
bschl TYPE bsik-bschl,
shkzg TYPE bsik-shkzg,
dmbtr TYPE bsik-dmbtr,
augdt TYPE bsik-augdt,
augbl TYPE bsik-augbl,
zuonr TYPE bsik-zuonr,
sgtxt TYPE bsik-sgtxt,
zfbdt TYPE bsik-zfbdt,
* KKBER TYPE bsik-kkber,
zterm TYPE bsik-zterm,
zbd1t TYPE bsik-zbd1t,
zbd2t TYPE bsik-zbd2t,
zbd3t TYPE bsik-zbd3t,
bstat TYPE bsid-bstat,
umskz TYPE bsid-umskz,
END OF ty_bsik.
TYPES: BEGIN OF ty_final,
belnr TYPE bsid-belnr,
* buzei TYPE bsak-buzei,
bldat TYPE bsid-bldat,
blart TYPE bsid-blart,
chq TYPE bsid-zuonr,
debit TYPE bsid-dmbtr,
credit TYPE bsid-dmbtr,
txt TYPE bsid-sgtxt,
date TYPE bsid-zfbdt,
kkber TYPE bsid-kkber,
zterm TYPE bsid-zterm,
augbl TYPE bsid-augbl,
augdt TYPE bsid-augdt,
flag TYPE c,
END OF ty_final.
TYPES : BEGIN OF gs_openbal,
bukrs TYPE bapi3007_2-comp_code,
kunnr TYPE bapi3007_2-customer,
dmbtr TYPE bapi3007_2-lc_amount,
END OF gs_openbal.
DATA: it_bsid TYPE STANDARD TABLE OF ty_bsid,
it_bsik TYPE STANDARD TABLE OF ty_bsik,
it_final TYPE STANDARD TABLE OF ty_final.
DATA: wa_bsid TYPE ty_bsid,
wa_bsik TYPE ty_bsik,
wa_final TYPE ty_final.
DATA: w_days TYPE t5a4a-dlydy,
w_month TYPE t5a4a-dlymo,
w_year TYPE t5a4a-dlyyr,
w_date TYPE p0001-begda,
w_name1 TYPE kna1-name1,
w_ort01 TYPE kna1-ort01,
w_lifnr TYPE kna1-lifnr,
w_dmbtr1 TYPE bsid-dmbtr,
w_dmbtr2 TYPE bsid-dmbtr,
w_dmbtr3 TYPE bsad-dmbtr,
w_dmbtr4 TYPE bsad-dmbtr,
w_opbal TYPE bsid-dmbtr,
w_credit TYPE bsik-dmbtr,
w_debit TYPE bsik-dmbtr,
w_clobal TYPE bsik-dmbtr,
w_credit1 TYPE bsik-dmbtr,
w_debit1 TYPE bsik-dmbtr,
w_clobal1 TYPE bsik-dmbtr.
DATA: ld_yrper LIKE rwcoom-fiscper,
kunnr LIKE kna1-kunnr,
x_norm TYPE c,
x_park,
x_apar,
x_merk,
ok_code(4),
wa_x001 LIKE x001,
return LIKE bapireturn,
line_count LIKE sy-loopc,
number_of_records TYPE i,
xindex LIKE sy-tabix,
open LIKE knc1-um01s,
temp(20),
close LIKE knc1-um01s,
gjahr LIKE bsid-gjahr,
period LIKE bkpf-monat,
f(1),
v_char(2),
closec(20),
openc(20),
debit LIKE bapi3007_2-lc_amount,
credit LIKE debit.
DATA : v_dmbtr LIKE bsid-dmbtr.
*DATA : tot_debit LIKE t_ar-debit,
* tot_credit LIKE t_ar-credit.
DATA : t_kna1 LIKE kna1 OCCURS 1 WITH HEADER LINE,
t_knb1 LIKE knb1 OCCURS 10 WITH HEADER LINE.
DATA ibsid LIKE bsid OCCURS 0 WITH HEADER LINE.
DATA ibsad LIKE bsad OCCURS 0 WITH HEADER LINE.
DATA ibsik LIKE bsik OCCURS 0 WITH HEADER LINE.
DATA ibsak LIKE bsak OCCURS 0 WITH HEADER LINE.
DATA : it_fieldcat_alv TYPE slis_t_fieldcat_alv,
wa_fieldcat_alv TYPE slis_fieldcat_alv,
is_layout_alv TYPE slis_layout_alv,
wa_layout_alv TYPE slis_layout_alv,
it_list_top_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
wa_events TYPE LINE OF slis_t_event.
DATA : BEGIN OF ibukrs OCCURS 0,
bukrs LIKE t001-bukrs,
END OF ibukrs.
DATA : BEGIN OF ikunnr1 OCCURS 0,
kunnr LIKE knc1-kunnr,
END OF ikunnr1.
DATA : BEGIN OF ikunnr OCCURS 0,
kunnr LIKE knc1-kunnr,
bukrs LIKE t001-bukrs,
lifnr LIKE lfc1-lifnr,
END OF ikunnr.
DATA: it_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv.
DATA: r_bschl TYPE RANGE OF bschl,
wa_bschl LIKE LINE OF r_bschl.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_kunnr TYPE bsid-kunnr OBLIGATORY,
p_bukrs TYPE bsid-bukrs OBLIGATORY.
SELECT-OPTIONS: so_budat FOR bsid-budat .
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS : p_normal AS CHECKBOX,
p_spl AS CHECKBOX,
p_vendor AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b2.
PERFORM get_data.
PERFORM process_data.
*PERFORM calculate_openbal. " Commented by anish
PERFORM calculate_open_bal.
PERFORM calculate_closing_bal.
PERFORM build_catalog_sort USING it_sort.
PERFORM reuse_alv_events_get .
PERFORM display_data.
*& Form GET_DATA
* text
* --> p1 text
* <-- p2 text
FORM get_data .
SELECT bukrs kunnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t kkber
bstat umskz FROM bsid
INTO TABLE it_bsid
WHERE bukrs = p_bukrs
AND kunnr = p_kunnr
AND budat IN so_budat.
SELECT bukrs kunnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t kkber
bstat umskz FROM bsad
APPENDING TABLE it_bsid
WHERE bukrs = p_bukrs
AND kunnr = p_kunnr
AND budat IN so_budat.
SELECT SINGLE name1 ort01 lifnr FROM kna1
INTO (w_name1 , w_ort01 , w_lifnr)
WHERE kunnr = p_kunnr.
IF p_vendor IS NOT INITIAL.
SELECT bukrs lifnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t
bstat umskz FROM bsik
APPENDING TABLE it_bsik
WHERE bukrs = p_bukrs
AND lifnr = w_lifnr
AND budat IN so_budat.
SELECT bukrs lifnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t
bstat umskz FROM bsak
APPENDING TABLE it_bsik
WHERE bukrs = p_bukrs
AND lifnr = w_lifnr
AND budat IN so_budat.
ENDIF.
SORT it_bsid BY bschl.
DELETE it_bsid WHERE bschl = '04'.
DELETE it_bsid WHERE bschl = '07'.
DELETE it_bsid WHERE bschl = '17'.
DELETE it_bsid WHERE bschl = '34'.
DELETE it_bsid WHERE bschl = '27'.
DELETE it_bsid WHERE bschl = '37'.
SORT it_bsik BY bschl.
DELETE it_bsik WHERE bschl = '04'.
DELETE it_bsik WHERE bschl = '07'.
DELETE it_bsik WHERE bschl = '17'.
DELETE it_bsik WHERE bschl = '34'.
DELETE it_bsik WHERE bschl = '27'.
DELETE it_bsik WHERE bschl = '37'.
ENDFORM. " GET_DATA
*& Form PROCESS_DATA
* text
* --> p1 text
* <-- p2 text
FORM process_data .
DATA:okay TYPE c VALUE space.
w_month = '00'.
w_year = '00'.
SORT it_bsid BY bldat .
LOOP AT it_bsid INTO wa_bsid.
PERFORM check_item_ok USING p_normal
p_spl
p_vendor
* x_park
wa_bsid
CHANGING okay.
CHECK okay = 'X'.
wa_final-belnr = wa_bsid-belnr.
wa_final-bldat = wa_bsid-bldat.
wa_final-blart = wa_bsid-blart.
wa_final-txt = wa_bsid-sgtxt.
wa_final-kkber = wa_bsid-kkber.
wa_final-zterm = wa_bsid-zterm.
wa_final-augbl = wa_bsid-augbl.
wa_final-augdt = wa_bsid-augdt.
wa_final-flag = 'C'.
IF wa_bsid-blart = 'DZ'.
wa_final-chq = wa_bsid-zuonr.
ENDIF.
IF wa_bsid-shkzg = 'S'.
wa_final-debit = wa_bsid-dmbtr.
ELSEIF wa_bsid-shkzg = 'H'.
wa_final-credit = wa_bsid-dmbtr.
ENDIF.
w_credit = w_credit + wa_final-credit.
w_debit = w_debit + wa_final-debit.
****** Net due date
IF wa_bsid-zbd1t IS NOT INITIAL.
w_days = wa_bsid-zbd1t.
ELSEIF wa_bsid-zbd2t IS NOT INITIAL.
w_days = wa_bsid-zbd2t.
ELSEIF wa_bsid-zbd3t IS NOT INITIAL.
w_days = wa_bsid-zbd3t.
ENDIF.
IF w_days IS INITIAL.
wa_final-date = wa_bsid-zfbdt.
ELSE.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = wa_bsid-zfbdt
days = w_days
months = w_month
signum = '+'
years = w_year
IMPORTING
calc_date = w_date.
wa_final-date = w_date.
ENDIF.
APPEND wa_final TO it_final.
CLEAR: w_days , w_date , wa_final .
ENDLOOP.
IF it_bsik IS NOT INITIAL.
CLEAR: w_days , w_date.
SORT it_bsik BY bldat.
LOOP AT it_bsik INTO wa_bsik.
wa_final-belnr = wa_bsik-belnr.
wa_final-bldat = wa_bsik-bldat.
wa_final-blart = wa_bsik-blart.
wa_final-txt = wa_bsik-sgtxt.
* wa_final-kkber = wa_bsik-kkber.
wa_final-zterm = wa_bsik-zterm.
wa_final-augbl = wa_bsik-augbl.
wa_final-augdt = wa_bsik-augdt.
wa_final-flag = 'V'.
IF wa_bsik-blart = 'DZ'.
wa_final-chq = wa_bsik-zuonr.
ENDIF.
IF wa_bsik-shkzg = 'S'.
wa_final-debit = wa_bsik-dmbtr.
ELSEIF wa_bsik-shkzg = 'H'.
wa_final-credit = wa_bsik-dmbtr.
ENDIF.
w_credit1 = w_credit1 + wa_final-credit.
w_debit1 = w_debit1 + wa_final-debit.
******* Net Due date
IF wa_bsik-zbd1t IS NOT INITIAL.
w_days = wa_bsik-zbd1t.
ELSEIF wa_bsik-zbd2t IS NOT INITIAL.
w_days = wa_bsik-zbd2t.
ELSEIF wa_bsik-zbd3t IS NOT INITIAL.
w_days = wa_bsik-zbd3t.
ENDIF.
IF w_days IS INITIAL.
wa_final-date = wa_bsik-zfbdt.
ELSE.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = wa_bsik-zfbdt
days = w_days
months = w_month
signum = '+'
years = w_year
IMPORTING
calc_date = w_date.
ENDIF.
wa_final-date = w_date.
APPEND wa_final TO it_final.
CLEAR: wa_final.
ENDLOOP.
ENDIF.
ENDFORM. " PROCESS_DATA
*& Form DISPLAY_DATA
* text
* --> p1 text
* <-- p2 text
FORM display_data .
wa_fieldcat_alv-fieldname = 'BELNR'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-003.
wa_fieldcat_alv-outputlen = '11'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'BLDAT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-004.
wa_fieldcat_alv-outputlen = '13'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'BLART'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-005.
wa_fieldcat_alv-outputlen = '02'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'CHQ'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-006.
wa_fieldcat_alv-outputlen = '09'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'DEBIT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-007.
wa_fieldcat_alv-outputlen = '15'.
wa_fieldcat_alv-do_sum = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'CREDIT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-008.
wa_fieldcat_alv-outputlen = '15'.
wa_fieldcat_alv-do_sum = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'TXT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-009.
wa_fieldcat_alv-outputlen = '50'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'DATE'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-010.
wa_fieldcat_alv-outputlen = '12'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'KKBER'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-011.
wa_fieldcat_alv-outputlen = '04'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'ZTERM'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-012.
wa_fieldcat_alv-outputlen = '13'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'AUGBL'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-013.
wa_fieldcat_alv-outputlen = '15'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'AUGDT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-014.
wa_fieldcat_alv-outputlen = '17'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'FLAG'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-tech = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = wa_layout_alv
it_fieldcat = it_fieldcat_alv
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = it_sort
it_events = it_events
i_save = 'A'
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* i_callback_program = sy-repid
* i_callback_top_of_page = 'TOP_OF_PAGE'
* is_layout = wa_layout_alv
* it_fieldcat = it_fieldcat_alv
* it_sort = it_sort
*** I_DEFAULT = 'X'
** i_save = 'A'
*** IT_EVENTS =
* TABLES
* t_outtab = it_final
* EXCEPTIONS
* program_error = 1
* OTHERS = 2
* IF sy-subrc <> 0.
*** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*** WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
ENDFORM. " DISPLAY_DATA
*& Form TOP_OF_PAGE
* Header at top of page.
FORM top_of_page.
SKIP 1.
WRITE: AT 35 'Account Statement from' , so_budat-low , 'to' , so_budat-high.
SKIP 2.
WRITE: AT /5 'CUSTOMER:' , p_kunnr.
WRITE: AT 35 'Name:' , w_name1.
WRITE: AT /5 'Company:' , p_bukrs.
WRITE: AT 35 'City:' , w_ort01.
SKIP 1.
WRITE: AT /5 'Opening Balance as on' , so_budat-low , ' ' , w_opbal LEFT-JUSTIFIED.
SKIP 2.
ENDFORM. "TOP_OF_PAGE
*& Form END_OF_PAGE
* Footer at End of page.
FORM end_of_page.
SKIP 2.
IF so_budat-high IS NOT INITIAL.
WRITE: AT 5 'Closing Balance as on' , so_budat-high , ' ' , w_clobal LEFT-JUSTIFIED.
ELSE.
WRITE: AT 5 'Closing Balance ' , w_clobal LEFT-JUSTIFIED.
ENDIF.
ENDFORM. "end_of_page
*& Form CALCULATE_OPENBAL
* text
* --> p1 text
* <-- p2 text
FORM calculate_openbal .
DATA:v_gjahr TYPE bsid-gjahr.
DATA: v_period LIKE t009b-poper,v_monat LIKE t001-periv.
CALL FUNCTION 'FI_PERIOD_DETERMINE'
EXPORTING
i_budat = so_budat-low
i_bukrs = p_bukrs
* I_PERIV = ' '
* I_GJAHR = 0000
* I_MONAT = 00
* X_XMO16 = ' '
IMPORTING
e_gjahr = v_gjahr
* e_monat = v_monat
e_poper = v_period.
IF sy-subrc NE 0.
ENDIF.
DATA: f_date LIKE sy-datum.
CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'
EXPORTING
i_gjahr = v_gjahr
i_monmit = 00
i_periv = 'V3'
i_poper = v_period
IMPORTING
e_date = f_date.
period = v_period - 1.
gjahr = v_gjahr.
DATA wa_kna1 LIKE kna1.
CALL FUNCTION 'READ_KNA1'
EXPORTING
xkunnr = p_kunnr
IMPORTING
xkna1 = wa_kna1
EXCEPTIONS
key_incomplete = 1
not_authorized = 2
not_found = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE w023(zwww).
CALL SCREEN 0010.
ENDIF.
MOVE-CORRESPONDING wa_kna1 TO t_kna1.
APPEND t_kna1.
SELECT kunnr FROM kna1 INTO TABLE ikunnr1
WHERE kunnr = p_kunnr.
SELECT bukrs FROM t001 INTO TABLE ibukrs
FOR ALL ENTRIES IN t_knb1
WHERE bukrs = t_knb1-bukrs.
LOOP AT ikunnr1.
LOOP AT ibukrs.
ikunnr-kunnr = ikunnr1-kunnr.
ikunnr-bukrs = ibukrs-bukrs.
READ TABLE t_kna1 WITH KEY kunnr = ikunnr1-kunnr.
ikunnr-lifnr = t_kna1-lifnr.
APPEND ikunnr.
ENDLOOP.
ENDLOOP.
DELETE ikunnr WHERE bukrs NE p_bukrs.
LOOP AT ikunnr.
CLEAR: knc1,lfc1,f.
IF NOT ( ikunnr-kunnr IS INITIAL ) AND NOT ( p_vendor IS INITIAL ).
SELECT SINGLE * FROM lfc1
WHERE gjahr = gjahr AND bukrs = ikunnr-bukrs
AND lifnr = ikunnr-lifnr.
ENDIF.
SELECT SINGLE * FROM knc1
WHERE gjahr = gjahr AND bukrs = p_bukrs
AND kunnr = p_kunnr.
IF sy-subrc = 0.
CASE period .
WHEN 12.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h +
knc1-um11s - knc1-um11h + knc1-um12s - knc1-um12h.
IF NOT ( lfc1 IS INITIAL ).
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h +
lfc1-um11s - lfc1-um11h + lfc1-um12s - lfc1-um12h.
ENDIF.
WHEN 11.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h +
knc1-um11s - knc1-um11h.
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h +
lfc1-um11s - lfc1-um11h.
ENDIF.
WHEN 10.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h.
ENDIF.
WHEN 9.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h.
ENDIF.
WHEN 8.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h.
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h .
ENDIF.
WHEN 7.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um -
Performance issue of frequently data inserted tables
Hi all,
Have a table named raw_trap_store having columns as trap_id(number,PK),Source_IP(varchar2), OID(varchar2),Message(CLOB) and received_time(date).
This table is partitioned across 24 partitions where partitioning column being received_time. (every hour's data will be stored in each partition).
This table is getting inserted with 40-50 records/sec on an average. Overall number of records for a day will be around 2.8-3 million. Data will be retained for 2 days.
No updates will be happening on this table.
Performance issue:N
Need a report which involves selection of records from this table based on certain values of Source IP (filtering condition on source_ip column).
Need a report which involves selection of records from this table based on certain values of OID (filtering condition on OID column).
But, if i create an index on SourceIP and OID column, then inserts are getting slow. (have created a normal index. not partitioned index)
Please help me to address the above issue.Giving the nature of your report (based on Source_IP and OID) and the nature of your table partitioning (range partitioned by received_time), you have already made a good decision to create these particular indexes as a normal (b-tree or global) and not locally partitioned. Because if you have locally partitioned them, your reports will not eliminate partitions (because they do not include the partition key in their where clause) and hence your index range scans will scan all 24 partitions generating a lot of logical I/O
That is said, remember that generally we insert once and select many times. You have to balance that. If you are sure that it is the creation of your two indexes that has decreased the insert performance then you may set them at in an unusable state before the insert and rebuild them after. But this might be a good advice only if the volume of data to be inserted is much bigger than the existing volume of data before the insert.
And if you are not deleting from the table and the table does not contain triggers and integrity constraints (like FK constraint) then you can opt for a direct path insert using the hint /*+ append */
Best regards
Mohamed Houri
<mod. action: removed unecessary blog ref.>
Message was edited by: Nicolas.Gasparotto -
Expression Filter Performance Issues / Misuse?
I'm currently evaluating the Expression Filter functionality for a new requirement. The basic idea of the requirement is that I have a logging table that I want to get "interesting" records from. The way I want to set it up is to exclude known, "uninteresting", records or record patterns.
So as far as an implementation I was considering a table of expressions that contained expression filter entries for the "uninteresting" records and checking this against my logging table using the EVALUATE operator and looking for a 0 result.
In my testing I wanted to return results where the EVALUTE operator is equal to 1 to see if my expressions are correct. In doing this I was experiencing significant performance issues. For example my test filter matches 72 rows out of 61657 possible entries. It took Oracle almost 10 minutes to evaluate this expression. I tried it with and without an Expression Filter index with no noticeable change in execution time. The test case and query is provided below.
Is this the right use case for Expression Filter? Am I misunderstanding how it works? What am I doing wrong?
Test Case:
Version
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
Objects & Query:
CREATE TABLE expressions( white_list VARCHAR2(200));
CREATE TABLE data
AS
SELECT OBJECT_ID
, OWNER
, OBJECT_NAME
, CREATED
, LAST_DDL_TIME
FROM DBA_OBJECTS
BEGIN
-- Create the empty Attribute Set --
DBMS_EXPFIL.CREATE_ATTRIBUTE_SET('exptype');
-- Define elementary attributes of EXF$TABLE_ALIAS type --
DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE('exptype','data',
EXF$TABLE_ALIAS('test_user.data'));
END;
BEGIN
DBMS_EXPFIL.ASSIGN_ATTRIBUTE_SET('exptype','expressions','white_list');
END;
INSERT INTO expressions(white_list) VALUES('data.owner=''TEST_USER'' AND data.created BETWEEN TO_DATE(''08/03/2010'',''MM/DD/YYYY'') AND TO_DATE(''08/05/2010'',''MM/DD/YYYY'')');
exec dbms_stats.gather_table_stats(USER,'EXPRESSIONS');
exec dbms_stats.gather_table_stats(USER,'DATA');
CREATE INDEX expIndex ON Expressions (white_list) INDEXTYPE IS EXFSYS.EXPFILTER
PARAMETERS ('STOREATTRS (data.owner,data.object_name,data.created)
INDEXATTRS (data.owner,data.object_name,data.created)');
SELECT /*+ gather_plan_statistics */ data.* FROM data, expressions WHERE EVALUATE(white_list,exptype.getVarchar(data.rowid)) = 1;
DROP TABLE expressions PURGE;
BEGIN
DBMS_EXPFIL.DROP_ATTRIBUTE_SET(attr_set => 'exptype');
END;
DROP TABLE data PURGE;Hi,
If you are already using the queries and are stable enough then rather than modifying query you can try other options to improve the query performance like data compression of the cube, creation of aggregates, placing cube on BIA or creating cache for the query.
Best Regards,
Prashant Vankudre. -
ERP Sales Order : Performance issues with Product Proposal
Hi
we are working on CRM 2007 solution and are facing serious performance issues with the ERP Sales Order functionality provided in the ICWC of this version.
In our development we are adding items in the ERP cart as soon as the user clicks on the 'New Sales Order' button of the sales order sreen. We get the items by very simple and optimized call to the ERP system and then add these entities in the Item Cart (Item collection ...in simple sense).
For adding 10 items the application takes 10 seconds and this is too much for adding just 10 items.
Can you please provide any Notes/alternative solution to resolve this issue.
Regards
AjitabhHi Ajithabh,
Please apply the following SAP notes:
1061423 - Interaction Center ERP Order Performance improvement
1262277 - Performance: CRM value help causes dumps in ERP
1292817 - Performance: Reduce RFC calls during creation of ERP order.
1319885 - ERP sales order search with external reference
1326527 - Reducing number of RFC calls in IC ERP Sales Order
I hope it helps!
Regards,
Gabriel Santana -
Oracle 11g Migration performance issue
Hello,
There a performance issue with Migration from Oracle 10g(10.2.0.5) to Oracle 11g(11.2.0.2).
Its very simple statement hanging for more than a day and later found that query plan is very very bad. Example of the query is given below:
INSERT INTO TABLE_XYZ
SELECT F1,F2,F3
FROM TABLE_AB, TABLE_BC
WHERE F1=F4;
While looking at cost in Explain plan :
on 10g --> 62567
0n 11g --> 9879652356776
Strange thing is that
Scenario 1: if I issue just query as shown below, will display rows immediately :
SELECT F1,F2,F3
FROM TABLE_AB, TABLE_BC
WHERE F1=F4;
Scenario 2: If I create a table as shown below, will work correctly.
CREATE TABLE TABLE_XYZ AS
SELECT F1,F2,F3
FROM TABLE_AB, TABLE_BC
WHERE F1=F4;
What could be the issue here with INSERT INTO <TAB> SELECT <COL> FROM <TAB1>?Table:
CREATE TABLE AVN_WRK_F_RENEWAL_TRANS_T
"PKSRCSYSTEMID" NUMBER(4,0) NOT NULL ENABLE,
"PKCOMPANYCODE" VARCHAR2(8 CHAR) NOT NULL ENABLE,
"PKBRANCHCODE" VARCHAR2(8 CHAR) NOT NULL ENABLE,
"PKLINEOFBUSINESS" NUMBER(4,0) NOT NULL ENABLE,
"PKPRODUCINGOFFICELIST" VARCHAR2(2 CHAR) NOT NULL ENABLE,
"PKPRODUCINGOFFICE" VARCHAR2(8 CHAR) NOT NULL ENABLE,
"PKEXPIRYYR" NUMBER(4,0) NOT NULL ENABLE,
"PKEXPIRYMTH" NUMBER(2,0) NOT NULL ENABLE,
"CURRENTEXPIRYCOUNT" NUMBER,
"CURRENTRENEWEDCOUNT" NUMBER,
"PREVIOUSEXPIRYCOUNT" NUMBER,
"PREVIOUSRENEWEDCOUNT" NUMBER
SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT
TABLESPACE "XYZ" ;
Explain Plan(With Insert Statement and Query):_
INSERT STATEMENT, GOAL = ALL_ROWS Cost=9110025395866 Cardinality=78120 Bytes=11952360
LOAD TABLE CONVENTIONAL Object owner=ODS Object name=AVN_WRK_F_RENEWAL_TRANS
NESTED LOOPS OUTER Cost=9110025395866 Cardinality=78120 Bytes=11952360
TABLE ACCESS FULL Object owner=ODS Object name=AVN_WRK_F_RENEWAL_TRANS_1ST Cost=115 Cardinality=78120 Bytes=2499840
VIEW PUSHED PREDICATE Object owner=ODS Cost=116615788 Cardinality=1 Bytes=121
SORT GROUP BY Cost=116615788 Cardinality=3594 Bytes=406122
VIEW Object owner=SYS Object name=VW_DAG_1 Cost=116615787 Cardinality=20168 Bytes=2278984
SORT GROUP BY Cost=116615787 Cardinality=20168 Bytes=4073936
NESTED LOOPS OUTER Cost=116614896 Cardinality=20168 Bytes=4073936
VIEW Object owner=SYS Cost=5722 Cardinality=20168 Bytes=2157976
NESTED LOOPS Cost=5722 Cardinality=20168 Bytes=2097472
HASH JOIN Cost=924 Cardinality=1199 Bytes=100716
NESTED LOOPS
NESTED LOOPS Cost=181 Cardinality=1199 Bytes=80333
TABLE ACCESS BY INDEX ROWID Object owner=ODS Object name=INWARDSPOLICYDETAILS Cost=159 Cardinality=1199 Bytes=39567
INDEX RANGE SCAN Object owner=ODS Object name=IX_INWPOLDTLS_SYSCOMPANYBRANCH Cost=7 Cardinality=1199
INDEX UNIQUE SCAN Object owner=ODS Object name=PK_AVN_D_MASTERPOLICYDETAILS Cost=0 Cardinality=1
TABLE ACCESS BY INDEX ROWID Object owner=ODS Object name=AVN_D_MASTERPOLICYDETAILS Cost=1 Cardinality=1 Bytes=34
TABLE ACCESS FULL Object owner=ODS Object name=INWARDSPOLICYLOBMAPPING Cost=741 Cardinality=288498 Bytes=4904466
VIEW PUSHED PREDICATE Object owner=ODS Cost=4 Cardinality=1 Bytes=20
FILTER
SORT AGGREGATE Cardinality=1 Bytes=21
TABLE ACCESS BY GLOBAL INDEX ROWID Object owner=ODS Object name=AVN_F_TRANSACTIONS Cost=4 Cardinality=1 Bytes=21
INDEX RANGE SCAN Object owner=ODS Object name=PK_AVN_F_TRANSACTIONS Cost=3 Cardinality=1
VIEW PUSHED PREDICATE Object owner=ODS Cost=5782 Cardinality=1 Bytes=95
SORT GROUP BY Cost=5782 Cardinality=2485 Bytes=216195
VIEW Object owner=SYS Object name=VW_DAG_0 Cost=5781 Cardinality=2485 Bytes=216195
SORT GROUP BY Cost=5781 Cardinality=2485 Bytes=278320
HASH JOIN Cost=5780 Cardinality=2485 Bytes=278320
VIEW Object owner=SYS Object name=VW_GBC_15 Cost=925 Cardinality=1199 Bytes=73139
SORT GROUP BY Cost=925 Cardinality=1199 Bytes=100716
HASH JOIN Cost=924 Cardinality=1199 Bytes=100716
NESTED LOOPS
NESTED LOOPS Cost=181 Cardinality=1199 Bytes=80333
TABLE ACCESS BY INDEX ROWID Object owner=ODS Object name=INWARDSPOLICYDETAILS Cost=159 Cardinality=1199 Bytes=39567
INDEX RANGE SCAN Object owner=ODS Object name=IX_INWPOLDTLS_SYSCOMPANYBRANCH Cost=7 Cardinality=1199
INDEX UNIQUE SCAN Object owner=ODS Object name=PK_AVN_D_MASTERPOLICYDETAILS Cost=0 Cardinality=1
TABLE ACCESS BY INDEX ROWID Object owner=ODS Object name=AVN_D_MASTERPOLICYDETAILS Cost=1 Cardinality=1 Bytes=34
TABLE ACCESS FULL Object owner=ODS Object name=INWARDSPOLICYLOBMAPPING Cost=741 Cardinality=288498 Bytes=4904466
VIEW Object owner=SYS Object name=VW_GBF_16 Cost=4854 Cardinality=75507 Bytes=3850857
SORT GROUP BY Cost=4854 Cardinality=75507 Bytes=2340717
VIEW Object owner=ODS Cost=4207 Cardinality=75507 Bytes=2340717
SORT GROUP BY Cost=4207 Cardinality=75507 Bytes=1585647
PARTITION HASH ALL Cost=3713 Cardinality=75936 Bytes=1594656
TABLE ACCESS FULL Object owner=ODS Object name=AVN_F_TRANSACTIONS Cost=3713 Cardinality=75936 Bytes=1594656
Explain Plan(Only Query):_
SELECT STATEMENT, GOAL = ALL_ROWS Cost=62783 Cardinality=89964 Bytes=17632944
HASH JOIN OUTER Cost=62783 Cardinality=89964 Bytes=17632944
TABLE ACCESS FULL Object owner=ODS Object name=AVN_WRK_F_RENEWAL_TRANS_1ST Cost=138 Cardinality=89964 Bytes=2878848
VIEW Object owner=ODS Cost=60556 Cardinality=227882 Bytes=37372648
HASH GROUP BY Cost=60556 Cardinality=227882 Bytes=26434312
VIEW Object owner=SYS Object name=VW_DAG_1 Cost=54600 Cardinality=227882 Bytes=26434312
HASH GROUP BY Cost=54600 Cardinality=227882 Bytes=36005356
HASH JOIN OUTER Cost=46664 Cardinality=227882 Bytes=36005356
VIEW Object owner=SYS Cost=18270 Cardinality=227882 Bytes=16635386
HASH JOIN Cost=18270 Cardinality=227882 Bytes=32587126
HASH JOIN Cost=12147 Cardinality=34667 Bytes=2912028
HASH JOIN Cost=10076 Cardinality=34667 Bytes=2322689
TABLE ACCESS FULL Object owner=ODS Object name=AVN_D_MASTERPOLICYDETAILS Cost=137 Cardinality=34667 Bytes=1178678
TABLE ACCESS FULL Object owner=ODS Object name=INWARDSPOLICYDETAILS Cost=9934 Cardinality=820724 Bytes=27083892
TABLE ACCESS FULL Object owner=ODS Object name=INWARDSPOLICYLOBMAPPING Cost=741 Cardinality=866377 Bytes=14728409
VIEW Object owner=ODS Cost=5195 Cardinality=227882 Bytes=13445038
HASH GROUP BY Cost=5195 Cardinality=227882 Bytes=4785522
PARTITION HASH ALL Cost=3717 Cardinality=227882 Bytes=4785522
TABLE ACCESS FULL Object owner=ODS Object name=AVN_F_TRANSACTIONS Cost=3717 Cardinality=227882 Bytes=4785522
VIEW Object owner=ODS Cost=26427 Cardinality=227882 Bytes=19369970
HASH GROUP BY Cost=26427 Cardinality=227882 Bytes=18686324
VIEW Object owner=SYS Object name=VW_DAG_0 Cost=26427 Cardinality=227882 Bytes=18686324
HASH GROUP BY Cost=26427 Cardinality=227882 Bytes=25294902
HASH JOIN Cost=20687 Cardinality=227882 Bytes=25294902
VIEW Object owner=SYS Object name=VW_GBC_15 Cost=12826 Cardinality=34667 Bytes=2080020
HASH GROUP BY Cost=12826 Cardinality=34667 Bytes=2912028
HASH JOIN Cost=12147 Cardinality=34667 Bytes=2912028
HASH JOIN Cost=10076 Cardinality=34667 Bytes=2322689
TABLE ACCESS FULL Object owner=ODS Object name=AVN_D_MASTERPOLICYDETAILS Cost=137 Cardinality=34667 Bytes=1178678
TABLE ACCESS FULL Object owner=ODS Object name=INWARDSPOLICYDETAILS Cost=9934 Cardinality=820724 Bytes=27083892
TABLE ACCESS FULL Object owner=ODS Object name=INWARDSPOLICYLOBMAPPING Cost=741 Cardinality=866377 Bytes=14728409
VIEW Object owner=SYS Object name=VW_GBF_16 Cost=7059 Cardinality=227882 Bytes=11621982
HASH GROUP BY Cost=7059 Cardinality=227882 Bytes=6836460
VIEW Object owner=ODS Cost=5195 Cardinality=227882 Bytes=6836460
HASH GROUP BY Cost=5195 Cardinality=227882 Bytes=4785522
PARTITION HASH ALL Cost=3717 Cardinality=227882 Bytes=4785522
TABLE ACCESS FULL Object owner=ODS Object name=AVN_F_TRANSACTIONS Cost=3717 Cardinality=227882 Bytes=4785522 -
DbAdapter / Toplink Performance issues
I'm using the DbAdabpter / Toplink to fetch a sizable dataset (500 - 30,000) row for later emission to a file. The fetch of this data via the DbAdapter / Toplink seems to works reasonably well (albeit quite slow) for datasets between 500-7,000 rows. If I attempt to read a larger dataset, the DbAdapter invocation simply times out. I've tweaked the following configuration options suspecting they might help with the long running invoke the DbAdapter partner link:
* created an on alarm branch and allowed for 15 minutes for the dataset to be returned.
* increased the syncMaxWaitTime attribute to 15 minutes.
* Configured the BPEL OC4J instance to use 2048MB for the JVM heap.
I've tested the query being used by the DbAdapter via SQL navigator and it returns the data sub-second. I'm suspecting the performance issue is related to the DbAdapter / Toplink rendering the thousands of rows into an XML DOM representation. Might this be the case?
To help further my hypothesis, I'd like to enable the Toplink profiler. I've found a document in the Oracle doc library that suggests it can be enabled with the following directive, "logProfile" (http://www.oracle.com/technology/products/ias/toplink/doc/1013/MAIN/_html/optimiz003.htm#BEEBCBJF). Any idea where I'd specify this directive? Perhaps somewhere in the toplink_mappings.xml file?
I could be completely off base and the performance issue could be attributed to some other aspect of my BPEL process. Has anyone else encountered this sort of behavior when working with DbAdapters that return thousands of rows?
Thanks,
PeterHi Peter,
if you are still experiencing the timeout problem you may want to alter the transaction config timout setting in the server.xml file. The tuning guide indicates to change the one file but we have changed it in two locations.
j2ee/OC4J_BPEL/config (to 700000) and integration/orabpel/system/appserver/oc4j/j2ee/home/config/ (600000) we have previously found that the sync_max_wait_time in the console needs to be set at a value lower than the settings in the above files (540 secs).
For the performance have you captured the sql from the island log that BPEL is actually running (colaxa.cube.ws logging to debug), is it from a single table or from multiple. We managed to improve the perfromance by setting the use-joining in the toplink-mappings file, but then ended up creating a view in the source system to limit the queries being executed. I am not sure about BPEL's capacity to handle large payloads but it would be interesting to know.
Ashley -
SQLs erver migration performance issue
We are performing migration from oracle to MSSQL server 2005 (Windows 2003/SAP 4.6D).Our target system configuration is like below:
->OS - Windows 2003 x64
->DB - MSSQL server 2005 SP4
->SAP - 4.6 D kernel
->CPU - 4 processors (2.67ghz each)
->RAM - 16 GB
->source system DB size - around 1 TB and package splitting was implemented.
While importing the export dump that came from source system, we are facing load performance issue's.
1) We have started 10 parallel processes and after import is started, CPU is getting 95% to 99% utilized and when we check SQL server studio-> Activity monitor we found below information:
-There were around 20 processes are in status sleeping
-Only one or two system processes are running with commands - INSERT,SELECT INTO commands ( column)
-At any point of time only two processes are running and CPU utilization is hitting high.
-Import is very slow and its taking 35 hours to complete
We have followed few SAP notes(1054852,1241751 e.tc..) and below are the settings for SQL server:
-Minimum server memory - 5 GB
- Maximum server memory - 5 GB
- index creation memory - 0
- Maximum memory per query - 1024 kb
- Maximum degree of parellelism - 1
- Parallellism locks - 0
- Cost threshold of parellism - 5
- Enabled trace flags - 610,620,1117,1211,3917
- Windows environment variable BCP_BATCH_SIZE = 10000
- SQL log file size - 100 GB
- tempdb size - 20 GB
2) When we tried another test import after tuning parameters (Maximum degree of parellelism to 3) and increasing r3load parallel processes to 20, we found of inserts
are overflowing in process list and blocking other waiting processes and putting them in suspended mode.CPU utilization is at 80%
Are there any SQL server parameters need to be tuned to fix this import load time issue in both scenarios? Are there any best practises for migrating to SQL server?
Thanks..> 1) We have started 10 parallel processes and after import is started, CPU is getting 95% to 99% utilized and when we check SQL server studio-> Activity monitor we found below information:
What processes is using the CPU? The SQL Server itself or others? (see task manager)
> -Minimum server memory - 5 GB
> - Maximum server memory - 5 GB
For the time of the migration itself I'd give the database more memory (10 GB or more) and reconfigure later when the import is done.
What parameters do you use for the R3load? I'd recommend
-loadprocedure fast -merge_bck -c 10000
and also set
BCP_LOB=1 in the environment.
Markus -
Hi Experts,
Can any one help me when we get performance issues in XI, can any body give me some examples.
thanks,
dhanushHi
Here are some helpful links
http://help.sap.com/saphelp_nw04/helpdata/en/9e/6921e784677d4591053564a8b95e7d/frameset.htm
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/489f5844-0c01-0010-79be-acc3b52250fd
XI Performance Testing Tool
Try performance tuning :
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/70ada5ef-0201-0010-1f8b-c935e444b0ad
Some blog covering the Performance issues in XI:
Performance Tuning Checks in SAP Exchange Infrastructure: /people/prasad.illapani/blog/2007/03/08/performance-tuning-checks-in-sap-exchange-infrastructure
Performance Tuning Checks in SAP Exchange Infrastructure(XI): Part-II: /people/prasad.illapani/blog/2007/04/20/performance-tuning-checks-in-sap-exchange-infrastructurexi-part-ii
Resource consumption for the mapping depends on the complexity of the mappings and the source document sizes.Java mappings use XI Mapping Toolkit.Graphical Mappings are much faster because the code beneath is highly efficient.
Get back if you have more doubts.
Thanks -
----Constraints and Performance issues----
Hi all,
I have a major concern and I would like ur suggestion on the best way to handle it.
I have a staging table cust_staging. I have 2 target tables customer, customer_address which must be populated from this staging table.
The customer key in all 3 tables is the primary key. For table customer_address, the customer_key is also referenced from the customer table.
Incremental data will be available in the staging table (aorund 0.2 million) and the customer table would have appx 2 million records.
The concern I have is that i have to insert/update this information into the target tables without disabling the foreign key constraints.
I tried to insert into both the target tables with the constraints enabled but the mapping just hangs and I am forced to kill the process. I had tried using a single mapping to populate both tables and when that was going into hang mode, i tried with first customer and then another mapping for customer_address. This also just goes on hang mode.
Next I tried to disable the constarint and enable it again in the mapping itself. My concern here is that if I do a blind insert and when I re-enable the constraints, if there is a violation, the target table may goto an unusable state and my target table will become non usable.
My concern here is how to tackle this problem. Can i first disable the constraints, incorporate some logic using the pre-mappings wherein I can apply business rules to check the constraints explicitly and then redirect the bad records to reject and other records to the actual target.
Please do let me know how I should handle this situation in OWB bearing in mind the performance issues also.
we use owb 9.2.Hi all,
I have a major concern and I would like ur suggestion on the best way to handle it.
I have a staging table cust_staging. I have 2 target tables customer, customer_address which must be populated from this staging table.
The customer key in all 3 tables is the primary key. For table customer_address, the customer_key is also referenced from the customer table.
Incremental data will be available in the staging table (aorund 0.2 million) and the customer table would have appx 2 million records.
The concern I have is that i have to insert/update this information into the target tables without disabling the foreign key constraints.
I tried to insert into both the target tables with the constraints enabled but the mapping just hangs and I am forced to kill the process. I had tried using a single mapping to populate both tables and when that was going into hang mode, i tried with first customer and then another mapping for customer_address. This also just goes on hang mode.
Next I tried to disable the constarint and enable it again in the mapping itself. My concern here is that if I do a blind insert and when I re-enable the constraints, if there is a violation, the target table may goto an unusable state and my target table will become non usable.
My concern here is how to tackle this problem. Can i first disable the constraints, incorporate some logic using the pre-mappings wherein I can apply business rules to check the constraints explicitly and then redirect the bad records to reject and other records to the actual target.
Please do let me know how I should handle this situation in OWB bearing in mind the performance issues also.
we use owb 9.2. -
Performance issue: Calling a BAPI PO create in test mode to get error msgs
Hi,
We have an ALV report in which we display purchase orders that got created in SAP, but either got blocked due to not meeting PO Release strategy tolerances or have failed output messages. we are displaying the failed messages even.
We are looping the internal table of eban(PR) & calling bapi po create in test mode to get failed messages.
Now we are facing performance issue in production. What can be the alternate efficient way to get the error msgs with efficiency
Regards,
Ayub H.
Moderator message: duplicate post (different ID, same company...), see below:
Performance issue calling bapi po create in test mode to get error messages
Edited by: Thomas Zloch on Mar 9, 2012Hi Suvarna,
so you need to reduce the number of PO-simulations.
- Likely you checked already, that all EBAN-entries should already be converted into POs. If there would be a large number of "new" EBAN-entries, they don't need to be simulated.
- If it's a temporary problem: give aid to correct the problems (maintain prices or whatever the error-reasons are) Then the amount of not-converted purchase requisitions (PR) should drop, too
- If it's likely, that your volume of open PR will stay high: create a Z-Table with key of EBAN and a counter, simulate (once a day) PO conversions and store the results in the Z-table. In your report you can use the results... if they are "new enough". From time to time new simulations should be done, missing master data might be available.
Maybe users should be allowed to start this 2nd report manually (in background), too -> then they can update the messages after some data corrections themself, without waiting for the result (just check later in online report and do something different in between).
And you might need to explain, PO simulation takes as long as PO creation... there is no easy or fast way around this.
Best regards,
Christian
Maybe you are looking for
-
How do I zero all data on Time Capsule?
I just got the new 2TB Time Capsule and I want to get rid of my previous 1TB one, but I can't figure out how to zero all data on that disk, and I of course don't want to sell my Time Capsule to a stranger with sensitive data on it. Does anyone know h
-
How do I select photos in iphoto to add to my ipod?
I can only select "most recent" but would like to create a ipod pics folder and load only select photos to it. How can I do this? It was easy in windows.
-
Sales Analyses / sql Query
Hello All, is there a possibillity to catch/copy the sales analyses reports as User Query? we need a existng Sales analyses Report but with some other informations which are not included in the standard report. so my thinking was may we can copy the
-
Does somebody know a method to download all master Data members in Excel
Hello, i'm searching a method/function which is able to Download all dimension members with a few properties in an excel worksheet? Or should I create an evdre with all base members? Thanks, Gerrit
-
Can't open projects after re-installing Premiere Pro 1.5
So, right in the middle of some projects, my hard drive decides to crash. I had to replace the hard drive but the computer guy was able to save all my projects, plus I had back ups on an external. Now that I have my computer back and my Premiere Pro