You are on page 1of 19

Partition Creation

Creating SQL Tuning Set for Partition: Step -1: Give the name of the Tunning Set and Owner Name and Click Next.

Step -2 : Load Method in this page we need to select data source in this example we have selected the value cursor cache and click next.

Step -3: In the filter option page we need to select the filter option . Here we choose the sql_id for the filtering option once you done press Next.

Step -4: Schedule the job and press next.

Step -5 : Review page we can see all our setting and our sql once your reviewed everything press submit.

Step 6: After we gave the submit we will get the conformation message and given tuning set will be available for access.

Step 7: Complete detail of the newly created tuning set.

Running the SQL Access Advisor: Step -1 Select the database which you want to create the partition. Here we have chosen the CCOREUPG Database.

Step -2: Select the performance -> sql -> sql access advisor then this page will appear. In this page we chose the Recommend new access structure option.

Step -3: In this page we chose the tuning set which we created earlier in this document. Then click Next.

Step -4: In this page we chose the Recommendation option. Here we have chosen the option Indexes and Partitioning and In the Scope section we chosed the Comprehensive for the deep analysis. Then click Next.

Step 5: In the Schedule page: Advisor task information section we chose the task name and Task expiration. Schedule section we have chosen for the immediate execution. Then click Next.

Step -6 : Review page : we can see all the detail of the task. Once you reviewed everything. Press submit.

Confirmation of the Job :

Job Results:

Output Result: PART_MASTER Table Output Result:

Rem Rem Repartitioning table "SYSADM"."PART_MASTER" Rem SET SERVEROUTPUT ON SET ECHO ON Rem Rem Creating new partitioned table Rem CREATE TABLE "SYSADM"."PART_MASTER1" ( "ID" NUMBER(38,0), "PLANT_ID" NUMBER(38,0), "PART_NUMBER" VARCHAR2(40), "PART_SPEC_ID" NUMBER(38,0), "DESCRIPTION" VARCHAR2(30), "STANDARD_PACK_QTY" NUMBER(38,0), "ACCUME" NUMBER(38,0), "ADJUSTMENTS" NUMBER(38,0),

"LAST_SHIP_DATE" DATE, "LAST_SHIP_AMOUNT" NUMBER(38,0), "BOX_MASK" VARCHAR2(80), "STD_PALLET_QTY" NUMBER(38,0), "DOCK_CODE" VARCHAR2(40), "LINE_FEED" VARCHAR2(40), "ENGINEERING_CHANGE" VARCHAR2(30), "RESERVE_LINE_FEED" VARCHAR2(40), "PURCHASE_ORDER" VARCHAR2(30), "MASTER_MASK" VARCHAR2(80), "MIXED_MASK" VARCHAR2(80), "DFLT_SHIP_FROM_ID" NUMBER, "ROW_VERSION" NUMBER, "MISC_INFORMATION" VARCHAR2(60), "ACTIVE_FLAG" CHAR(1), "EFFECTIVE_DATE" DATE, "DEFAULT_CONT_ID" NUMBER, "CUSTOMS_CODE" VARCHAR2(20), "UOM_ID" NUMBER(38,0) DEFAULT 3, "CHARGES" NUMBER(15,6), "MATERIAL_GROUP" VARCHAR2(30), "PO_TYPE" VARCHAR2(30), "PART_ASSY_NUMBER" VARCHAR2(30), "PART_ASSY_CODE" VARCHAR2(30), "MC_CODE" VARCHAR2(30), "MH_CODE" VARCHAR2(30), "CC_STORAGE" VARCHAR2(30), "SHOP_STORAGE" VARCHAR2(30), "LINE_SIDE" VARCHAR2(30), "PACK_TYPE" VARCHAR2(30), "PROD_INV_STATUS" CHAR(1), "SERVICE_MASK" VARCHAR2(80), "TUBE_LBL_REQ" CHAR(1), "TUBE_QTY" NUMBER, "TUBE_MASK" VARCHAR2(80), "NON_INVENTORIED" CHAR(1) DEFAULT 'N', "LEAD_TIME" NUMBER, "LEAD_HOURS" NUMBER(38,0), "ALT_CONT_ID" NUMBER(38,0), "ALT_STD_PACK_QTY" NUMBER(38,0), "STANLEY_CONT_QTY_CALC" CHAR(1), "STANLEY_CONT_QTY_CALC_PRIMARY" CHAR(1) ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "SYSADM" PARTITION BY HASH ("ID") PARTITIONS 32; Rem Rem Copying constraints to new partitioned table Rem ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("UOM_ID" NOT NULL ENABLE);

ALTER TABLE "SYSADM"."P ART_MASTER1" MODIFY ("DEFAULT_CONT_ID" NOT NULL ENABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("EFFECTIVE_DATE" NOT NUL L ENABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("ACTIVE_FLAG" NOT NULL E NABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("ROW_VERSION" NOT NULL E NABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("DFLT_SHIP_FROM_ID" NOT NULL ENABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("STANDARD_PACK_QTY" NOT NULL ENABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("DESCRIPTION" NOT NULL E NABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("PART_SPEC_ID" NOT NULL ENABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("PART_NUMBER" NOT NULL E NABLE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("PLANT_ID" NOT NULL ENAB LE); ALTER TABLE "SYSADM"."PART_MASTER1" MODIFY ("ID" NOT NULL ENABLE); ALTER TABLE "SYSADM"."PART_MASTER1" ADD PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS TABLESPACE "TBLINDEX" ENABLE; Rem Rem Copying referential constraints to new partitioned table Rem ALTER TABLE "SYSADM"."PART_MASTER1" ADD CONSTRAINT "PART_MAST_FK011" FOREIGN KEY ("PART_SPEC_ID") REFERENCES "SYSADM"."PART_SPECIFICATION" ("ID") ENABLE; ALTER TABLE "SYSADM"."PART_MASTER1" ADD CONSTRAINT "PART_MAST_FK021" FOREIGN KEY ("PLANT_ID") REFERENCES "SYSADM"."PLANT_MASTER" ("ID") ENABLE; ALTER TABLE "SYSADM"."PART_MASTER1" ADD CONSTRAINT "PART_MAST_FK031" FOREIGN KEY ("DFLT_SHIP_FROM_ID") REFERENCES "SYSADM"."SHIP_FROM_MASTER" ("ID") ENABLE; ALTER TABLE "SYSADM"."PART_MASTER1" ADD CONSTRAINT "PART_MAST_FK041" FOREIGN KEY ("DEFAULT_CONT_ID") REFERENCES "SYSADM"."CONTAINER_MASTER" ("ID") ENABLE; ALTER TABLE "SYSADM"."PART_MASTER1" ADD CONSTRAINT "PART_MAST_FK051" FOREIGN KEY ("ALT_CONT_ID") REFERENCES "SYSADM"."CONTAINER_MASTER" ("ID") ENABLE; ALTER TABLE "SYSADM"."PART_MASTER1" ADD CONSTRAINT "PART_MAST_FKUOM1 " FOREIGN KEY ("UOM_ID") REFERENCES "SYSADM"."UOM_MASTER" ("ID") E NABLE; Rem Rem Copying indexes to new partitioned table Rem CREATE UNIQUE INDEX "SYSADM"."PART_MASTER_PK1" ON "SYSADM"."PART_MASTER1" ("ID") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

TABLESPACE "TBLINDEX" ; CREATE UNIQUE INDEX "SYSADM"."PART_MAST_IDX011" ON "SYSADM"."PART_MASTER1" ("PLANT_ID", "PART_NUMBER", "ENGINEERING_CHANGE") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING TABLESPACE "TBLINDEX" ; CREATE INDEX "SYSADM"."PART_MAST_IDX021" ON "SYSADM"."PART_MASTER1" ("PART_NUMBER", "ENGINEERING_CHANGE") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING TABLESPACE "TBLINDEX" ; CREATE INDEX "SYSADM"."PART_MAST_IDX031" ON "SYSADM"."PART_MASTER1" ("PART_SPEC_ID") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS TABLESPACE "TBLINDEX" ; CREATE UNIQUE INDEX "SYSADM"."PART_MAST_IDX041" ON "SYSADM"."PART_MASTER1" ("PLANT_ID", "PART_NUMBER", "EFFECTIVE_DATE") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS TABLESPACE "TBLINDEX" ; Rem Rem Copying triggers to new partitioned table Rem CREATE OR REPLACE TRIGGER "SYSADM"."AUDIT_PART_MASTER1" BEFORE UPDATE OR INSERT OR DELETE ON "SYSADM"."PART_MASTER1" FOR EACH ROW BEGIN CCORE_AUDIT ( INSERTING, UPDATING, DELETING, 'PART_MASTER', 'ACCUME', :OLD.ACCUME, :NEW.ACCUME, 'ACTIVE_FLAG', :OLD.ACTIVE_FLAG, :NEW.ACTIVE_FLAG, 'ADJUSTMENTS', :OLD.ADJUSTMENTS, :NEW.ADJUSTMENTS, 'ALT_CONT_ID', :OLD.ALT_CONT_ID, :NEW.ALT_CONT_ID, 'ALT_STD_PACK_QTY', :OLD.ALT_STD_PACK_QTY, :NEW.ALT_STD_PACK_QTY, 'BOX_MASK', :OLD.BOX_MASK, :NEW.BOX_MASK, 'CC_STORAGE', :OLD.CC_STORAGE, :NEW.CC_STORAGE, 'CHARGES', :OLD.CHARGES, :NEW.CHARGES, 'CUSTOMS_CODE',

:OLD.CUSTOMS_CODE, :NEW.CUSTOMS_CODE, 'DEFAULT_CONT_ID', :OLD.DEFAULT_CONT_ID, :NEW.DEFAULT_CONT_ID, 'DESCRIPTION', :OLD.DESCRIPTION, :NEW.DESCRIPTION, 'DFLT_SHIP_FROM_ID', :OLD.DFLT_SHIP_FROM_ID, :NEW.DFLT_SHIP_FROM_ID, 'DOCK_CODE', :OLD.DOCK_CODE, :NEW.DOCK_CODE, 'EFFECTIVE_DATE', :OLD.EFFECTIVE_DATE, :NEW.EF FECTIVE_DATE, 'ENGINEERING_CHANGE', :OLD.ENGINEERING_CHANGE, :NEW.ENGINEERING_CHANGE, 'ID', :OLD.ID, :NEW.ID, 'LAST_SHIP_AMOUNT', :OLD.LAST_SHIP_AMOUNT, :NEW.LAST_SHIP_AMOUNT, 'LAST_SHIP_DATE', :OLD.LAST_SHIP_DATE, :NEW.LAST_SHIP_DATE, 'LEAD_HOURS', :OLD.LEAD_HOURS, :NEW.LEAD_HOURS, 'LEAD_TIME', :OLD.LEAD_TIME, :NEW.LEAD_TIME, 'LINE_FEED', :OLD.LINE_FEED, :NEW.LINE_FEED, 'LINE_SIDE', :OLD.LINE_SIDE, :NEW.LINE_SIDE, 'MASTER_MASK', :OLD.MASTER_MASK, :NEW.MASTER_MASK, 'MATERIAL_GROUP', :OLD.MATERIAL_GROUP, :NEW.MATERIAL_GROUP, 'MC_CODE', :OLD.MC_CODE, :NEW.MC_CODE, 'MH_CODE',

:OLD.MH_CODE, :NEW.MH_CODE, 'MISC_INFORMATION', :OLD.MISC_INFORMATION, :NEW.MISC_INFORMATION, 'MIXED_MASK', :OLD.MIXED_MASK, :NEW.MIXED_MASK, 'NON_INVENTORIED', :OLD.NON_INVENTORIED, :NEW.NON_INVENTORIED, 'PACK_TYPE', :OLD.PACK_TYPE, :NEW.PACK_TYPE, 'PART_ASSY_CODE', :OLD.PART_ASSY_CODE, :NEW.PART_ASSY_CODE, 'PART_ASSY_NUMBER', :OLD.PART_ASSY_NUMBER, :NEW.PART_ASSY_NUMBER, 'PART_NUMBER', :OLD.PART_NUMBER, :NEW.PART_NUMBER, 'PART_SPEC_ID', :OLD.PART_SPEC_ID, :NEW.PART_SPEC_ID, 'PLANT_ID', :OLD.PLANT_ID, :NEW.PLANT_ID, 'PO_TYPE', :OLD.PO_TYPE, :NEW.PO_TYPE, 'PROD_INV_STATUS', :OLD.PROD_INV_STATUS, :NEW.PROD_INV_STATUS, 'PURCHASE_ORDER', :OLD.PURCHASE_ORDER, :NEW.PURCHASE_ORDER, 'RESERVE_LINE_FEED', :OLD.RESERVE_LINE_FEED, :NEW.RESERVE_LINE_FEED, 'ROW_VERSION', :OLD.ROW_VERSION, :NEW.ROW_VERSION, 'SERVICE_MASK', :OLD.SERVICE_MASK, :NEW.SERVICE_MASK, 'SHOP_STORAGE', :OLD.SHOP_STORAGE, :NEW.SHOP_STORAGE, 'STANDARD_PACK_QTY', :OLD.STANDARD_PACK_QTY,

:NEW.STANDARD_PACK_QTY, 'STANLEY_CONT_QTY_CALC', :OLD.STANLEY_CONT_QTY_CALC, :NEW.STANLEY_CONT_QTY_CALC, 'STANLEY_CONT_QTY_CALC_PRIMARY', :OLD.STANLEY_CONT_QTY_CALC_PRIMARY, :NEW.STANLEY_CONT_QTY_CALC_PRIMARY, 'STD_PALLET_QTY', :OLD.STD_PALLET_QTY, :NEW.STD_PALLET_QTY, 'TUBE_LBL_REQ', :OLD.TUBE_LBL_REQ, :NEW.TUBE_LBL_REQ, 'TUBE_MASK', :OLD.TUBE_MASK, :NEW.TUBE_MASK, 'TUBE_QTY', :OLD.TUBE_QTY, :NEW.TUBE_QTY, 'UOM_ID', :OLD.UOM_ID, :NEW.UOM_ID, 'NO_MORE_COLUMN S',NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL, NULL,NULL,NULL,

NULL,NULL,NULL ); END; / ALTER TRIGGER "SYSADM"."AUDIT_PART_MASTER1" ENABLE; CREATE OR REPLACE TRIGGER "SYSADM"."PANA_TRG_PART_MASTER_INS1" AFTER INSERT ON "SYSADM"."PART_MASTER1" FOR EACH ROW DECLARE nVariance pana_group_master.default_variance%TYPE; nGroupID pana_group_master.id%TYPE := NULL; BEGIN SELECT group_id INTO nGroupID FROM pana_part_specification where i d = :NEW.part_spec_id; IF (nGroupID IS NULL) THEN SetDefaultGroup(:NEW.PLANT_ID, :NEW.DFLT_SHIP_FROM_ID, :NEW.PA RT_SPEC_ID); END IF; SELECT NVL(default_variance, 15) INTO nVariance FROM pana_part_spe cification, pana_group_master WHERE pana_part_specification.id = :NEW.PART_SPEC_ID and pana_part _specification.group_id = pana_group_master.id(+); INSERT INTO PANA_PART_MASTER(ID, variance) VALUES(:NEW.ID, nVarian ce); END; / ALTER TRIGGER "SYSADM"."PANA_TRG_PART_MASTER_INS1" ENABLE; CREATE OR REPLACE TRIGGER "SYSADM"."PANA_TRG_PART_MASTER_UPD1" AFTER UPDATE ON "SYSADM"."PART_MASTER1" FOR EACH ROW DECLARE nNewGroupID pana_group_master.id%TYPE := NULL; nOldGroupID pana_group_master.id%TYPE := NULL; nNewCustomerID customer_master.id%TYPE := NULL; nOldCustomerID customer_master.id%TYPE := NULL; BEGIN IF (:NEW.part_spec_id != :OLD.part_spec_id) THEN SELECT group_id INTO nNewGroupID FROM pana_part_specification w here id = :NEW.part_spec_id; IF (nNewGroupID IS NULL) THEN DELETE FROM pana_planner_data WHERE part_id = :NEW.id; END IF; SELECT group_id INTO nOldGroupID FROM pana_part_specification W HE RE id = :OLD.part_spec_id; IF (nNewGroupID != nOldGroupID) THEN DELETE FROM pana_planner_data WHERE part_id = :NEW.id; ELSE UPDATE pana_planner_data SET part_spec_id = :NEW.part_spec_id WHERE part_id = :NEW.id; END IF;

END IF; IF (:NEW.plant_id != :OLD.plant_id) THEN SELECT customer_id INTO nNewCustomerID FROM plant_master where id = :NEW.plant_id; SELECT customer_id INTO nOldCustomerID FROM plant_master where id = :OLD.plant_id; IF (nNewCustomerID != nOldCustomerID) THEN UPDATE pana_planner_data SET customer_id = nNewCustomerID WHERE part_id = :NEW.id; UPDATE pana_planner_data SET customer_id = nNewCustomerID WHERE part_spec_id = :NEW.part_spec_id AND part_id IS NULL AND customer_id = nOldCustomerID; END IF; END IF; END; / ALTER TRIGGER "SYSADM"."PANA_TRG_PART_MASTER_UPD1" ENABLE; CREATE OR REPLACE TRIGGER "SYSADM"."PART_MASTER_11" BEFORE UPDATE OR INSERT ON "SYSADM"."PART_MASTER1" FOR EACH ROW BEGIN Validate_Row_Version ( INSERTING, UPDATING, :OLD.ROW_VERSION, :NEW.ROW_VERSION ); END; / ALTER TRIGGER "SYSADM"."PART_MASTER_11" ENABLE; Rem Rem Copying object grants to new partitioned table Rem GRANT SELECT ON "SYSADM"."PART_MASTER1" TO "CCORE_FOR_COGNOS"; GRANT SELECT ON "SYSADM"."PART_MASTER1" TO "READ_CCORE"; GRANT SELECT ON "SYSADM"."PART_MASTER1" TO "CCORE_READ"; GRANT SELECT ON "SYSADM"."PART_MASTER1" TO "COGNOS"; Rem Rem Populating new partitioned table with data from original table Rem INSERT /*+ APPEND */ INTO "SYSADM"."PART_MASTER1" SELECT * FROM "SYSADM"."PART_MASTER"; COMMIT; begin dbms_stats.gather_table_stats('"SYSADM"', '"PART_MASTER1"', NULL, dbms_stats.auto_sample_size); end; / Rem Rem Renaming tables to give new partitioned table the original table name

Rem ALTER TABLE "SYSADM"."PART_MASTER" RENAME TO "PART_MASTER11"; ALTER TABLE "SYSADM"."PART_MASTER1" RENAME TO "PART_MASTER";

You might also like