You are on page 1of 3

******************************************************************************** *********************************************** Exemplo de INSERT com APPEND errado em Produo

INSERT /*+APPEND+*/ INTO PS_IXN_RECALL_FACT ( MEDIATION_SEGMENT_ID ,GMT_ENTERPRI SE_DATE_KEY ,GMT_TIME_OF_DAY_KEY ,STD_EN TERPRISE_DATE_KEY ,STD_ENTERPRISE_TIME_OF_DAY_KEY ,STD_ENTERPRISE_CAL_DATE ,TENA NT_KEY ,TENANT_NAME ,INTERACTION_TYPE_KE Y ,INTERACTION_TYPE ,MEDIA_TYPE_KEY ,MEDIA_TYPE ,TECHNICAL_DESCRIPTOR_KEY ,RESOU RCE_ROLE ,ROLE_REASON ,TECHNICAL_RESULT ,RESULT_REASON ,RESOURCE_KEY ,VQ_RESOURCE_NAME ,VQ_GROUP_NAME ,RESOURCE_GROUP_CO MBINATION_KEY ,INTERACTION_ID ,MEDIA_SER VER_IXN_GUID ,MEDIATION_GUID ,MEDIA_SERVER_IXN_ID ,ACCOUNT_NUMBER ,OUTSOURCER ,S ITE ,TOTAL_DURATION ,MEDIATION_DURATION ,MEDIATION_SEGMENT_COUNT ,TARGET_IXN_SEGMENT_ID ,TARGET_IXN_RESOURCE_ID ,TARGET_ SEG_FACT_EXT_KEY ,TARGET_RESOURCE_KEY ,T ARGET_RESOURCE_NAME ,TARGET_RESOURCE_CFG_DBID ,TARGET_LOGIN_CODE ,SHORT_ABANDONE D_FLAG ,ANSWER_THRESHOLD ,MET_THRESHOLD_ FLAG ,GMT_START_TIME ,GMT_END_TIME ,STD_ENTERPRISE_START_TIME ,STD_ENTERPRISE_EN D_TIME ,RECALL_IXN_ID ,IS_RECALL_SRC_IXN _ID ,IS_RECALL_SRC_LOGIN_CD ,IS_RECALL_I ******************************************************************************** ************************************ -- Verifica a Tabela Atual SQL> ANALYZE TABLE T COMPUTE STATISTICS; Table analyzed.

SQL> select num_rows, blocks, empty_blocks from DBA_tables where table_name='T'; 2 NUM_ROWS BLOCKS EMPTY_BLOCKS ---------- ---------- -----------0 0 8 -- Realiza o INSERT com APPEND na Tabela Vazia. SQL> INSERT /*+APPEND+*/ INTO T SELECT OBJECT_ID,OBJECT_NAME FROM ALL_OBJECTS WH ERE ROWNUM < 5000; 4999 rows created. SQL> COMMIT; Commit complete.

SQL> ANALYZE TABLE T COMPUTE STATISTICS; Table analyzed.

SQL> select num_rows, blocks, empty_blocks from DBA_tables where table_name='T' ; 2 NUM_ROWS BLOCKS EMPTY_BLOCKS ---------- ---------- -----------4999 22 2

SELECT SEGMENT_NAME, BYTES, BLOCKS, EXTENTS FROM DBA_SEGMENTS WHERE SEGMENT_TYPE = 'TABLE' AND SEGMENT_NAME='T' ORDER BY SEGMENT_NAME;

SEGMENT_NAME BYTES BLOCKS EXTENTS ------------------------------ ---------- ---------- ---------T 196608 24 3

-- Nesse momento se deleta 4000 Linhas e analiza a Tabela. SQL> DELETE FROM T WHERE ROWNUM < 4000; 3999 rows deleted. SQL> COMMIT; Commit complete. SQL> ANALYZE TABLE T COMPUTE STATISTICS; Table analyzed. SQL> select num_rows, blocks, empty_blocks from DBA_tables where table_name='T' ; NUM_ROWS BLOCKS EMPTY_BLOCKS ---------- ---------- -----------1000 22 2

-- Verifica se um insert normal vai utilizar os blocos livres SQL> INSERT INTO T SELECT OBJECT_ID,OBJECT_NAME FROM ALL_OBJECTS WHERE ROWNUM < 1000; 999 rows created. SQL> COMMIT; Commit complete.

SQL> ANALYZE TABLE T COMPUTE STATISTICS; Table analyzed. SQL> select num_rows, blocks, empty_blocks from DBA_tables where table_name='T' ; NUM_ROWS BLOCKS EMPTY_BLOCKS ---------- ---------- -----------1999 22 2 -- Insert normal no moveu a marca d'gua e deixa utiliza os blocos livres. -- Agora insert com o append errado para verificar se o mesmo vai mover a marca d'agua SQL> INSERT /*+APPEND+*/ INTO T SELECT OBJECT_ID,OBJECT_NAME FROM ALL_OBJECTS WH ERE ROWNUM < 1000; 999 rows created. SQL> COMMIT; Commit complete. SQL> ANALYZE TABLE T COMPUTE STATISTICS; Table analyzed. SQL> select num_rows, blocks, empty_blocks from DBA_tables where table_name='T' ; NUM_ROWS BLOCKS EMPTY_BLOCKS ---------- ---------- -----------2998 26 6 -- Como podemos verificar o insert com append errado move a marca d'agua.

select num_rows, blocks, empty_blocks from DBA_tables where table_name='T';

You might also like