Oracle BI Reports not hitting table partition
Hi,
I have Fact Table 'F1' which is joined with Dim Table 'D1' on F1.Date1 = D1.Date1 Column. On Fact Table 'F1', we have partition on column "F1.Date1"
Partiton_Name Range
Jan10 - 01-Jan-2010 to 31-Jan-2010
Feb10 - 01-Feb-2010 to 28-Feb-2010
In Dim Table 'D1', I have Column "Month_Year" as well i.e., Month_Year ("Jan-2010", "Feb-2010").
Chart shows you data for multiple months (i.e., Jan-2010 - 1000000, Feb-2010 - 1500000) and I have navigate on column "Month_Year" to another report.
when i click on column "Month_Year" value i.e., Jan-2010 from report1 - Value "Jan-2010" goes a filter in another report (since i have given IS PROMPTED on second report).
Since I have partitioned on Column F1.Date, it goes for full scan (hitting all partitions exits in table 'F1'), I want to hit only 1 partion.
Please suggest.
Let me know in case of any clarification required.Thanks
I agree with your idea that partitioning for 40K rows (with the information you provided) seems excessive. Doing the math 40K rows * 218 partitions should come out to be only around 8M, which I would not immediately consider a candidate for partitioning.
There are benefits to partitioning that you're aware of; most of these involve the use of large data sets. Pruning is a huge benefit by excluding vast amounts of unwanted data from join consideration.
There are downsides too, mostly buried under the volume of data that partitions usually work with. There is a slight performance hit on standard queries against a partitioned table while SQL decides which partitions to hit. You can observe this by querying from the table, then by a specific partition when only trying to get data from a specific partition.
There is also the issue of how many partitions do you want to keep track of? You are asking good questions.
Its possible that the partitions are helping performance; the only way to make sure is to create a non-partitioned table using CTAS, index and constraint it like the partitioned table, and run some performance tests.
Similar Messages
-
Report not hitting pre seed cahe created using iBot by Admin
Hi,
We created an iBot to pre seed the cache using Administrator and it is creating the cache but when normal user run this particular report for the 1st time it's not hitting the cache(created using iBot). all the subsequest users request hitting the cache created by normal user. I still dont understand why it is not hitting the cache.
Did anyone comeacross this issue before?
what are the reasons not hitting cache with above scenario??
does cache created by administrator using ibot work for other users? we actually running whole query with no filters on it using admin and normal users run the same report with some filters on it. as per oracle cache strategy it should work but it's not.
any help appreciated.
Thanks
Jay.
Edited by: Jay on May 16, 2012 7:23 PM
Edited by: Jay on May 17, 2012 5:42 AMHi Jay,
I have given some inputs.
The way the OBIEE server creates the SQL (both logical and physical) for a request can be a bit funky sometimes, the cache seeding only really works in fairly simple cases. Does your request have a pivot table in it by any chance? These are notorious for not caching properly, if you look at the log for the request you can see why as the server adds this strange "aggregate by" to the request (why this can't be done at the presentation level since the only change you are asling for is in the presentation of the content is beyond me). Those "aggregate by"s tend to stop a request being a cache hit unless it is identical to the one that seeded that cache, any change in parameters, columns etc (even if a logical subset) will not get a cache hit.
2. "Oracle BI Server Cache" Cache Seeding option present in Destination tab of Delivers -- Please check this option.
3. Caching is one of the many approaches to improve performance but it's not a magic solution. You need to understand that you can't cache everything. In particular you won't be able to cache reports that are driven by parameters and have facts that are too granular and exceed the number of rows each cache entry can have. If your fact is of a small size then you can get around the parameters issue by caching a report without any filters. The BI Server should able to derive subsequent queries as long as they meet the cache hit criteria. Have a look at the administration manual for all the rules a cache hit must meet.
Hope it helps.
Thanks,
Satya -
Report not hitting pre seed cache
I have 40 reports which i am caching using i bots in a dashboard.The cache works good for the first 10 min which ever user logs in.After this times it is not hitting the cache and new cache entries are found in the cache files.I tried modifying the Instance config file adding the following parameters.Still i find the same issue.
Is there any other parameters that i need to set which is causing this problem?
<ServerInstance>
<Cache>
<Query>
<MaxEntries>100</MaxEntries>
<MaxExpireMinutes>60</MaxExpireMinutes>
<MinExpireMinutes>10</MinExpireMinutes>
<MinUserExpireMinutes>10</MinUserExpireMinutes>
</Query>
</Cache>
<ServerInstance>Only thing I can think of is temp files running out of space? ( 'nQS_xxxx_x_xxxxxx.TMP' files which are stored by default in the \Temp folder stores the presentation server cache informatoin. )
Thanks,
-Amith. -
Hi,
I have a Oracle Apps - 6i Report works fine with one instance and the same report does not fetch any records in the other instance..
Even its not printing the messages in the before report trigger, when i query from the backed it fetches records. This is really strange..
Please any one help me on this.
Thanks,
GenooIt doesn't look like this has anything to do with Reports itself. You'd better ask this in the Oracle Apps forum.
-
Actual price of revenue in reporting not hitting
Hello
I have done the milestone billing and also created the billing plan in WBS element for the created milestone under the same WBS element as "down payments" and have done the billing for these amount by assigning in sales order by confirming the activity.but in the cost element report for revenue is still showing as planned revenue even after the billing is done and document is generated. even the delivery is also done. Is there any solutions for this
Kindly so the needful
Thanks and Regards
Praveen B Myou need to check two things:
Billing type used in sales order whether it is a proforma invoice
If billing genarates a accounting document, whether Values category 5A has been assigned -
SSMA for Oracle 6.0 Cannot connect to Oracle DB reporting "table or view does not exist"
SSMA For Oracle v6.0.0
MS SQL Server Enterprise 64bits v11.0.3000.0
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
Symptom:
when connecting Oracle, it reports error "Common Requirement: User does not have required permissions". Then it reports error: "Error occurred while collecting data."
The following is log:
[Generic: Mandatory] [1500/1] [2015-03-03 04:19:29]: SQL Server Migration Assistant for Oracle v6.0.0
[Generic: Mandatory] [1500/1] [2015-03-03 04:19:29]: Starting assembly: SSMAforOracle, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Created: 7/22/2014 4:42:22 PM
Last Modified: 7/22/2014 4:42:22 PM
OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
OS architecture: x64
Processor architecture: AMD64
Current culture: en-US
UI culture: en-US
[Collector: Mandatory] [1500/4] [2015-03-03 04:20:04]: Oracle connection provider: OracleClient.
[Collector: Mandatory] [1500/4] [2015-03-03 04:20:04]: Oracle connection mode: Standard.
[Collector: Mandatory] [1500/4] [2015-03-03 04:20:06]: Oracle server version: '11.2.0.3.0'.
[Gui: Error] [1500/4] [2015-03-03 04:20:12]: LowLevelAdapter.ReadSource : Read Source error: Microsoft.SSMA.Framework.Generic.Collectors.CollectorException: Error occurred while collecting data. ---> System.Data.OracleClient.OracleException: ORA-00942: table
or view does not exist
at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.ExecuteScalarInternal(Boolean needCLStype, Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
at System.Data.OracleClient.OracleCommand.ExecuteScalar()
at Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbCommand.ExecuteScalar()
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.ExecuteScalarToInt(IDbConnection connection, String text)
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.GetCountForExcludedSchemas(IDbConnection connection, IEnumerable`1 excludedSchemas, Int64 version)
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CountObjects(IDbConnection connection, Int64 serverVersion, OracleCollectionFilter filter, Set`1 excludedSchemas)
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CollectDataIntoMetabase(XMetabase xMetabase, IDbConnection connection, Int64 serverVersion, OracleCollectionFilter filter, IUIProgressBarProvider progressBarProvider, IUIStopOperationProvider
stopOperationProvider, ICollectionContext context)
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CreateMetabaseAndCollectData(IDbConnection connection, String xmlConnectionParameters, XNode xFilter, IUIProgressBarProvider progressBarProvider, IUIStopOperationProvider stopOperationProvider,
ICollectionContext context)
--- End of inner exception stack trace ---
at Microsoft.SSMA.Framework.Generic.Workspaces.Default.MetabaseWorkspaceItem.Connect(String connectionParameters, SecureString password)
at Microsoft.SSMA.GUI.Product.OracleToMsSql.LowLevel.AppConnectToSourceOracle.ConnectToSourceStart(Object guiContext)
[Gui: Error] [1500/4] [2015-03-03 04:20:12]: Exception: Error occurred while collecting data.
site: Void Connect(System.String, System.Security.SecureString)
source: Microsoft.SSMA.Framework.Generic.SSMAEnvironment
at Microsoft.SSMA.Framework.Generic.Workspaces.Default.MetabaseWorkspaceItem.Connect(String connectionParameters, SecureString password)
at Microsoft.SSMA.GUI.Product.OracleToMsSql.LowLevel.AppConnectToSourceOracle.ConnectToSourceStart(Object guiContext)
[Gui: Error] [1500/4] [2015-03-03 04:20:12]: Inner Exception #1: ORA-00942: table or view does not exist
site: Void CheckError(System.Data.OracleClient.OciErrorHandle, Int32)
source: System.Data.OracleClient
error code: -2146232008
at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.ExecuteScalarInternal(Boolean needCLStype, Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
at System.Data.OracleClient.OracleCommand.ExecuteScalar()
at Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbCommand.ExecuteScalar()
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.ExecuteScalarToInt(IDbConnection connection, String text)
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.GetCountForExcludedSchemas(IDbConnection connection, IEnumerable`1 excludedSchemas, Int64 version)
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CountObjects(IDbConnection connection, Int64 serverVersion, OracleCollectionFilter filter, Set`1 excludedSchemas)
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CollectDataIntoMetabase(XMetabase xMetabase, IDbConnection connection, Int64 serverVersion, OracleCollectionFilter filter, IUIProgressBarProvider progressBarProvider, IUIStopOperationProvider
stopOperationProvider, ICollectionContext context)
at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CreateMetabaseAndCollectData(IDbConnection connection, String xmlConnectionParameters, XNode xFilter, IUIProgressBarProvider progressBarProvider, IUIStopOperationProvider stopOperationProvider,
ICollectionContext context)Hi Airings,
'ORA-00942: table or view does not exist'
According to the error message, it seems that the migrating table or view does not exist in the database, or SSMA does not have access to it. To troubleshoot the issue, please check the following things.
1. Verify that if the spelling of the table or view name is correct.
2. If the table or view exists but is in a different schema from the current schema where the SQL is executing (in other word, the table doesn’t own by you, but owned by other user), the ORA-00942 error will return too. Resolve this by
explicitly reference the table or view by specifying the schema name (schema_name.table_name).
3. SSMA queries some additional catalog tables that you may not have permission to, please make sure that you grant the account permission to
read sys.mlog$. For more details, please review this similar thread:
Bug in SSMA For Oracle 6.0 for non-dba Oracle user.
Reference:
ORA-00942 Table or View Does Not Exist Oracle Error
Thanks,
Lydia Zhang
Lydia Zhang
TechNet Community Support -
Table Partitioning in Oracle 9i
Hi all,
I have a question on partitioning in Oracle 9i.
I have a parent table with primary key A1 and attribute A2. A2 is not a primary key but I would to create partition for the table based on this attribute. I have a child table with attribute B1 being a foreign key to A1.
I wish to perform a data purging on the parent and child table. I'll purge the parent table based on A2, but for the child table, it will be inefficient if I delete all records in child table where parent.A1 = child.B1. Should I add a new attribute A2 to the child table, partition the child table based on this attribute or is there a better way to do it?
Thanks in advance for all replies.
Cheers,
BernardBernard
Right 100K in the parent...but how many in the child ?
I guess it comes back to what I said earlier...you can either take the hit on the cascaded delete to get out the records on the child table or you can denormalise the column down onto the child table in order to partition by it.
I'm building a Data Warehouse currently and we're using the denormalise approach on a couple of tables in order to allow them to be equipartitioned and enable easier partition management and DML operations as you've indicated....but our tables have 100's of millions of rows in them so we really need to do that for manageability.
100K records in the parent - provided the ratio to the child is not such that on average each deleted parent has 100's of children is probably not too onerous, especially for a monthly batch process - the question there would be how much time do you have to do this at the end of the month ? I'd probably suggest you set up a quick test and benchmark it with say 10K records as a representative sample (can do all 100K if you have time/space) - then assess that load/time against your month end window....if its reasonably quick then no need to compromise your design.
You should also consider whether the 100K is going to remain consistent over time or is it going to grow rapidly in which that would sway you towards adding the denormalisation for partitioning approach at the outset.
HTH
Jeff -
Automatic table partitioning in Oracle 11g
Hi All,
I need to implement automatic table partitioning in Oracle 11g version, but partitioning interval should be on daily basis(For every day).
I was able to perform this for Monthly and Yearly but not on daily basis.
create table part
(a date)PARTITION BY RANGE (a)
INTERVAL (NUMTOYMINTERVAL(1,'*MONTH*'))
(partition p1 values less than (TO_DATE('01-NOV-2007','DD-MON-YYYY'))
Table created
create table part
(a date)PARTITION BY RANGE (a)
INTERVAL (NUMTOYMINTERVAL(1,'*YEAR*'))
(partition p1 values less than (TO_DATE('01-NOV-2007','DD-MON-YYYY'))
Table createdBut if i use DD or DAY instead of YEAR or MONTH it fails......Please suggest me how to perform this on daily basis.
SQL>
1 create table part
2 (a date)PARTITION BY RANGE (a)
3 INTERVAL (NUMTOYMINTERVAL(1,'*DAY*'))
4 (partition p1 values less than (TO_DATE('01-NOV-2007','DD-MON-YYYY'))
5* )
SQL> /
INTERVAL (NUMTOYMINTERVAL(1,'DAY'))
ERROR at line 3:
ORA-14752: Interval expression is not a constant of the correct type
SQL> create table part
(a date)PARTITION BY RANGE (a)
INTERVAL (NUMTOYMINTERVAL(1,'*DD*'))
(partition p1 values less than (TO_DATE('01-NOV-2007','DD-MON-YYYY'))
); 2 3 4 5
INTERVAL (NUMTOYMINTERVAL(1,'DD'))
ERROR at line 3:
ORA-14752: Interval expression is not a constant of the correct typePlease suggest me to resolve this ORA-14752 error for using DAY or DD or HH24
-YasserYes, for differenct partitions for different months.
interval (numtoyminterval(1,'MONTH'))
store in (TS1,TS2,TS3)
This code will store data in partitions in tablespaces TS1, TS2, and TS3 in a round robin manner.
for Day wise day yes you can store
INTERVAL (NUMTODSINTERVAL(1,'day')) or
INTERVAL (NUMTODSINTERVAL(2,'day')) or
INTERVAL (NUMTODSINTERVAL(3,'day')) or
INTERVAL (NUMTODSINTERVAL(4,'day')) or
INTERVAL (NUMTODSINTERVAL(5,'day')) or
INTERVAL (NUMTODSINTERVAL(n,'day')) -
Table Partition on daily basis in oracle 10g
I Want to create partition based on sysdate on daily basis.
There will be 8 partitions. Every day data's will be get loaded into this table and everyday 8th day old data ill be get truncated.
CREATE TABLE CUST_WALLET_BALANCE_7DAYS
( ID VARCHAR2(250),
A_DATE VARCHAR2(11),
LAST_PROCESS_DATE DATE,
DD_OF_PROCESS_DATE NUMBER(2),
CONSTRAINT CUST_WALLET_BALANCE_7DAYS_PK PRIMARY KEY (ID,A_DATE))
PARTITION BY RANGE (DD_OF_PROCESS_DATE)
( PARTITION DAY1 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE)),'DD')),
PARTITION DAY2 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-1)),'DD')),
PARTITION DAY3 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-2)),'DD')),
PARTITION DAY4 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-3)),'DD')),
PARTITION DAY5 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-4)),'DD')),
PARTITION DAY6 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-5)),'DD')),
PARTITION DAY7 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-6)),'DD')),
PARTITION DAY8 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-7)),'DD'))
THIS WONT WORKS OUT. SO PLEASE SUGGEST ME WITH BETTER SOLUTION.Original thread here: Table Partition on daily basis in oracle 10g
Please do not start duplicate questions for the same topic.
Locking this thread -
Can we add a new column in report which is not in table.
Hi All,
Can we create a new column in report which is not in table.
I have two columns in my table completion_date, manufacture_date. If the difference between the completion_date and manufacture_date is 0, -1, 1 then the new column of the report will say on time against each record or else will display late. Any suggestion how to proceed on this
Regards
Edited by: User_Apex on May 16, 2011 5:54 AMStandard report then, NOT an interactive report (which if you were using, you could build a computation and report on that)..
Then the adding a column in the query would be your best best...
Thank you,
Tony Miller
Webster, TX
There are two kinds of pedestrians -- the quick and the dead.
If this question is answered, please mark the thread as closed and assign points where earned.. -
I want to install OS X Mavericks on my MacBook Pro which is not with guid partition table
i want to install OS X Mavericks on my MacBook Pro which had both mountain lion & windows 8.1, its not in GUID partition table format, so i couldnt install mavericks, so is there any way to change into GUID partition table format & install Mavericks without losing Windows from my hard disk ?
Open the App Store and upgrade iPhoto to the Mavericks version.
iWork and iLife for Mac come free with every new Mac purchase. Existing users running Mavericks can update their apps for free from the Mac App Store℠. iWork and iLife for iOS are available for free from the App Store℠ for any new device running iOS 7, and are also available as free updates for existing users. GarageBand for Mac and iOS are free for all OS X Mavericks and iOS 7 users. Additional GarageBand instruments and sounds are available for a one-time in-app purchase of $4.99 for each platform.
The iWork apps are free with a new iOS device since 1 SEP 2013. They are free with a new Mac since 1 OCT 2013. They are also free with the upgrade to OS X Mavericks 10.9 if you had the previous version installed when you upgraded. -
Split Oracle 11g Table Partition and Insert new rows
Hi,
I have a doubt that i would like to be clarified. I need to split a partition of a table with more than 800 Million records, but at the same time (during the split operation) i need to insert new records (not in the partition that is being splited). Is there any problem/risk doing this? Is the insert ETL process going to fail ?
Thanks in advance
Greetings.
Nuno
Edited by: user13512889 on 1/Set/2011 3:25Hi Enrique,
Thanks for posting in MSDN.
Based on the description, you want to modify the formula for the A1 and B1 cell when you insert a new rows.
Yes, we can use Worksheet.Change to dermin the change of data on the worksheet then we can modify the formula as we wanted. Here is a sample for your reference:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.Range("A1").Formula = "=MAX($A2:$A" & Me.UsedRange.Rows.Count & ")"
Me.Range("B1").Formula = "=MIN($B2:$B" & Me.UsedRange.Rows.Count & ")"
End Sub
You can more detail about Excel VBA developing from link below:
Getting Started with VBA in Excel 2010
Welcome to the Excel 2013 developer reference
Regards & Fei
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Partition pruning not working for partitioned table joins
Hi,
We are joining 4 partitioned tables on partition column & other key columns. And we are filtering the driving table on partition key. But explain plan is showing that all tables except the driving table are not partition pruning and scanning all partitions.Is there any limitation that filter condition cannot be dynamic?
Thanks a lot in advance.
Here are the details...
SELECT a.pay_prd_id,
a.a_id,
a.a_evnt_no
FROM b,
c,
a,
d
WHERE ( a.pay_prd_id = b.pay_prd_id ---partition range all
AND a.a_evnt_no = b.b_evnt_no
AND a.a_id = b.b_id
AND ( a.pay_prd_id = c.pay_prd_id---partition range all
AND a.a_evnt_no = c.c_evnt_no
AND a.a_id = c.c_id
AND ( a.pay_prd_id = d.pay_prd_id---partition range all
AND a.a_evnt_no = d.d_evnt_no
AND a.a_id = d.d_id
AND (a.pay_prd_id = ---partition range single
CASE '201202'
WHEN 'YYYYMM'
THEN (SELECT min(pay_prd_id)
FROM pay_prd
WHERE pay_prd_stat_cd = 2)
ELSE TO_NUMBER ('201202', '999999')
END
DDLs.
create table pay_prd
pay_prd_id number(6),
pay_prd_stat_cd integer,
pay_prd_stat_desc varchar2(20),
a_last_upd_dt DATE
insert into pay_prd
select 201202,2,'OPEN',sysdate from dual
union all
select 201201,1,'CLOSE',sysdate from dual
union all
select 201112,1,'CLOSE',sysdate from dual
union all
select 201111,1,'CLOSE',sysdate from dual
union all
select 201110,1,'CLOSE',sysdate from dual
union all
select 201109,1,'CLOSE',sysdate from dual
CREATE TABLE A
(PAY_PRD_ID NUMBER(6) NOT NULL,
A_ID NUMBER(9) NOT NULL,
A_EVNT_NO NUMBER(3) NOT NULL,
A_DAYS NUMBER(3),
A_LAST_UPD_DT DATE
PARTITION BY RANGE (PAY_PRD_ID)
INTERVAL( 1)
PARTITION A_0001 VALUES LESS THAN (201504)
ENABLE ROW MOVEMENT;
ALTER TABLE A ADD CONSTRAINT A_PK PRIMARY KEY (PAY_PRD_ID,A_ID,A_EVNT_NO) USING INDEX LOCAL;
insert into a
select 201202,1111,1,65,sysdate from dual
union all
select 201202,1111,2,75,sysdate from dual
union all
select 201202,1111,3,85,sysdate from dual
union all
select 201202,1111,4,95,sysdate from dual
CREATE TABLE B
(PAY_PRD_ID NUMBER(6) NOT NULL,
B_ID NUMBER(9) NOT NULL,
B_EVNT_NO NUMBER(3) NOT NULL,
B_DAYS NUMBER(3),
B_LAST_UPD_DT DATE
PARTITION BY RANGE (PAY_PRD_ID)
INTERVAL( 1)
PARTITION B_0001 VALUES LESS THAN (201504)
ENABLE ROW MOVEMENT;
ALTER TABLE B ADD CONSTRAINT B_PK PRIMARY KEY (PAY_PRD_ID,B_ID,B_EVNT_NO) USING INDEX LOCAL;
insert into b
select 201202,1111,1,15,sysdate from dual
union all
select 201202,1111,2,25,sysdate from dual
union all
select 201202,1111,3,35,sysdate from dual
union all
select 201202,1111,4,45,sysdate from dual
CREATE TABLE C
(PAY_PRD_ID NUMBER(6) NOT NULL,
C_ID NUMBER(9) NOT NULL,
C_EVNT_NO NUMBER(3) NOT NULL,
C_DAYS NUMBER(3),
C_LAST_UPD_DT DATE
PARTITION BY RANGE (PAY_PRD_ID)
INTERVAL( 1)
PARTITION C_0001 VALUES LESS THAN (201504)
ENABLE ROW MOVEMENT;
ALTER TABLE C ADD CONSTRAINT C_PK PRIMARY KEY (PAY_PRD_ID,C_ID,C_EVNT_NO) USING INDEX LOCAL;
insert into c
select 201202,1111,1,33,sysdate from dual
union all
select 201202,1111,2,44,sysdate from dual
union all
select 201202,1111,3,55,sysdate from dual
union all
select 201202,1111,4,66,sysdate from dual
CREATE TABLE D
(PAY_PRD_ID NUMBER(6) NOT NULL,
D_ID NUMBER(9) NOT NULL,
D_EVNT_NO NUMBER(3) NOT NULL,
D_DAYS NUMBER(3),
D_LAST_UPD_DT DATE
PARTITION BY RANGE (PAY_PRD_ID)
INTERVAL( 1)
PARTITION D_0001 VALUES LESS THAN (201504)
ENABLE ROW MOVEMENT;
ALTER TABLE D ADD CONSTRAINT D_PK PRIMARY KEY (PAY_PRD_ID,D_ID,D_EVNT_NO) USING INDEX LOCAL;
insert into c
select 201202,1111,1,33,sysdate from dual
union all
select 201202,1111,2,44,sysdate from dual
union all
select 201202,1111,3,55,sysdate from dual
union all
select 201202,1111,4,66,sysdate from dualBelow query generated from Business Objects and submitted to Database (the case statement is generated by BO). Cant we use Case/Subquery/Decode etc for the partitioned column? We are assuming that the case causing the issue to not to dynamic partition elimination on the other joined partitioned tables (TAB_B_RPT, TAB_C_RPT).
SELECT TAB_D_RPT.acvy_amt,
TAB_A_RPT.itnt_typ_desc,
TAB_A_RPT.ls_typ_desc,
TAB_A_RPT.evnt_no,
TAB_C_RPT.pay_prd_id,
TAB_B_RPT.id,
TAB_A_RPT.to_mdfy,
TAB_A_RPT.stat_desc
FROM TAB_D_RPT,
TAB_C_RPT fee_rpt,
TAB_C_RPT,
TAB_A_RPT,
TAB_B_RPT
WHERE (TAB_B_RPT.id = TAB_A_RPT.id)
AND ( TAB_A_RPT.pay_prd_id = TAB_D_RPT.pay_prd_id -- expecting Partition Range Single, but doing Partition Range ALL
AND TAB_A_RPT.evnt_no = TAB_D_RPT.evnt_no
AND TAB_A_RPT.id = TAB_D_RPT.id
AND ( TAB_A_RPT.pay_prd_id = TAB_C_RPT.pay_prd_id -- expecting Partition Range Single, but doing Partition Range ALL
AND TAB_A_RPT.evnt_no = TAB_C_RPT.evnt_no
AND TAB_A_RPT.id = TAB_C_RPT.id
AND ( TAB_A_RPT.pay_prd_id = fee_rpt.pay_prd_id -- expecting Partition Range Single
AND TAB_A_RPT.evnt_no = fee_rpt.evnt_no
AND TAB_A_RPT.id = fee_rpt.id
AND (TAB_A_RPT.rwnd_ind = 'N')
AND (TAB_A_RPT.pay_prd_id =
CASE '201202'
WHEN 'YYYYMM'
THEN (SELECT DISTINCT pay_prd.pay_prd_id
FROM pay_prd
WHERE pay_prd.stat_cd = 2)
ELSE TO_NUMBER ('201202', '999999')
END
And its explain plan is...
Plan
SELECT STATEMENT ALL_ROWS Cost: 79 K Bytes: 641 M Cardinality: 3 M
18 HASH JOIN Cost: 79 K Bytes: 641 M Cardinality: 3 M
3 PART JOIN FILTER CREATE SYS.:BF0000 Cost: 7 K Bytes: 72 M Cardinality: 3 M
2 PARTITION RANGE ALL Cost: 7 K Bytes: 72 M Cardinality: 3 M Partition #: 3 Partitions accessed #1 - #1048575
1 TABLE ACCESS FULL TABLE TAB_D_RPT Cost: 7 K Bytes: 72 M Cardinality: 3 M Partition #: 3 Partitions accessed #1 - #1048575
17 HASH JOIN Cost: 57 K Bytes: 182 M Cardinality: 874 K
14 PART JOIN FILTER CREATE SYS.:BF0001 Cost: 38 K Bytes: 87 M Cardinality: 914 K
13 HASH JOIN Cost: 38 K Bytes: 87 M Cardinality: 914 K
6 PART JOIN FILTER CREATE SYS.:BF0002 Cost: 8 K Bytes: 17 M Cardinality: 939 K
5 PARTITION RANGE ALL Cost: 8 K Bytes: 17 M Cardinality: 939 K Partition #: 9 Partitions accessed #1 - #1048575
4 TABLE ACCESS FULL TABLE TAB_C_RPT Cost: 8 K Bytes: 17 M Cardinality: 939 K Partition #: 9 Partitions accessed #1 - #1048575
12 HASH JOIN Cost: 24 K Bytes: 74 M Cardinality: 957 K
7 INDEX FAST FULL SCAN INDEX (UNIQUE) TAB_B_RPT_PK Cost: 675 Bytes: 10 M Cardinality: 941 K
11 PARTITION RANGE SINGLE Cost: 18 K Bytes: 65 M Cardinality: 970 K Partition #: 13 Partitions accessed #KEY(AP)
10 TABLE ACCESS FULL TABLE TAB_A_RPT Cost: 18 K Bytes: 65 M Cardinality: 970 K Partition #: 13 Partitions accessed #KEY(AP)
9 HASH UNIQUE Cost: 4 Bytes: 14 Cardinality: 2
8 TABLE ACCESS FULL TABLE PAY_PRD Cost: 3 Bytes: 14 Cardinality: 2
16 PARTITION RANGE JOIN-FILTER Cost: 8 K Bytes: 106 M Cardinality: 939 K Partition #: 17 Partitions accessed #:BF0001
15 TABLE ACCESS FULL TABLE TAB_C_RPT Cost: 8 K Bytes: 106 M Cardinality: 939 K Partition #: 17 Partitions accessed #:BF0001
Thanks Again. -
Introduction of Oracle Table Partitions into PeopleSoft HRMS environment
I would like to pose a general question and see if anyone has found any published advice / suggestions from PeopleSoft or Oracle on this. I believe that Oracle table partitioning isn't supported through the PeopleTools application designer functionality. Most likely this is done for platform independence. However, we were thinking about implementing table partitioning for performance and the ability to refresh test instances with subsets worth of data instead of the entire database.
I know that this would be a substantial effort, but was wondering if anyone had any documentation on this type of implemention. I've read some articles from David Kurtz on the subject, and it sounds like these were all custom jobs for each individual client. Was looking for something more generic on this practice from PeopleSoft or Oracle...
Regards,
JayThanks for the article Nicolas. I will add that to my collection, good reference piece.
I think you gasped the gist of the query, which was I know that putting partitioning into a PeopleSoft application is going to be highly specific to the client and application that you are running. But what I looking for was something like a baseline guide for implementing partitioning in a PeopleSoft application as a whole.
In other words, something like notifiaction that the application designer panels would be affected since they don't have the ability to manage partitions. Therefore, any changes to tables that would utilize partitioning would need to be maintained at the database level and no longer utilize the DDL generated from PeopleTools Application Designer. Other consideration would be, like maybe a list of tables that would be candidates for partitioning based on the application, in my case HRMS. And maybe, suggestions on what column should be used for partitioning, etc...All of which are touched on in your identified article about putting partitioning in at the database level for a generic application.
Thanks for your help, it is much appreciated...
Jay -
Oracle Clinical Reports - Ouput not generated
Hi,
When i try to run reports within Oracle Clinical it runs as "Success" as per Batch Jobs window.
I have run it using destype=FILE and desname=<reports_output_path>
The "View Log" also opens the log, but when trying to "View Output" it gives the following message in the explorer window:
File <reports_output_path>\o489.pdf does not exist
When i view the Report details in Report Queue Manager it shows the following error:
Terminated with Error :
Caught exception: exception oracle.reports.RWException { oracle.reports.RWError[] errorChain={struct oracle.reports.RWError { int errorCode=56093, java.lang.String errorString="Cached output for job 23 is no longer valid", java.lang.String moduleName="REP" }} }
The Report is being generated sometimes as a PDF file in the "Cache" directory of reports server, but the output directory doesnt contain any pdf file.
Any ideas folks?
Best regards,Hi,
Thank you for the response.
1. This happens with all output types...I guess PDF Plugin is installed as it is generating a PDF in the Reports Cache Directory that is D:\oracle\9iDS\reports\cache
2. RXCPROD has been NOT been given Local Administrator rights. But it is a member of "Power users" group.
Does running a report in any way depend on the RXCPROD account...i thought it was just for running PSUB?
Any further ideas?
Best regards
Maybe you are looking for
-
Tried everything, but "Secured link to iTunes Store failed"
Hi all, I so hope you can help! I can't connect to the iTunes Store, which also means I can't do any Home Sharing (this being my ultimate goal in solving my problem). I've got Windows 7 home edition, 64-bit, and the newest iTunes. Running diagnostics
-
Using GIF images in iMovie11 ??
Admittedly this is now my first attempt at using the iMovie8/9/11 editing structure since I was perfectly satisfied with iMovie06 HD and that timeline approach. In the old program I had GIF formatted images (Maps) that I had available in my "Photos"
-
Hi I have a normal user policy apply at the OU level to restrict some desktop setting like accessing control panel, changing wallpaper, and so for, and the OU container has 10 users which get the normal user policy applying onto their desktop everyti
-
Hello again, Just another question related to the default RMAN control file repository OR a separated RMAN recovery catalog. I have multiple databases running on the same hosts or on different hosts. Do you recommend setting one centralized RMAN reco
-
RH8 Hyperlink GUI not working on external links
Weird one, only on one of our machines! Clicking OK in the Hyperlink window does nothing if an external project file is selected (fine for an internal file). Entering the link manually is fine (works in Preview and output). However, the problem remai