Problem in Partitioning a Table

Hi,
We have a table which we want to partition by the modulo of the week of the year (obtained from CREATE_DATE column) divided by 4. So this table should have four partitions 0, 1, 2 and 3.
For example a record inserted in the table on 25th January 2007 i.e. the fourth week of the year should reside in the partition 0.
We tried creating the table as follows: -
create table test
id number not null,
create_date date not null,
web_order_number varchar2(32)
partition by list (mod(to_number(to_char(create_date,'WW')),4))
partition olss_session_wrk_0 values (0),
partition olss_session_wrk_1 values (1),
partition olss_session_wrk_2 values (2),
partition olss_session_wrk_3 values (3)
tablespace data_ts;
But we are getting the following error : -
ORA-00907: missing right parenthesis
Are we missing something here ? Is there any other way of achieving our requirement ? Any help would be greatly appreciated.
Regards,
Suman

You do realise that using that partitioning criteria will not make any existing SQLs faster?
When parsing a SQL that uses the CREATE_DATE as a predicate, the CBO will have no idea in which partition, rows for that CREATE_DATE reside.
So much for performance gains then.
Now usually the other primary reason for partitioning is data management. Like aging out all the rows for a specific period to archives or something along those lines.
Oh, but wait.. all the years worth of CREATE_DATE rows will reside in one of only 4 partitions. Thus no way to perform a partition exchange to move data in/out, no way to age data out of a sliding window by dropping or truncating a partition.
But hey, at least you have your data partitions into 4 neat and kewl partitions. Even if it is pretty much useless ito performance and data management.

Similar Messages

  • Problem while partitioning The Table

    create table Employee ( empno number(3), name varchar2(10), deptno number(4))
    partition by range(deptno)
    (partition p1 values less than(11),
    partition p2 values less than(21),
    partition p3 values less than(31));
    create table Employee (
    ERROR at line 1:
    ORA-00439: feature not enabled: Partitioning
    Please help me for solving this problem and send me the details I need to partition my table.
    Thanks in advance.
    w.regards
    R.Satish

    Looks like you don't have partition license or don't have a complete install of Oracle version 8.0.5. The best way to check is do a sqlplus user/passwd and look for a message that said "Production with the Partitioning and objects options" to appear before the SQL> prompt. Hope this helps....
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by rkumar:
    create table Employee ( empno number(3), name varchar2(10), deptno number(4))
    partition by range(deptno)
    (partition p1 values less than(11),
    partition p2 values less than(21),
    partition p3 values less than(31));
    create table Employee (
    ERROR at line 1:
    ORA-00439: feature not enabled: Partitioning
    Please help me for solving this problem and send me the details I need to partition my table.
    Thanks in advance.
    w.regards
    R.Satish <HR></BLOCKQUOTE>
    null

  • Problem regarding partitioning of tables

    hi all....good afternoon
    I have a table of huge number of records and thats why I want to do partitioning of that table.
    The column upon which I have to make the partition is of varchar2(7) type which contains the data in the format '2009APR', '2010JAN' etc etc..
    Now I have to fetch out the first 4 characters of the datas (i.e only the year) and then I can partition the table based on the years.
    How can I do that....plss help.
    create table test123
    (name varchar2(10),
    age number,
    DOB varchar2(7),
    gender varchar2(1)
    Edited by: user12780416 on Dec 24, 2010 2:48 AM

    Just partition by DOB column:
    SQL> create table test123(
      2                       name varchar2(10),
      3                       age number,
      4                       DOB varchar2(7),
      5                       gender varchar2(1)
      6                      )
      7    partition by range(DOB)
      8      (
      9       partition DOB_past values less than('2009'),
    10       partition DOB_2009 values less than('2010'),
    11       partition DOB_2010 values less than('2011'),
    12       partition DOB_maxvalue values less than(maxvalue)
    13      )
    14  /
    Table created.
    SQL> insert into test123 values('X',0,'2010APR','M')
      2  /
    1 row created.
    SQL> select count(*) from test123 partition(DOB_2010)
      2  /
      COUNT(*)
             1
    SQL> insert into test123 values('Y',0,'2009JAN','M')
      2  /
    1 row created.
    SQL> select count(*) from test123 partition(DOB_2009)
      2  /
      COUNT(*)
             1
    SQL> SY.

  • PL/SQL- Problem in creating a partitioned fact table using select as syntax

    Hi All,
    I am trying to create a clone(mdccma.fact_pax_bkng_t) of existing fact table (mdccma.fact_pax_bkng) using dynamic pl/sql. However, pl/sql anonymous block errors out with following error:
    SQL> Connected.
    SQL> SQL> DECLARE
    ERROR at line 1:
    ORA-00911: invalid character
    ORA-06512: at "SYS.DBMS_SYS_SQL", line 1608
    ORA-06512: at "SYS.DBMS_SQL", line 33
    ORA-06512: at line 50
    Here is pl/sql block:
    -- CREATING FPB_T
    DECLARE
    v_owner VARCHAR2(32) := 'MDCCMA';
    v_table_original VARCHAR2(32) := 'FACT_PAX_BKNG';
    v_table VARCHAR2(32) := 'FACT_PAX_BKNG_T';
    v_tblspc VARCHAR2(32) := v_owner||'_DATA';
    CURSOR c_parts IS SELECT TABLESPACE_NAME, PARTITION_NAME,HIGH_VALUE, ROW_NUMBER() OVER (ORDER BY PARTITION_NAME) AS ROWNUMBER
    FROM USER_TAB_PARTITIONS
    WHERE TABLE_NAME = v_table_original
    ORDER BY PARTITION_NAME;
    v_cmd CLOB := EMPTY_CLOB();
    v_cmd3 varchar2(300) := 'CREATE TABLE ' ||v_owner||'.'||v_table||' TABLESPACE '||v_tblspc
    ||' NOLOGGING PARTITION BY RANGE'||'(' ||'SNAPSHOT_DTM '||')' ||'(';
    v_part VARCHAR2(32);
    v_tblspc_name VARCHAR2(32);
    v_row number;
    v_value LONG;
    v_tmp varchar2(20000);
    v_cur INTEGER;
    v_ret NUMBER;
    v_sql DBMS_SQL.VARCHAR2S;
    v_upperbound NUMBER;
    BEGIN
    v_cmd := v_cmd3;
    OPEN c_parts;
    FETCH c_parts INTO v_tblspc_name, v_part,v_value, v_row;
    WHILE c_parts%FOUND
    LOOP
    IF (v_row = 1) THEN
    v_tmp := ' PARTITION '||v_part||' VALUES LESS THAN ' ||'('|| v_value||')'||' NOLOGGING TABLESPACE '||v_tblspc_name;
    ELSE
    v_tmp := ', PARTITION '||v_part||' VALUES LESS THAN ' ||'('|| v_value||')'||' NOLOGGING TABLESPACE '||v_tblspc_name;
    END IF;
    v_cmd := v_cmd || v_tmp;
    -- DBMS_OUTPUT.PUT_LINE(v_cmd);
    FETCH c_parts INTO v_tblspc_name, v_part,v_value, v_row;
    END LOOP;
    -- DBMS_OUTPUT.PUT_LINE('Length:'||DBMS_LOB.GETLENGTH(v_cmd));
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2'||';';
    v_upperbound := CEIL(DBMS_LOB.GETLENGTH(v_cmd)/256);
    FOR i IN 1..v_upperbound
    LOOP
    v_sql(i) := DBMS_LOB.SUBSTR(v_cmd
    ,256 -- amount
    ,((i-1)*256)+1 -- offset
    END LOOP;
    v_cur := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_cur, v_sql, 1, v_upperbound, FALSE, DBMS_SQL.NATIVE);
    v_ret := DBMS_SQL.EXECUTE(v_cur);
    CLOSE c_parts;
    DBMS_OUTPUT.PUT_LINE(v_cmd);
    -- EXECUTE IMMEDIATE v_cmd ;
    END;
    The above pl/sql creates a DDL for partitioned fact table(new) based on an existing fact table and get executes through CLOB.
    Please look into the issue and let me know any changes or modifications/suggestions that are required to fix the issue. Any help is appreciated.
    Thank You,
    Sudheer

    Think this is your problem:
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2'||';';Remove the SQL terminator ';' ... dynamic SQL doesn't require it, try this instead:
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2';Thanks
    Paul

  • Problems with partition tables

    Hi all,
    I've got some problems with partition tables. The script at the bottom run but when I wanna insert some values it returns me an error
    (ORA-06550: line 1, column 30: PL/SQL: ORA-06552: PL/SQL: Compilation unit analysis terminated
    ORA-06553: PLS-320: the declaration of the type of this expression is incomplete or malformed
    ORA-06550: line 1, column 7: PL/SQL: SQL Statement ignored)
    and I can't understand why!
    There's something incorrect in the script or not?
    Please help me
    Thanks in advance
    Steve
    CREATE TABLE TW_E_CUSTOMER_UNIFIED
    ID_CUSTOMER_UNIFIED VARCHAR2 (27) NOT NULL ,
    START_VALIDITY_DATE DATE NOT NULL ,
    END_VALIDITY_DATE DATE ,
    CUSTOMER_STATUS VARCHAR2 (255)
    PARTITION BY RANGE (START_VALIDITY_DATE)
    SUBPARTITION BY LIST (END_VALIDITY_DATE)
    PARTITION M200909 VALUES LESS THAN (TO_DATE('20091001','YYYYMMDD'))
    (SUBPARTITION M200909_N VALUES (NULL), SUBPARTITION M200909_NN VALUES (DEFAULT)),
    PARTITION M200910 VALUES LESS THAN (TO_DATE('20091101','YYYYMMDD'))
    (SUBPARTITION M200910_N VALUES (NULL), SUBPARTITION M200910_NN VALUES (DEFAULT)),
    PARTITION M200911 VALUES LESS THAN (TO_DATE('20091201','YYYYMMDD'))
    (SUBPARTITION M200911_N VALUES (NULL), SUBPARTITION M200911_NN VALUES (DEFAULT)),
    PARTITION M200912 VALUES LESS THAN (TO_DATE('20100101','YYYYMMDD'))
    (SUBPARTITION M200912_N VALUES (NULL), SUBPARTITION M200912_NN VALUES (DEFAULT)),
    PARTITION M201001 VALUES LESS THAN (TO_DATE('20100201','YYYYMMDD'))
    (SUBPARTITION M201001_N VALUES (NULL), SUBPARTITION M201001_NN VALUES (DEFAULT)),
    PARTITION M201002 VALUES LESS THAN (TO_DATE('20100301','YYYYMMDD'))
    (SUBPARTITION M201002_N VALUES (NULL), SUBPARTITION M201002_NN VALUES (DEFAULT)),
    PARTITION M210001 VALUES LESS THAN (MAXVALUE))
    (SUBPARTITION M210001_N VALUES (NULL), SUBPARTITION M210001_NN VALUES (DEFAULT))
    ;

    Hi Hoek,
    the DB version is 10.2 (italian version, then SET is correct).
    ...there's something strange: now I can INSERT rows but I can't update them!
    I'm using this command string:
    UPDATE TW_E_CUSTOMER_UNIFIED SET END_VALIDITY_DATE = TO_DATE('09-SET-09', 'DD-MON-RR') WHERE
    id_customer_unified = '123' and start_validity_date = TO_DATE('09-SET-09', 'DD-MON-RR');
    And this is the error:
    Error SQL: ORA-14402: updating partition key column would cause a partition change
    14402. 00000 - "updating partition key column would cause a partition change"
    *Cause:    An UPDATE statement attempted to change the value of a partition
    key column causing migration of the row to another partition
    *Action:   Do not attempt to update a partition key column or make sure that
    the new partition key is within the range containing the old
    partition key.
    I think that is impossible to use a PARTITION/SUBPARTITION like that: in fact the update of "END_VALIDITY_DATE" cause a partition change.
    Do u agree or it's possible an update on a field that implies a partition change?
    Regards Steve

  • Problem regarding partitioning tables

    hi all....good afternoon
    I have a table of huge number of records and thats why I want to do partitioning of that table.
    The column upon which I have to make the partition is of varchar2(7) type which contains the data in the format '2009APR', '2010JAN' etc etc..
    Now I have to fetch out the first 4 characters of the datas (i.e only the year) and then I can partition the table based on the years.
    How can I do that....plss help.
    The database is in 10g..
    create table test123
    (name varchar2(10),
    age number,
    DOB varchar2(7),
    gender varchar2(1)
    );

    user12780416 wrote:
    hi all....good afternoon
    I have a table of huge number of records and thats why I want to do partitioning of that table.
    The column upon which I have to make the partition is of varchar2(7) type which contains the data in the format '2009APR', '2010JAN' etc etc..
    Now I have to fetch out the first 4 characters of the datas (i.e only the year) and then I can partition the table based on the years.
    How can I do that....plss help.
    The database is in 10g..
    create table test123
    (name varchar2(10),
    age number,
    DOB varchar2(7),
    gender varchar2(1)
    );I suggest you instead of this varchar column with date column like dat.And use this column as partition key.For example.
    create table test123
    (name varchar2(10),
    age number,
    DOB varchar2(7),
    gender varchar2(1),
    dat date
    partition by  range (dat)
      partition part1 values LESS THAN (TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
      partition part2 values LESS THAN (TO_DATE(' 2009-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
      partition part3 values LESS THAN (TO_DATE(' 2009-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
      partition part4 values LESS THAN (TO_DATE(' 2009-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
      partition part5 values LESS THAN (TO_DATE(' 2010-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      )

  • Sql server partition parent table and reference not partition child table

     
    Hi,
    I have two tables in SQL Server 2008 R2, Parent and Child Table.  
    Parent has date time, and it is partitioned monthly,  there is a Child table which just refer the Parent table using Foreign key relation.   
    is there any problem the non-partitioned child table referring to a partitioned parent table?
    Thanks,
    Areef

    The tables will need to be offline for the operation. "Offline" here, means that you wrap the entire operation in a transaction. Ideally, this transaction would:
    1) Drop the foreign key.
    2) Use ALTER TABLE SWITCH to drop the old data.
    3) Use ALTER PARTITION FUNCTION to drop the old empty partition.
    4) Use ALTER PARTITION FUNCTION to add a new empty partition.
    5) Reapply the foreign keys WITH CHECK.
    All but the last operation are metadata-only operation (provided that you do them right). To perform the last operation, SQL Server must scan the child tbale and verify that all keys are present in the parent table. This can take some time for larger tables.
    During the transaction, SQL Server holds Sch-M locks on the table, which means that are entirely inaccessible, even for queries running with NOLOCK.
    You avoid this the scan by applying the fkey constraint WITH NOCHECK, but this can have impact on query plans, as SQL Server will not consider the constraint as trusted.
    An alternative which should not be entirely dismissed is to use partitioned
    views instead. With partitioned views, the foreign keys are not an issue, because each partition is a pair of tables, with its own local fkey.
    As for the second question: it appears to be completely pointless to partition the parent, but not the child table. Or does the child table only have rows for a smaller set of the rows in the parent?
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Problem defining partition for storing value 0 with new data

    Hi forumers,
    I've a problem with partitioning and need some advices.
    I've a table that will be partitioned by column Process_N which have values from 0 to 50000:
    Process_N between 1 and 29999 represents old data;
    Process_N >= 30000 represents new data;
    Process_N = 0 means the row is not processed yet and so these value represents new data too.
    Can I have a partition for old values (from 1 to 29999) and another partition to store new values (0 + values >= 30000) ? Hou can I define that ?
    Thank you in advance.
    Best Regards,
    Helena

    Helena,
    What's your oracle version? I think it will be better to create 3 partitions usign RANGE partitions (< 1, 2-29999, >=30000 <=50000). Is there a specific reason you want to include 0 and values greater than 29000 in one partition? What the significant difference between 0 and 30000 specially as both represent new data?
    CREATE TABLE my_part_table (
       process_n NUMBER NULL,
       my_data VARCHAR2 (1 BYTE) NULL,
       my_other_data VARCHAR2 (30 BYTE) NULL,
       data_state NUMBER NULL
    TABLESPACE test_data
    PARTITION BY RANGE (process_n)
       (PARTITION partition_0
           VALUES LESS THAN (1)
           TABLESPACE test_data,
       PARTITION partition_2_29999
          VALUES LESS THAN (30000)
          TABLESPACE test_data,
       PARTITION partition_30000
          VALUES LESS THAN (50001)
          TABLESPACE test_data);Regards

  • Experiences of Partitioning FACT tables

    Running BPC 7.0 SP3 for MS
    We have two very large FACT tables (195milliion records and 105million records) and these are currently growing at a rate of 2m/5m records per month - we are running an incremental optimize twice per day
    It has been suggested that we consider partioning the tables to improve performance, but I have not been able to find any users/customers with any experience of doing this
    Specifically
    1. Does it improve performance?
    2. What additional complexity does it add to regular maintenance ?
    3. Have there been any problems encountered implementing Partioned tables?
    4. It would seem that partioning based on time would make sense - historic data in one partition, current data in another HOWEVER many of our reports pull current year and prior year so will this cause a reporting issue? Or degrade report performance?

    I don't know if this is still an issue for you.  You ask about Fact Table partitioning specifically, but you need to be aware that it is possible to partition either the FACT tables or the Fact table partition of the cube, or both. We have used (further) partioning of Fact table partition in the cube with success, and it sounds as if this is what you are really asking about. 
    The impacts are on
    1. processing time, a full optimize without Compress only processes the paritions that have changed, thereby reducing the run time where there is a lot of unchanged data. You mention that you run incremental updates twice daily,  this is currently reprocessing the whole database.  I would have expected the lite optimize to be more effective, supported by an overnight full optimize, if you have an overnight window. You can also run the lite optimize more frequently.
    2. query time. The filters defined in the partitions provide a more efficient path to data in the reporting processes than the defaults, which have the potential to scan large parts of the database.
    Partitioning is not a panacea. You need to be specific about the areas of performance problem that you have and choose the performance improvement strategy to address these.  Looking at the indexing of the database is also an area where you can improve performance significantly.
    If you partition the cube, it is transparent to the usage of the application, from both user and admin perspective. The greatest complexity comes is the definition of the partitions in the first place, but this is a normal DBA function.  The trick is ensure that the filter statements do not overlap, otherwise you might get a value duplicated in 2 partitions, and to define a catchall partition to include anything not included in specific partitions. You should expect to revist the partitioning from time to time.  It is quite straightforward to repartition, you are not doing anything to the underlying data in the FACT tables
    Time is a common dimension to partition and you may partition at different levels of granularity for different periods, e.g. current year by qtr or month, prior and future years by year.  This reflects where the most frequent updates will be.  It is also possible to define partitions based on combinations of dimensions, we use category and time, so that currenct year actuals has the most granular partitions and all historic years budgets go into a single partition.

  • Problems with Partition pruning using LIST option in 9i

    I am declaring the following partitions on a fact table and when
    I do an explain plan on the following SELECT statements it is
    doing a full table scan on the fact table. However if I use
    the "PARTITION" statement in the FROM clause it picks up the
    correct partition and runs great. I have used the analyze
    command and dbms_utility.analyze_schema command on all tables
    and indexes. I had simaliar problems when partitioning with the
    RANGE options too. I have looked through all of the INIT file
    parameters and don't see anything obvious. Is there something I
    am missing?
    Any help would be appreciated!
    Thanks,
    Bryan
    Facttable create statement....
    CREATE TABLE FactTable (
    ProductGID INTEGER NULL,
    CustomerGID INTEGER NULL,
    OrganizationGID INTEGER NULL,
    TimeGID INTEGER NULL,
    FactValue NUMBER NOT NULL,
    ModDate DATE NULL,
    CombinedGID INTEGER NOT NULL)
    PARTITION BY LIST (CombinedGID)
    (PARTITION sales1 VALUES(9999101),
    PARTITION sales2 VALUES(9999102),
    PARTITION sales3 VALUES(9999103),
    PARTITION model1 VALUES(9999204),
    PARTITION model2 VALUES(9999205),
    PARTITION model3 VALUES(9999206));
    Select statement....that is causing a full table scan.....the
    *tc tables are the equivelent to dimension tables in a star
    schema.
    SELECT tco.parentgid, tcc.parentgid, tcp.parentgid, sum
    (factvalue)
    FROM facttable f, custtc tcc, timetc tct, prodtc tcp, orgtc tco
    WHERE
    tco.childgid = f.organizationgid
    AND tco.parentgid = 18262
    AND tcc.childgid = f.customergid
    AND tcc.parentmembertypegid = 16
    AND tcp.childgid = f.productgid
    AND tcp.parentmembertypegid = 7
    AND tct.childgid = f.timegid
    AND tct.parentgid = 1009
    GROUP BY tco.parentgid, tcc.parentgid, tcp.parentgid;
    Select statement that works great....
    SELECT tco.parentgid, tcc.parentgid, tcp.parentgid, sum
    (factvalue)
    FROM facttable partition(sales1) f, custtc tcc, timetc tct,
    prodtc tcp, orgtc tco
    WHERE
    tco.childgid = f.organizationgid
    AND tco.parentgid = 18262
    AND tcc.childgid = f.customergid
    AND tcc.parentmembertypegid = 16
    AND tcp.childgid = f.productgid
    AND tcp.parentmembertypegid = 7
    AND tct.childgid = f.timegid
    AND tct.parentgid = 1009
    GROUP BY tco.parentgid, tcc.parentgid, tcp.parentgid;

    Hi Hoek,
    the DB version is 10.2 (italian version, then SET is correct).
    ...there's something strange: now I can INSERT rows but I can't update them!
    I'm using this command string:
    UPDATE TW_E_CUSTOMER_UNIFIED SET END_VALIDITY_DATE = TO_DATE('09-SET-09', 'DD-MON-RR') WHERE
    id_customer_unified = '123' and start_validity_date = TO_DATE('09-SET-09', 'DD-MON-RR');
    And this is the error:
    Error SQL: ORA-14402: updating partition key column would cause a partition change
    14402. 00000 - "updating partition key column would cause a partition change"
    *Cause:    An UPDATE statement attempted to change the value of a partition
    key column causing migration of the row to another partition
    *Action:   Do not attempt to update a partition key column or make sure that
    the new partition key is within the range containing the old
    partition key.
    I think that is impossible to use a PARTITION/SUBPARTITION like that: in fact the update of "END_VALIDITY_DATE" cause a partition change.
    Do u agree or it's possible an update on a field that implies a partition change?
    Regards Steve

  • Partitioning the tables

    i have a table that logs an actigtivity
    it has activity date time
    its a very large table...which i havnt partitioned.
    because i havnt got the archiving requirements.
    my questions is .. should i blindly create a monthly partition based on date key or should i wait for the archiving requirements?
    what is the criteria to partition the table?
    is it the amount of data ... or the archiving strategy. which one of these two should i take as the deciding factor to create partitions
    regards
    raj

    my problem is that
    i have two tables A and B
    A has a column called activity date time and B is the child table for A.
    i did not create partitions on both the tables because... i did not know the online data requirement.
    now for a code move people are complaining that i did not create monthly partitions before...
    my quesitioon is that...
    shouldnt we wait for the online data requirement to come then think of partitioning the table?
    or rather than waiting
    should we blindly create the monthly partitions on activity date time?
    regards
    raj

  • Partitioning in table.

    Hello,
    In my company we have a ERP system. In which we have a Finance Module . One of the table in it keeps the record of the accounting year (ex- 08-09,09-10 or 10-11). Now my senior has given me a task to partition that table as per the accounting year. Should i use range partitioning ? give me some idea which will be the best thing to use here ....if you need anymore details , can ask me ....Thanks !!!
    Oracle 10g R2
    Windows server 2005

    First question that you should ask is why you want to use partitioning ?
    What are your goals ?
    They can be (from http://download.oracle.com/docs/cd/E11882_01/server.112/e10713/schemaob.htm#CFAGCECI):
    >
    Increased availability
    The unavailability of a partition does not entail the unavailability of the object. The query optimizer automatically removes unreferenced partitions from the query plan so queries are not affected when the partitions are unavailable.
    Easier administration of schema objects
    A partitioned object has pieces that can be managed either collectively or individually. DDL statements can manipulate partitions rather than entire tables or indexes. Thus, you can break up resource-intensive tasks such as rebuilding an index or table. For example, you can move one table partition at a time. If a problem occurs, then only the partition move must be redone, not the table move. Also, dropping a partition avoids executing numerous DELETE statements.
    Reduced contention for shared resources in OLTP systems
    In some OLTP systems, partitions can decrease contention for a shared resource. For example, DML is distributed over many segments rather than one segment.
    Enhanced query performance in data warehouses
    In a data warehouse, partitioning can speed processing of ad hoc queries. For example, a sales table containing a million rows can be partitioned by quarter.

  • Status of VIEW after partitioning base table.

    Hi All,
    I would like to know the status of the view when i perform Range partitioning on Base table???
    I will be performing these below steps for partitioning:
    1. Rename the Original base table.
    2. Create new partitioned table by naming it as original table name.
    3. Insert rows from Original table to partitioned table.
    As from above steps i am renaming the original base table and creating Partitioned base table with the same original name.
    Do VIEWS based on this table will refer to new partitioned table having same name, or do i need to re-create views???
    -Yasser

    View refers to NEW Partition TABLE on the same name... it's not the problem.. if you didn't rename delete add column_name.
    SQL> create table a1 (id number);
    Table created.
    SQL> create view v_a1 as select * from a1;
    View created.
    SQL> desc v_a1;
    Name                         Null? Type
    ID                                  NUMBER
    SQL> alter table a1 rename to a2;
    Table altered.
    SQL> desc v_a1;
    ERROR:
    ORA-24372: invalid object for describe
    SQL> create table a1 (id varchar2(40))
    2 /
    Table created.
    SQL> desc v_a1;
    Name                         Null? Type
    ID                                  VARCHAR2(40)

  • Problem while dropping a table

    Dear All,
    I am facing a problem while dropping a table in Oracle 10g.
    I am able to find the number of records in the table but unble to delete it.
    SQL> select count(*) from merchant_audit;
    COUNT(*)
    30028278
    SQL> drop table merchant_audit;
    drop table merchant_audit
    ERROR at line 1:
    ORA-00942: table or view does not exist
    I have to drop this table from the database. Please help.
    regards,
    Santhosh

    Hi,
    IS it a table ? Is it your table ?
    Read this example :
    sqlplus scott/*****
    SQL> create table merchant_audit(col1 number);
    Table created.
    SQL> create public synonym merchant_audit for merchant_audit;
    Synonym created.
    SQL> grant select on merchant_audit to merchant;
    Grant succeeded.
    SQL> conn merchant/merchant
    Connected.
    SQL> select count(*) from merchant_audit;
    COUNT(*)
    0
    SQL> drop table merchant_audit;
    drop table merchant_audit
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL>
    See owner into the dba_tables, and if synonym into dba_synonyms.
    Nicolas.
    Message was edited by:
    Nicolas Gasparotto

  • Problem with checkbox on table component

    Hello i am having a problem with checkbox in table component
    i am developing something like a shopping cart app and i have a checkbox in my table component , i want users to select items from the checkbox to add to thier cart, They can select the items from cartegory combobox , my problem is when they select the items from the checkbox if they select another category the alread selected once do not display in my collection opbject please how can i maintain the state of the already selected items in my collection object

    Hi,
    Please go through the tutorial "Understanding scope and managed beans". This is available at:
    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/scopes.html
    The details of the selected items need to be stored in an object that is in session scope.
    Hope this helps
    Cheers
    Girish

Maybe you are looking for