대량의 DML 작업에대한성능개선방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 대량의데이터를변경해야하는작업은그자체만으로도큰부담으로다가온다. 하지만변경작업자체에만국한되는것이아니라변경되기전데이터와변경이후데이터를각각저장관리해야하는메커니즘이라면성능을개선해야하는입장에서는더욱큰부담
|
|
- 민준 필
- 5 years ago
- Views:
Transcription
1 대량의 DML 작업에대한성능개선방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 대량의데이터를변경해야하는작업은그자체만으로도큰부담으로다가온다. 하지만변경작업자체에만국한되는것이아니라변경되기전데이터와변경이후데이터를각각저장관리해야하는메커니즘이라면성능을개선해야하는입장에서는더욱큰부담일것이다. 말그대로대량의데이터를변경해야하는작업의특성상 SQL Tuning 만으로성능을개선할여지는많지않을뿐더러개선을한다하더라도극적인효과를기대하기는어렵다. 더욱이필연적으로발생하는 redo 와 undo 데이터로인한추가적인부하는성능을개선해야하는입장에서는오라클의합리적인동시성보장메커니즘이오히려원망스럽게느껴질법도하다. 따라서, 이번주제는대량의 DML 을처리할때, 파티션테이블의구성및변경이나 Direct Path Insert 를유도하는방법등을통하여 DML 작업자체의성능개선은물론이고, 시스템의 Down Time 최소화에도기여할수있는방법에대한이야기를하고자한다. 대량의 Delete 월단위혹은특정기간단위의데이터를주기적으로삭제하는업무는어느시스템에서나쉽게 볼수있는작업중하나이다. 익숙한작업이긴하나그작업의성능을개선하기란쉽지않다. 대량의 Delete 작업은 Table Full Scan 이나 Index Scan 등과같은해당테이블을 Access 하는방법에의한비효율보다는필연적으로발생할수밖에없는 redo, undo 데이터생성과더불어해당테이블에인덱스가존재한다면인덱스의개수에따라추가적인 Overhead 가발생하는것이성능저하의주된이유가되기때문이다. 인덱스에서발생하는추가적인 Overhead 란, 삭제대상이되는데이터를인덱스에서도삭제해 야하는것과동시에, 이과정역시 redo 와 undo 데이터가생성됨을의미한다. Part 1 ORACLE 95
2 위와같은부하를억제하면서대량의 Delete 작업의수행속도를개선하려면어떤방법이있을까? 답은 Partition Table 구성에있다. 주기적으로삭제해야하는기간이정해져있다면, 해당칼럼을 Key 로하는 Range Partition 을 구성하고, 삭제대상이되는기간에해당하는 Partition Table 을 Alter Table [Partition_Name] Drop Partition [Partition_Name] 명령을통해 DML 이아닌 DDL 로작업을대체할수있다. DDL 로의 Delete 작업의대체는, redo 데이터가생성되지않고단순히해당 Partition 을 Drop 하는작업만수행하므로속도의차이는비교할수없을만큼크고, 많은양의 redo / undo 데이 터가발생되지않으므로 Down Time 최소화에도큰기여를할수있다. 아래테스트를통해그차이에대해서상세히알아보자. 테이블생성 DDL (Partition_test) CREATE TABLE partition_test (TIME_ID DATE, DAY_NAME VARCHAR2(9), DAY_NUMBER_IN_WEEK NUMBER(1,0), DAY_NUMBER_IN_MONTH NUMBER(2,0), CALENDAR_WEEK_NUMBER NUMBER(2,0), FISCAL_WEEK_NUMBER NUMBER(2,0), WEEK_ENDING_DAY DATE, WEEK_ENDING_DAY_ID NUMBER, CALENDAR_MONTH_NUMBER NUMBER(2,0), FISCAL_MONTH_NUMBER NUMBER(2,0), CALENDAR_MONTH_DESC VARCHAR2(8), CALENDAR_MONTH_ID NUMBER, FISCAL_MONTH_DESC VARCHAR2(8), FISCAL_MONTH_ID NUMBER, DAYS_IN_CAL_MONTH NUMBER, DAYS_IN_FIS_MONTH NUMBER, END_OF_CAL_MONTH DATE, END_OF_FIS_MONTH DATE, CALENDAR_MONTH_NAME VARCHAR2(9), FISCAL_MONTH_NAME VARCHAR2(9), CALENDAR_QUARTER_DESC CHAR(7), CALENDAR_QUARTER_ID NUMBER, FISCAL_QUARTER_DESC CHAR(7), 기술백서 White Paper
3 FISCAL_QUARTER_ID NUMBER, DAYS_IN_CAL_QUARTER NUMBER, DAYS_IN_FIS_QUARTER NUMBER, END_OF_CAL_QUARTER DATE, END_OF_FIS_QUARTER DATE, CALENDAR_QUARTER_NUMBER NUMBER(1,0), FISCAL_QUARTER_NUMBER NUMBER(1,0), CALENDAR_YEAR NUMBER(4,0), CALENDAR_YEAR_ID NUMBER, FISCAL_YEAR NUMBER(4,0), FISCAL_YEAR_ID NUMBER, DAYS_IN_CAL_YEAR NUMBER, DAYS_IN_FIS_YEAR NUMBER, END_OF_CAL_YEAR DATE, END_OF_FIS_YEAR DATE ) PARTITION BY RANGE( time_id )( PARTITION partition_test1 VALUES less than (to_date(' ','yyyy-mm-dd')), PARTITION partition_test2 VALUES less than (to_date(' ','yyyy-mm-dd')), PARTITION partition_test3 VALUES less than (to_date(' ','yyyy-mm-dd')), PARTITION partition_test4 VALUES less than (to_date(' ','yyyy-mm-dd')), PARTITION partition_test5 VALUES less than (to_date(' ','yyyy-mm-dd')) ); 테이블생성 DDL (Partition_test2) CREATE TABLE partition_test2 (TIME_ID DATE, DAY_NAME VARCHAR2(9), DAY_NUMBER_IN_WEEK NUMBER(1,0), DAY_NUMBER_IN_MONTH NUMBER(2,0), CALENDAR_WEEK_NUMBER NUMBER(2,0), FISCAL_WEEK_NUMBER NUMBER(2,0), WEEK_ENDING_DAY DATE, WEEK_ENDING_DAY_ID NUMBER, CALENDAR_MONTH_NUMBER NUMBER(2,0), FISCAL_MONTH_NUMBER NUMBER(2,0), CALENDAR_MONTH_DESC VARCHAR2(8), CALENDAR_MONTH_ID NUMBER, FISCAL_MONTH_DESC VARCHAR2(8), FISCAL_MONTH_ID NUMBER, DAYS_IN_CAL_MONTH NUMBER, DAYS_IN_FIS_MONTH NUMBER, END_OF_CAL_MONTH DATE, Part 1 ORACLE 97
4 END_OF_FIS_MONTH DATE, CALENDAR_MONTH_NAME VARCHAR2(9), FISCAL_MONTH_NAME VARCHAR2(9), CALENDAR_QUARTER_DESC CHAR(7), CALENDAR_QUARTER_ID NUMBER, FISCAL_QUARTER_DESC CHAR(7), FISCAL_QUARTER_ID NUMBER, DAYS_IN_CAL_QUARTER NUMBER, DAYS_IN_FIS_QUARTER NUMBER, END_OF_CAL_QUARTER DATE, END_OF_FIS_QUARTER DATE, CALENDAR_QUARTER_NUMBER NUMBER(1,0), FISCAL_QUARTER_NUMBER NUMBER(1,0), CALENDAR_YEAR NUMBER(4,0), CALENDAR_YEAR_ID NUMBER, FISCAL_YEAR NUMBER(4,0), FISCAL_YEAR_ID NUMBER, DAYS_IN_CAL_YEAR NUMBER, DAYS_IN_FIS_YEAR NUMBER, END_OF_CAL_YEAR DATE, END_OF_FIS_YEAR DATE ); 데이터입력 ( 두테이블동일 ) INSERT /*+ append */ INTO partition_test SELECT a.* FROM sh.times a, ( SELECT LEVEL FROM dual CONNECT BY LEVEL <= ) b; 일반테이블 (Partition_test2) 의데이터삭제 SQL> delete partition_test2 2 where time_id<= (to_date(' ','yyyy-mm-dd')); 행이삭제되었습니다. Execution Plan 기술백서 White Paper
5 Plan hash value: Id Operation Name Rows Bytes Cost (%CPU) Time DELETE STATEMENT K (1) 00:28:15 1 DELETE PARTITION_TEST2 * 2 TABLE ACCESS FULL PARTITION_TEST K (1) 00:28: Predicate Information (identified by operation id): filter("time_id"<=to_date(' :00:00', 'syyyy-mm-ddhh24:mi:ss')) Note dynamic sampling used for this statement (level=2) Statistics recursive calls db block gets consistent gets physical reads redo size 565 bytes sent via SQL*Net to client 544 bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 7 sorts (memory) 0 sorts (disk) rows processed 파티션테이블 (Partition_test) 의데이터삭제 SQL> alter table partition_test drop partition partition_test1; 테이블이변경되었습니다. SQL> alter table partition_test drop partition partition_test2; 테이블이변경되었습니다. SQL> alter table partition_test drop partition partition_test3; Part 1 ORACLE 99
6 테이블이변경되었습니다. 대량의 INSERT 대량의데이터를 Insert 하는작업은위에서소개한 Delete 작업에비해성능개선의여지가많은편이다. 이는데이터입력대상테이블의속성변경 (Nologging) 과힌트 (/*+ append */) 만으로 Direct Path Insert 를유도하여 redo 발생을억제하는방법이있기때문이다. 하지만여기에또다른암초가존재하는데, 이는인덱스의존재다. 이는대량의 Insert 작업시데이터가테이블에입력되는작업보다도인덱스의개수와인덱스의 성격에따라성능이좌우된다고해도무리가아니기때문이다. Direct Path Insert 가가능한환경에서두가지경우에대한대량의 Insert 작업의성능차이와 이를개선하는방법에대해서알아보고자한다. 인덱스의개수에따른 Direct Path Insert 성능차이 Insert 대상이되는테이블에인덱스가다수생성되어있다면그만큼의 redo 발생량이뒤따를 것이므로자연스레 Insert 작업이더뎌질것이다. 아래테스트를통해인덱스개수에따라 Direct Path Insert 작업의속도에어느정도영향을미 치는지알아보자. 테이블생성 DDL 생략 ( 위대량의 Delete 의 Partition_test 테이블 DDL 참조 ) 세개의인덱스가존재하는경우의대량의 Insert SQL> alter table partition_testnologging; 테이블이변경되었습니다. SQL> INSERT /*+ append */ 기술백서 White Paper
7 2 INTO partition_test 3 SELECT a.* 4 FROM sh.times a, 5 ( 6 SELECT LEVEL 7 FROM dual 8 CONNECT BY LEVEL <= ) b; 개의행이만들어졌습니다. 경과 : 00:08:50.77 Statistics recursive calls db block gets consistent gets physical reads redo size 564 bytes sent via SQL*Net to client 636 bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 3 sorts (memory) 3 sorts (disk) rows processed 기존의인덱스를삭제하고 Insert 이후인덱스생성 SQL> truncate table partition_test; 테이블이잘렸습니다. 경과 : 00:00:00.74 SQL> drop index idx_test1; 인덱스가삭제되었습니다. 경과 : 00:00:00.09 SQL> drop index idx_test2; 인덱스가삭제되었습니다. 경과 : 00:00:00.03 Part 1 ORACLE 101
8 SQL> drop index idx_test3; 인덱스가삭제되었습니다. 경과 : 00:00:00.03 SQL> INSERT /*+ append */ 2 INTO partition_test 3 SELECT a.* 4 FROM sh.times a, 5 ( 6 SELECT LEVEL 7 FROM dual 8 CONNECT BY LEVEL <= ) b; 개의행이만들어졌습니다. 경과 : 00:00:24.49 Statistics recursive calls db block gets 4210 consistent gets 7 physical reads redo size 566 bytes sent via SQL*Net to client 636 bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 20 sorts (memory) 0 sorts (disk) rows processed SQL> create index idx_test1 on partition_test(time_id, day_name) local; 인덱스가생성되었습니다. 경과 : 00:00:26.87 SQL> create index idx_test2 on partition_test(day_number_in_week,day_number_in_month) local; 인덱스가생성되었습니다. 경과 : 00:00:27.42 SQL> create index idx_test3 on partition_test(week_ending_day,week_ending_day_id) 기술백서 White Paper
9 local; 인덱스가생성되었습니다. 경과 : 00:00:26.72 위테스트결과와같이대량의데이터가입력될때, 해당테이블의인덱스가얼마나많이존재하는지에따라성능에큰영향을주는것으로나타났다. 이는단순히대량의데이터입력시에인덱스의존재에따른성능차이를보여주는테스트이므로대량의데이터가입력되는모든작업에인덱스를 Drop 하거나 Unusable 상태로변경하고작업하라는의미는아니다. 다만, 온라인사용자가없는시간대의배치작업이라면충분히고려할수있는방법이라고생각 한다. 수행속도는물론이거니와 redo 발생의최소화에도큰기여를할수있는장점이있기때문 이다. 빈번한 Index Split에따른 Direct Path Insert 성능차이항상증가하는값을 Insert 해야하는성격의칼럼이존재할수있다. 대표적인예는날자칼럼에 SYSDATE 가입력되는상황일것이다. 만약, 이칼럼에 Index 가생성되어있다고가정하고, 대량의 Insert 작업이수행된다면 9:1 Index Split 이빈번하게발생하는현상이자연스레나타날것이다. 앞서언급했듯이, Index Split 은결코가볍지만은않다. 왜가볍지않은지그과정을살펴보자. 우선, 9:1 Split 이란 Max 값이입력되는상황에서우측최하위 Index Leaf Block 에더이상저장할공간이없는경우 Free List 의 Free Block 을가지고와서기존최하위 Index Leaf Block 의최소한의데이터를새로운 Free Block 에옮겨담고새로저장되는데이터를해당 Block 에입력하는과정을말한다. 이는데이터가증가하는과정에서필연적으로 Index Size 가증가하며, Index Split 은이과정 에서발생하는자연스러운현상이다. 하지만, Index Split 과정은공짜가아니다. Part 1 ORACLE 103
10 Index Split 의전과정은 redo 가발생하고 Split 이시작되고완료되는시점까지 Locking 을통 해이작업을보호한다. 이 Locking 은, Enq : TX Index Contention 이라는 Wait Event 로 Split 이완료되는시점까지 Split 과정을보호하게된다. 따라서, 항상증가하는성격의칼럼에인덱스가생성되어있고해당테이블에대량의데이터가 입력되는경우, Index Split 에의한 Wait Time 증가와더불어 redo 발생등으로 Insert 속도의 저하는필연적으로발생한다. 그렇다면이를개선할수있는방안이있을까? 결론부터이야기하면문제가되는 Index 에다른 칼럼을추가하여재생성하는방법이존재한다. 이방법의목적은대량의데이터가입력될때, 기존우측최하위 Index Leaf Block 에경합이집중되던것이결합인덱스로인하여그경합이어느정도분산될것이기때문이다. 새로결합할 Index 구성대상칼럼의 NDV(Number of Distinct Value) 값이클수록 Index Split 감소의효과는더욱커질것이다. 다만, 이부분에서주의할것은 Index Clustering Factor 가크게감소할수있으므로 NDV 값이 큰칼럼을우선순위로구성할필요는없다. Array Processing 대량의 DML 작업은데이터를 Load 하거나 Update(Delete) 할때일반적으로 LOOP 문을사용하여건건이처리하는경우가많다. 이방법은매 Loop 마다 1 회씩 DML 작업이수행되어그만큼의 DBMS CALL 이발생하기때문에성능상불리하다. 하지만 Array Processing 을이용한 Bulk SQL 을사용하면 Loop 없이단한번의 SQL 수행만으로처리가가능하다. 즉, 대량의 DML 을단한번 (Limit 예약어를사용하여한번에처리할수있는건수를제한하지않는경우 ) 에처리할수있으므로 DBMS CALL 을감소시켜 Loop 로처리되던방법에비해큰성능개선효과를볼수있다. 아래테스트를통해그성능차이를비교해보자 기술백서 White Paper
11 Array Processing 을활용하여 Insert 하는 Procedure Source - P_BULK_INSERT_TEST1 CREATE OR REPLACE PROCEDURE P_BULK_INSERT_TEST1 IS CURSOR sales_cur IS SELECT PROD_ID, CUST_ID, TIME_ID, CHANNEL_ID, PROMO_ID, QUANTITY_SOLD, AMOUNT_SOLD FROM SH.SALES; TYPE SALES_TBL_TYPE IS TABLE OF sales_cur%rowtype INDEX BY BINARY_INTEGER; SALES_TBL SALES_TBL_TYPE; BEGIN OPEN sales_cur; LOOP FETCH sales_cur BULK COLLECT INTO sales_tbl LIMIT 1000; -- PGA 소모를작게유지하기위해 1000 건씩만처리 FOR i IN sales_tbl.first..sales_tbl.last LOOP --각종계산은여기에서 sales_tbl(i).amount_sold := sales_tbl(i).amount_sold * 1.5; END LOOP; -- FETCH 된 1000 건을 SQL 1 회수행으로처리 FORALL i IN sales_tbl.first..sales_tbl.last INSERT INTO SALES2 VALUES (sales_tbl(i).prod_id, sales_tbl(i).cust_id, sales_tbl(i).time_id, sales_tbl(i).channel_id, sales_tbl(i).promo_id, sales_tbl(i).quantity_sold, sales_tbl(i).amount_sold ); EXIT WHEN sales_cur%notfound; END LOOP; CLOSE sales_cur; COMMIT; EXCEPTION Part 1 ORACLE 105
12 WHEN OTHERS THEN ROLLBACK; RAISE_APPLICATION_ERROR(-20001,'RAISE_APPLICATION_ERROR : ' SQLCODE ':' SUBSTR(SQLERRM,1,200)); END; / 건건이 Loop 를통해 Insert 하는 Procedure Source - P_BULK_INSERT_TEST2 CREATE OR REPLACE PROCEDURE P_BULK_INSERT_TEST2 IS CURSOR sales_cur IS SELECT PROD_ID, CUST_ID, TIME_ID, CHANNEL_ID, PROMO_ID, QUANTITY_SOLD, AMOUNT_SOLD FROM SH.SALES; TYPE SALES_TBL_TYPE IS TABLE OF sales_cur%rowtype INDEX BY BINARY_INTEGER; SALES_TBL SALES_TBL_TYPE; BEGIN OPEN sales_cur; LOOP FETCH sales_cur BULK COLLECT INTO sales_tbl LIMIT 1000; -- PGA 소모를작게유지하기위해 1000 건씩만처리 FOR i IN sales_tbl.first..sales_tbl.last LOOP --각종계산은여기에서 sales_tbl(i).amount_sold := sales_tbl(i).amount_sold * 1.5; END LOOP; -- LOOP 를사용하는방법 ; INSERT SQL 1000 번수행 FOR i IN sales_tbl.first..sales_tbl.last LOOP -- FORALL 예약어배제 INSERT INTO SALES2 VALUES (sales_tbl(i).prod_id, sales_tbl(i).cust_id, sales_tbl(i).time_id, sales_tbl(i).channel_id, sales_tbl(i).promo_id, sales_tbl(i).quantity_sold, sales_tbl(i).amount_sold ); 기술백서 White Paper
13 END LOOP; EXIT WHEN sales_cur%notfound; END LOOP; CLOSE sales_cur; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; RAISE_APPLICATION_ERROR(-20001,'RAISE_APPLICATION_ERROR : ' SQLCODE ':' SUBSTR(SQLERRM,1,200)); END; / P_BULK_INSERT_TEST2 Vs. P_BULK_INSERT_TEST2 SQL> exec P_BULK_INSERT_TEST1; PL/SQL 처리가정상적으로완료되었습니다. 경과 : 00:00:02.20 SQL> SQL> SQL> exec P_BULK_INSERT_TEST2; PL/SQL 처리가정상적으로완료되었습니다. 경과 : 00:00:35.08 참고 : Array Processing 을활용한 Update Procedure Source CREATE OR REPLACE PROCEDURE P_BULK_INSERT_TEST2 IS CURSOR sales_cur IS SELECT PROD_ID, CUST_ID, TIME_ID, CHANNEL_ID, PROMO_ID, QUANTITY_SOLD, AMOUNT_SOLD FROM SH.SALES; Part 1 ORACLE 107
14 TYPE SALES_TBL_TYPE IS TABLE OF sales_cur%rowtype INDEX BY BINARY_INTEGER; SALES_TBL SALES_TBL_TYPE; BEGIN OPEN sales_cur; LOOP FETCH sales_cur BULK COLLECT INTO sales_tbl LIMIT 1000; -- PGA 소모를작게유지하기위해 1000 건씩만처리 FOR i IN sales_tbl.first..sales_tbl.last LOOP --각종계산은여기에서 sales_tbl(i).amount_sold := sales_tbl(i).amount_sold * 1.5; END LOOP; -- UPDATE / DELETE 도가능 FORALL i IN sales_tbl.first..sales_tbl.last UPDATE SALES SET AMOUNT_SOLD = sales_tbl(i).amount_sold WHERE PROD_ID = sales_tbl(i).prod_id AND CUST_ID = sales_tbl(i).cust_id AND TIME_ID = sales_tbl(i).time_id AND CHANNEL_ID = sales_tbl(i).channel_id AND PROMO_ID = sales_tbl(i).promo_id; EXIT WHEN sales_cur%notfound; END LOOP; CLOSE sales_cur; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; RAISE_APPLICATION_ERROR(-20001,'RAISE_APPLICATION_ERROR : ' SQLCODE ':' SUBSTR(SQLERRM,1,200)); END; / 기술백서 White Paper
15 또다른난관 앞서소개한방법들의적용이가능하다면대량의 DML 작업에대한성능개선 Process 를가져갈 수있을것이다. 그러나또하나의극복해야할난관이아직기다리고있다. 이는 Partition Table 로의변경이필요한부분에해당하는것으로방대한양의데이터를저장하 고있는기존테이블을 Partition Table 로변경하는작업이만만치않다는것이다. 일정시간 Offline 이가능하다고하면변경작업을시도해볼수도있겠으나, 항상서비스가되어 야하는환경에서 Partition Table 로변경해야한다고권고한다면, 원론적으로는옳다고할수 있을지라도실무를담당하고있는 DBA 에게는큰당혹감만을안겨주는결과를낳을수있다. 하지만이어려워보이는문제도극복할수있는방법이있다. 이는바로 Partition Exchange( 이하 PE) 기능을이용하는것이다. PE 기능은말그대로일반테이블을 Partition Table 로의변경이가능함을의미한다. 또한, 추가적인공간도필요없어상당히효율적인방법으로 Partition Table 로의전환을이룰수있다. 아래테스트는 PE 기능을활용하여일반테이블을 Partition Table 로의손쉬운전환이가능함 을증명해준다. 기존에사용하던일반테이블 : Partition_test2 : Delete 테스트의테이블생성스크립트와데이터입력스크립트참조 Partition Table 로전환할 Partition Table 생성 CREATE TABLE partition_test (TIME_ID DATE, DAY_NAME VARCHAR2(9), DAY_NUMBER_IN_WEEK NUMBER(1,0), DAY_NUMBER_IN_MONTH NUMBER(2,0), CALENDAR_WEEK_NUMBER NUMBER(2,0), FISCAL_WEEK_NUMBER NUMBER(2,0), WEEK_ENDING_DAY DATE, WEEK_ENDING_DAY_ID NUMBER, CALENDAR_MONTH_NUMBER NUMBER(2,0), FISCAL_MONTH_NUMBER NUMBER(2,0), CALENDAR_MONTH_DESC VARCHAR2(8), Part 1 ORACLE 109
16 CALENDAR_MONTH_ID NUMBER, FISCAL_MONTH_DESC VARCHAR2(8), FISCAL_MONTH_ID NUMBER, DAYS_IN_CAL_MONTH NUMBER, DAYS_IN_FIS_MONTH NUMBER, END_OF_CAL_MONTH DATE, END_OF_FIS_MONTH DATE, CALENDAR_MONTH_NAME VARCHAR2(9), FISCAL_MONTH_NAME VARCHAR2(9), CALENDAR_QUARTER_DESC CHAR(7), CALENDAR_QUARTER_ID NUMBER, FISCAL_QUARTER_DESC CHAR(7), FISCAL_QUARTER_ID NUMBER, DAYS_IN_CAL_QUARTER NUMBER, DAYS_IN_FIS_QUARTER NUMBER, END_OF_CAL_QUARTER DATE, END_OF_FIS_QUARTER DATE, CALENDAR_QUARTER_NUMBER NUMBER(1,0), FISCAL_QUARTER_NUMBER NUMBER(1,0), CALENDAR_YEAR NUMBER(4,0), CALENDAR_YEAR_ID NUMBER, FISCAL_YEAR NUMBER(4,0), FISCAL_YEAR_ID NUMBER, DAYS_IN_CAL_YEAR NUMBER, DAYS_IN_FIS_YEAR NUMBER, END_OF_CAL_YEAR DATE, END_OF_FIS_YEAR DATE ) PARTITION BY RANGE( time_id )( PARTITION part1 VALUES less than (to_date(' ','yyyy-mm-dd')) ); -- Partiton Table 로전환될테이블의 Max 값을입력 Partition Exchange 수행 SQL> ALTER TABLE partition_test exchange partition part1 WITH TABLE partition_test2 without validation ; 테이블이변경되었습니다. 경과 : 00:00:00.03 기존테이블삭제후 Rename 기술백서 White Paper
17 SQL> DROP TABLE partition_test2; 테이블이삭제되었습니다. 경과 : 00:00:00.06 SQL> RENAME partition_test to partition_test2; 테이블이름이변경되었습니다. 경과 : 00:00:00.03 위와같이수행하면기존의테이블은간단히 Partition Table 로변경할수있음을알수있다. 다 만주의할점은기존일반테이블에서가지고있던제약조건 (Primary Key) 이나 Index 구성은 모두동일하게생성하여야정상적인 PE 수행이가능하다. 결론 앞서소개한대량의 DML 작업의성능을개선하는방법은테이블의구조자체를변경하거나발생가능한 redo 의양을최대한감소시키는방법그리고 Index 의구조변경과 Drop 등으로정리할수있다. 하지만이러한방법은자칫실무를담당하는 DBA 에게는그저뜬구름잡는이야기에불과할수있다. 머리로는충분히이해하고공감할수있는좋은방법을제시하였다하더라도현실에적용할수없다면그공허함은더큰무게로다가올것이다. 하지만위에소개한내용들은실질적으로적용할수있고또한적용한사례가있다. 물론업무의 성격에따라수학공식처럼항상같은방식으로대입하여적용할수있는것은아니지만, 그환 경에맞는솔루션은항상존재한다고믿는다. 비현실적이라고치부해버리는순간성능개선의여지는요원해진다. 위의내용들의핵심을잘정 리하고있다면해당하는상황에대해여러가지성능개선아이디어를제시할수있고, 그중가장 손쉽게적용할수있는방법을협의를통해찾을수있을것이다. 대량의 DML 작업성능개선과시스템의 Down Time 최소화라는두마리토끼를잡는것은것은 어렵지만은않다. Part 1 ORACLE 111
歯sql_tuning2
SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1
More informationResult Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER
Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.
More information13주-14주proc.PDF
12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float
More informationBind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터
Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL
More informationWINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역
WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,
More informationORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들
ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들이나타나고있다. 이러한문제점들을해결하고자 ORACLE 에서는 EXADATA 라는시스템을통해스토리지공간부족현상과데이터처리성능을향상시키고자하였다.
More informationCommit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따
Commit Wait Class 대기시간감소방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 Wait Class 중 Commit 카테고리에해당하는 Wait Event 에의한대기현상으로 DB 시스템의성능저하현상이발생하는것은종종경험할수있다. 그중대표적인 Wait Event 는 Log File Sync 이다. 실제로대부분의 DB 시스템의 Top 5 Wait Event
More information90
89 3 차원공간질의를위한효율적인위상학적데이터모델의검증 Validation of Efficient Topological Data Model for 3D Spatial Queries Seokho Lee Jiyeong Lee 요약 키워드 Abstract Keywords 90 91 92 93 94 95 96 -- 3D Brep adjacency_ordering DECLARE
More information10.ppt
: SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL
More information목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More information목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE
ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....
More informationMS-SQL SERVER 대비 기능
Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT
More information기술노트 49 회 SQL PLAN MANAGEMENT Author 윤병길과장 Creation Date Last Updated Version 1.0 Copyright(C) 2009 Goodus Inc. All Rights Reserved
기술노트 49 회 SQL PLAN MANAGEMENT Author 윤병길과장 Creation Date 2010-06-01 Last Updated Version 1.0 Copyright(C) 2009 Goodus Inc. All Rights Reserved Contents 1. SQL PLAN MANAGEMENT OVERVIEW... 3 1.1. INTRODUCTION...
More information배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (
배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 이후배치프로그램 ) 에대한성능문제를파악하기위해수행되는모든 SQL 에대한개별수행내역을정확히판단할수있어야한다.
More informationSQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )
SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 ) 이많기때문에, 실행계획생성시 SQL 의 Cost 를잘못계산하여최적의실행계획을세우지못하는경우가발생한다.
More informationORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O
Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration
More informationPowerPoint 프레젠테이션
Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING
More information원장 차세대 필요성 검토
1. Application Architecture Layered Application 개념 Layered Application 개념도 구분 Presentation Layer Business Layer Data Layer Data Sources 내용설명 Business Layer 와 User 간 Interface 제공 Business Logic 구현 Data
More informationInsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins
Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.
More informationDBMS & SQL Server Installation Database Laboratory
DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.
More informationMicrosoft PowerPoint - 10Àå.ppt
10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어
More informationPowerPoint Presentation
Server I/O utilization System I/O utilization V$FILESTAT V$DATAFILE Data files Statspack Performance tools TABLESPACE FILE_NAME PHYRDS PHYBLKRD READTIM PHYWRTS PHYBLKWRT WRITETIM ------------- -----------------------
More informationMicrosoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc
특정 Column 통계정보갱신가이드 유니원아이앤씨 DB 사업부이대혁 2015 년 03 월 02 일 문서정보프로젝트명서브시스템명 버전 1.0 문서명 특정 Column 통계정보갱신가이드 작성일 2015-03-02 작성자 DB사업부이대혁사원 최종수정일 2015-03-02 문서번호 UNIONE-201503021500-LDH 재개정이력 일자내용수정인버전 문서배포이력
More informationALTIBASE HDB Patch Notes
ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 9 장인덱스를배웁니다 1 1. 인덱스란무엇인가? 2 - ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ----------
More informationuntitled
(shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More information1. 들어가며 많은기업들이정보시스템의근간으로데이터베이스를사용하고있고또많은사람들이데이터베이스의성능에대해불만을토로한다. 데이터베이스의성능문제와관련해많은원인과해결책이있지만이문제와관련해자주언급되는개념이있다. Hard Parsing 이그것이다. Hard Parsing 은성능에좋
Hard Parsing 에따른성능문제와효과적인 SQL 작성법 SpeedGate Consulting 김철각 1. 들어가며 많은기업들이정보시스템의근간으로데이터베이스를사용하고있고또많은사람들이데이터베이스의성능에대해불만을토로한다. 데이터베이스의성능문제와관련해많은원인과해결책이있지만이문제와관련해자주언급되는개념이있다. Hard Parsing 이그것이다. Hard Parsing
More information@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a
1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL
More informationuntitled
PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0
More information最即時的Sybase ASE Server資料庫診斷工具
TOAD 9.5 Toad Oracle 料 SQL 料 行 理 SQLprofile Quest Software 了 Oracle -Toad Tools of Oracle Application Developers Toad 了 DBA DBA 理 易 度 Toad 料 SQL PL/SQL Toad Oracle PL/SQL Toad Schema Browser Schema Browser
More information목 차
Oracle 9i Admim 1. Oracle RDBMS 1.1 (System Global Area:SGA) 1.1.1 (Shared Pool) 1.1.2 (Database Buffer Cache) 1.1.3 (Redo Log Buffer) 1.1.4 Java Pool Large Pool 1.2 Program Global Area (PGA) 1.3 Oracle
More information<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63>
Reviewed by Oracle Certified Master Korea Community ( http:www.ocmkorea.com http:cafe.daum.netoraclemanager ) 1.1.1 파티션테이블에서사용할수있는리오그방법파티션 level 의 importexport 방법을이용해파티션테이블중특정파티션 ( 혹은서브파티션 ) 만을선택적으로리오그할수있다.
More informationMySQL-.. 1
MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition
More information문서 템플릿
HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,
More informationTablespace On-Offline 테이블스페이스 온라인/오프라인
2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가
More informationConnection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET
135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양핚예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 10 장 view 를배웁니다 1 - View 란가상의테이블이다! 2 1. 단순 View (Simple View) SCOTT>CONN / AS SYSDBA; SYS>GRANT CREATE VIEW TO scott ; CREATE [OR REPLACE] [ FORCE NOFORCE] VIEW view
More information6장. SQL
학습목표 SQL이 무엇인지 개념을 설명 테이블을 생성, 변경, 제거할 할 수 있다. 수 있다. 데이터를 검색, 갱신, 삽입, 삭 제할 수 있다. 뷰, 시스템 카탈로그, 저장 프 로시저, 트리거에 대한 개념 을 설명할 수 있다. 2 목차 SECTION 01 SQL의 개요 11 SQL의 역사 12 SQL의 유형별 종류 SECTION 0 21 스키마 22 테이블
More informationPowerPoint 프레젠테이션
Spider For MySQL 실전사용기 피망플러스유닛최윤묵 Spider For MySQL Data Sharding By Spider Storage Engine http://spiderformysql.com/ 성능 8 만 / 분 X 4 대 32 만 / 분 많은 DB 중에왜 spider 를? Source: 클라우드컴퓨팅구 선택의기로 Consistency RDBMS
More informationOracle Database 10g: Self-Managing Database DB TSC
Oracle Database 10g: Self-Managing Database DB TSC Agenda Overview System Resource Application & SQL Storage Space Backup & Recovery ½ Cost ? 6% 12 % 6% 6% 55% : IOUG 2001 DBA Survey ? 6% & 12 % 6% 6%
More informationSQL Tuning Business Development DB
SQL Tuning Business Development DB Oracle Optimizer 4.1 Optimizer SQL SQL.. SQL Optimizer :.. Rule-Based Optimization (RBO), Cost-Based Optimization (CBO) SQL Optimizer SQL Query Parser Dictionary Rule-Based
More informationJerry Held
,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan I/O Index Scan ROWID I/O Fast Full Index Scan scan scan scan I/O scan scan Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse
More information윈도우시스템프로그래밍
데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationePapyrus PDF Document
Goodus 기술노트 [38 회 ] Author 윤병길, 이은정 Creation Date 2009-02-27 Last Updated Version 1.0 Copyright(C) 2004 Goodus Inc. All Rights Reserved Version 변경일자변경자 ( 작성자 ) 주요내용 1 2009-02-27 윤병길, 이은정문서최초작성 Contents
More information슬라이드 1
17.1 데이터베이스트리거 17.2 DML 트리거 17.3 DML 트리거작성 17.4 DML 트리거관리 17.5 INSTEAD OF 트리거 17.6 NON-DML 트리거 17.1 데이터베이스트리거 데이터베이스트리거 (database trigger) 테이블에어떤조작이가해졌을때에미리지정해놓은처리를자동으로실행시키는블록 PL/SQL 블록으로작성, 오라클데이터베이스에저장
More informationMicrosoft PowerPoint - Oracle Data Access Pattern.ppt
Special Key Note Oracle Data Access Pattern ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1 What is Data Access Pattern? > 데이터를 I/O 하는방식 Index Scan Full Table Scan Rowid 2 Why is The Pattern Important? >SQL 의성능을좌지우지함. >SQL
More informationSQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을
SQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을통해서수행된다. 데이터베이스운영시평소잘수행되던 SQL 이성능이슈를발생시키는때가있는데, 그원인이
More informationETL_project_best_practice1.ppt
ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication
More informationKEEP BUFFER 활용방안 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 Oracle 은유저가요청한작업을빠르게처리하기위해 Buffer Cache 라는것을사용한다. Buffer Cache 는 SGA 에위치하고있으며, 오라클인스턴스에접속하는모든프로세스에의해공유된다. 이 Bu
KEEP BUFFER 활용방안 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 Oracle 은유저가요청한작업을빠르게처리하기위해 Buffer Cache 라는것을사용한다. Buffer Cache 는 SGA 에위치하고있으며, 오라클인스턴스에접속하는모든프로세스에의해공유된다. 이 Buffer Cache 는오라클 I/O 관리의핵심으로자주사용하는데이터파일의블록들을메모리에상주시킴으로써물리적인
More information결과보고서
오픈 소스 데이터베이스 시스템을 이용한 플래시 메모리 SSD 기반의 질의 최적화 기법 연구 A Study on Flash-based Query Optimizing in PostgreSQL 황다솜 1) ㆍ안미진 1) ㆍ이혜지 1) ㆍ김지민 2) ㆍ정세희 2) ㆍ이임경 3) ㆍ차시언 3) 성균관대학교 정보통신대학 1) ㆍ시흥매화고등학교 2) ㆍ용화여자고등학교 3)
More information3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT
3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)
More informationPowerPoint 프레젠테이션
MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령
More informationNLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해,
NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해, 사용자들이큰혼란을겪기는경우도발생된다. 그 대표적인예로는 GROUP BY 가 SORT GROUP
More informationThe Self-Managing Database : Automatic Health Monitoring and Alerting
The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG
More informationPRO1_09E [읽기 전용]
Siemens AG 1999 All rights reserved File: PRO1_09E1 Information and - ( ) 2 3 4 5 Monitor/Modify Variables" 6 7 8 9 10 11 CPU 12 Stop 13 (Forcing) 14 (1) 15 (2) 16 : 17 : Stop 18 : 19 : (Forcing) 20 :
More informationMicrosoft Word - SQL튜닝_실습교재_.doc
* 실습환경 * 1. 오라클데이터베이스의튜닝실습을하기위해서는기본적인테이블과데이터가필요합니다. 다음과같은절차에의해환경설정을하십시오. 1) 강사가제공하는 Export 된파일 (scott.dmp) 을자신의 ORACLE 경로에저장하십시오. [C: ] cd C: ORACLE ORA92 BIN [C: ] dir scott.dmp scott.dmp 2) SYSTEM 사용자로접속하여
More informationTITLE
CSED421 Database Systems Lab MySQL Basic Syntax SQL DML & DDL Data Manipulation Language SELECT UPDATE DELETE INSERT INTO Data Definition Language CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE
More information초보자를 위한 분산 캐시 활용 전략
초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?
More information목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4
ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]
More informationMicrosoft Word - PLSQL.doc
PL/SQL 2008 DB system and programming 보충자료 PL/SQL의실행절 BEGIN 절에서의몇가지규칙 - 실행문은여러라인에걸쳐사용할수있다. - 변수명의명명규칙은오라클의일반적인명명규칙과동일하다. PL/SQL 블록내에서 SQL 문을사용할때에는컬럼명과같은변수명은피해야한다. - SQL에서와마찬가지로날짜와문자는홑따옴표 ( ) 를사용하여인용하여야한다.
More informationPowerPoint Presentation
6 장 SQL (section 4-6) 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) 2-5 제약조건 SECTION 03 데이터조작어 (DML)
More informationDB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형
DB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형 원리를알아야답이보인다!! SQL 개발자 (Developer) 데이터모델을통해업무를이해하고, SQL 을정확히구사하는능력 DB 성능고도화전문가양성 SQL 전문가 (Professional) 성능을고려한고급 SQL 작성능력 DB 성능고도화핵심원리실습문제 declare l_ 수납금액 number; begin for
More information,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan scan I/O scan Index Scan ROWID scan I/O Fast Full Index Scan scan scan I/O Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse
More informationFlashBackt.ppt
1. Flashback 목적 Flashback 이란? 사용자실수에의한손상된데이터를 Database 의크기와상관없이복구를할수있는기능이다. 이 Flashback 기능은일반적인복구에서우려되는데이터베이스의크기를걱정하지않아도된다. 보통의사용자실수는커다란시스템장애가수반되며, 이를복구하기위해서는많은자원과시간이필요하다. 하지만 9i 에서지원되느 flashback query
More informationOPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 6 장. DML 을배웁니다 1 - SQL 명령어들 DML (Data Manipulation Language) : INSERT( 입력 ), UPDATE( 변경 ), DELETE( 삭제 ), MERGE( 병합 ) DDL (Data Definition Language) : CREATE ( 생성 ), ALTER
More informationMicrosoft PowerPoint Python-DB
순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 데이터베이스 SQLite 데이터베이스 파이썬과데이터베이스연결 순천향대학교컴퓨터공학과 2 데이터베이스 (Database) 소개 데이터베이스 DBMS (DataBase Management System) 이라고도함 대용량의데이터를매우효율적으로처리하고저장하는기술 SQLite, 오라클, MySQL 등이있음
More information<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>
제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요
More information그리고.. 엑셀에하나둘완료된쿼리가늘어날때마다... 희열을느낀다... 이글을보는당신은어떻게할것인가? A 군의판단이잘못된것인가? 잘못된판단이아니다최선의판단이다... 11g 전까지는... 11g New Feature 인 Pending Statistics 를 SPA 와함께사용
SPA(SQL Performance Analyze) 를이용한통계정보 수집 엑셈컨설팅본부 /DB 컨설팅팀오경렬 1. SPA 란? SPA(SQL Performance Analyze) 는 RAT(Real Application Testing) 서비스의옵션중에하나 이다. 본문서는 SPA 를이용해좀더안정적으로통계정보를생성하는 Process 에대해다룬다. 2. 통계정보와
More informationI T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r
I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r -------------------------------------------------------------------- -- 1. : ts_cre_bonsa.sql -- 2. :
More information윈도우시스템프로그래밍
데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationData Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager
Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1
More information6주차.key
6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running
More informationALTIBASE HDB Patch Notes
ALTIBASE HDB 5.3.3.93 Patch Notes Table of Contents BUG-27950 ALL PRIVILEGES 권한을가진계정이다른계정의테이블에 Foreign Key 를 생성하지못한다. 3 BUG-38105 PASSWORD_LIFE_TIME 경과후유예기간 (PASSWORD_GRACE_TIME) 내에 접속을시도할경우알림메시지를발생해야한다.
More informationIntra_DW_Ch4.PDF
The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology
More information윈백및업그레이드 Tibero Flashback 가이드
Tibero Flashback 가이드 2014. 05. 09. 목차 1. FLASHBACK 소개... 3 1.1. Flashback 개요... 3 1.2. Flashback 기능... 3 2. FLASHBACK 기능... 3 2.1. FLASHBACK QUERY... 3 2.1.1. FLASHBACK QUERY 개요... 3 2.1.2. FLASHBACK QUERY
More information5장 SQL 언어 Part II
5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT
More informationSQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자
SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전
More information제목을 입력하세요.
1. 4 1.1. SQLGate for Oracle? 4 1.2. 4 1.3. 5 1.4. 7 2. SQLGate for Oracle 9 2.1. 9 2.2. 10 2.3. 10 2.4. 13 3. SQLGate for Oracle 15 3.1. Connection 15 Connect 15 Multi Connect 17 Disconnect 18 3.2. Query
More informationDW 개요.PDF
Data Warehouse Hammersoftkorea BI Group / DW / 1960 1970 1980 1990 2000 Automating Informating Source : Kelly, The Data Warehousing : The Route to Mass Customization, 1996. -,, Data .,.., /. ...,.,,,.
More informationSimplify your Job Automatic Storage Management DB TSC
Simplify your Job Automatic Storage Management DB TSC 1. DBA Challenges 2. ASM Disk group 3. Mirroring/Striping/Rebalancing 4. Traditional vs. ASM 5. ASM administration 6. ASM Summary Capacity in Terabytes
More informationMySQL-Ch10
10 Chapter.,,.,, MySQL. MySQL mysqld MySQL.,. MySQL. MySQL....,.,..,,.,. UNIX, MySQL. mysqladm mysqlgrp. MySQL 608 MySQL(2/e) Chapter 10 MySQL. 10.1 (,, ). UNIX MySQL, /usr/local/mysql/var, /usr/local/mysql/data,
More information62
2 instance database physical storage 2 1 62 63 tablespace datafiles 2 2 64 1 2 logical view control files datafiles redo log files 65 2 3 9i OMF Oracle Managed Files, OMF 9i 9i / / OMF 9i 66 8 1MB 8 10MB
More informationthesis
( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype
More informationMicrosoft Word - 05_SUBPROGRAM.doc
ORACLE SUBPROGRAM INTRODUCTION PLSQL 은오라클에서제공하는프로그래밍언어이다. 이는데이터베이스언어인 SQL 과함께효과적으로데이터베이스에접근할수있는방법을제공하고있다. Procedural LanguageSQL 의약자에서볼수있듯이절차적인기능을기본적으로가지는프로그래밍언어이다. PLSQL 은기본적으로블록 (BLOCK) 구조를가지고있다. 블록의기본적인구성은선언부
More informationPowerPoint Presentation
FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files
More informationSlide 1
Oracle Database 11gR2 의장점과 Real Application Testing 을활용한업그레이드베스트프랙티스 권희용 Principal Database Sales Consultant Database Technology, Technology Sales Consulting, Oracle Korea Oracle
More informationMicrosoft Word - 04_EXCEPTION.doc
ORACLE EXCEPTION INTRODUCTION PLSQL 블록이 PARSE 되는동안에발생되는에러를컴파일에러 (Compilation Error) 라고부르며, PLSQL 블록이실행되는동안에발생되는에러를런타임에러 (Run-Time Error) 라고부르는데, 이런타임에러를오라클에서는예외 (Exception) 라고부른다. 오라클의예외 (Exception) 는크게두가지로구분된다.
More informationÆí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š
솔루션 2006 454 2006 455 2006 456 2006 457 2006 458 2006 459 2006 460 솔루션 2006 462 2006 463 2006 464 2006 465 2006 466 솔루션 2006 468 2006 469 2006 470 2006 471 2006 472 2006 473 2006 474 2006 475 2006 476
More information歯PLSQL10.PDF
10 - SQL*Pl u s Pl / SQL - SQL*P lus 10-1 1 0.1 PL/ SQL SQL*Pl u s. SQL*P lus 10-2 1 0.2 S QL* Pl u s PL/ S QL SQL*Pl u s, Pl / SQL. - PL/ SQL (i npu t ), (s t or e ), (r un). - PL/ SQL s cr i pt,,. -
More informationALTIBASE HDB Patch Notes
ALTIBASE HDB 6.3.1.10.6 Patch Notes 목차 BUG-45060 offline replication start 와 replication drop 을동시에수행하는경우, replication start 가완료되지않았으면 replication drop 을수행하지못하도록수정하였습니다... 4 BUG-46193 메모리테이블의이중화병렬 sync
More information단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT
Study Room Doc.03 : SQLD 예상문제 ( 단답형 ) 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 26,25,24,21 회기출문제를바탕으로작성 작성자 : 월야루 도움 : 빙수민외카페댓글 2017-11-30 단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL
More information쉽게 풀어쓴 C 프로그래밊
Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.
More informationK7VT2_QIG_v3
1......... 2 3..\ 4 5 [R] : Enter Raid setup utility 6 Press[A]keytocreateRAID RAID Type: JBOD RAID 0 RAID 1: 2 7 " RAID 0 Auto Create Manual Create: 2 RAID 0 Block Size: 16K 32K
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationPowerPoint Presentation
6 장 SQL 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) SECTION 03 데이터조작어 (DML) 3-1 데이터검색 (SELECT)
More informationRemote UI Guide
Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................
More informationJerry Held
DB / TSC Oracle Database 10g (Self-Managing Database) (Common Infrastructure) (Automatic Workload Repository) (Server-generated Alerts) (Automated Maintenance Tasks) (Advisory Framework) (ADDM) (Self-Managing
More informationSpring Boot/JDBC JdbcTemplate/CRUD 예제
Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.
More information