본문 바로가기

Programming/SQL

대용량 테이블 삭제 방법

Edit

대용량 테이블 삭제 방법

목적

  • TMAXSOFT의 티베로 환경 ( 오라클과 유사 ) 에서 실시간으로 업데이트 되고 있는 대용량 테이블의 부분 삭제

문제

  • 더이상 테이블 스페이스를 증설할 수 없다.
  • 운영(실시간 업데이트)을 중단할 수 없다.
  • 해당 TABLE에 DATE 컬럼으로 조건을 걸어 SELECT 하거나 DELETE 하면 시스텡에 부하가 걸린다.
  • DB관련 나의 지식이 짧다.

첫번째 시도

그냥 가장 심플한 방법으로 삭제를 시도해 봤다.

DELETE TABLE BIGTABLE 
WHERE REGISTDATE < 20160101000000
-- 여기서 REGISTDATE 컬럼은 CHAR 이다.
  • 첫번째 결론 : 삭제 쿼리가 도는 도중 시스템에 부하가 걸려 시스템이 제대로 작동하지 않는 문제가 생겼다.
  • 추정 원인 : 대량으로 delete 하면 롤백 세그먼트를(Undo) 상당히 많이 먹습니다. 또한 리두로그도 많이 나오게 되겠죠. 이게 퍼포먼스를 꽤 잡아먹을 수 있습니다. 따라서 리두로그는 충분히 크게 설정하여서 너무자주 체크포인트가 발생하지 않도록 신경써주셔야합니다
  • 출처 : DATABASESARANG.NET 김주현님 댓글

두번째 시도

복제 테이블 생성 후 기존 테이블을 삭제 하고 복제 테이블 명을 기존 테이블 명으로 변경 하는 방법을 시도해 봤다.
DML(데이터 조작 언어) 이 아닌 DDL(데이터 정의 언어) 을 사용하면 log 가 남지 않으니 부하가 적고 빠르다고 하더라…

CREATE TABLE TEMPBIGTABLE
AS SELECT * FROM BIGTABLE WHERE 1=2
-- 조건에 1=2 와 같이 맞이 않는 조건을 넣으면 ROWS(데이터) 를 제외한 테이블 복사가 이루어진다.

CREATE TABLE TEMPBIGTABLE
AS SELECT * FROM BIGTABLE WHERE REGISTDATE > 20160101000000
-- 남겨야 할 데이터와 함께 테이블을 복사 및 생성 한다.
  • 두번째 결론 : 테이블 생성에 성공은 하였으나 NOT NULL외 제약조건과 인덱스는 함께 생성되지 않았다.
  • 결론의 결론 : DDL을 추출 해야 한다. 즉, Tibero Admin (토드 같은 툴) 에서 해당 테이블을 Export 해야 한다.
  • 결론의 결론의 결론 : Export 하여 추출하는 과정에 인코딩 문제가 있는지 부분적으로 글자 깨짐이 생겼고 해당 쿼리는 당연히 돌아가지 않았다.

세번째 시도

마음은 급하고 답은 안나와서 그 외에 용량을 차지하지만 테이블 데이터 전체 삭제가 가능한 테이블을 찾아 삭제 하였다.

DELETE TABLE ANOTHERBIGTABLE
-- 이런식으로 하면 시간이 매우 오래 걸린다.

TRUNCATE TABLE ANOTHERBIGTABLE
-- 요렇게 하면 빠르게 삭제가 가능하다.
  • 세번째 결론 : 임시로 한 방법이라 해결했다고 볼 수는 없다 but 공간 확보는 성공 했다.

아직 못해본 시도

분명 방법은 있을거라 생각해서 구글링 하다 나온 아직 시도해보지 못한 방법을 몇가지 링크로 걸어봤다.

  • Database Sync : PL/SQL 을 이용하여 데이터를 삭제하는 가운데 commit 이 실행 되도록 하는 방법이 나와있다.
  • Ecyclone : 다양한 방법과 자세한 설명이 있다.

마치며…

임시 방편으로 해결은 했으나 결론이 난것은 아니라 계속 방법을 찾아보고 결론이 나온다면 그 방법을 포스팅 하겠다.
나름 여러 지인분들께 묻고 방법을 찾아봤으나 뚜렷한 방법은 나오지 않았으며…
빨리 티베로에서 한분 오셔서 월별로 파티션 분할 좀 시켜주시고 방법도 상세히 알려주시면 좋겠다.

%23%23%23%uB300%uC6A9%uB7C9%20%uD14C%uC774%uBE14%20%uC0AD%uC81C%20%uBC29%uBC95%0A%0A%3E%20**%uBAA9%uC801**%20%0A%3E%20-%20TMAXSOFT%uC758%20%uD2F0%uBCA0%uB85C%20%uD658%uACBD%20%28%20%uC624%uB77C%uD074%uACFC%20%uC720%uC0AC%20%29%20%uC5D0%uC11C%20%uC2E4%uC2DC%uAC04%uC73C%uB85C%20%uC5C5%uB370%uC774%uD2B8%20%uB418%uACE0%20%uC788%uB294%20%uB300%uC6A9%uB7C9%20%uD14C%uC774%uBE14%uC758%20%uBD80%uBD84%20%uC0AD%uC81C%0A%0A%3E%20**%uBB38%uC81C%20**%0A%3E%20-%20%uB354%uC774%uC0C1%20%uD14C%uC774%uBE14%20%uC2A4%uD398%uC774%uC2A4%uB97C%20%uC99D%uC124%uD560%20%uC218%20%uC5C6%uB2E4.%20%0A%3E%20-%20%uC6B4%uC601%28%uC2E4%uC2DC%uAC04%20%uC5C5%uB370%uC774%uD2B8%29%uC744%20%uC911%uB2E8%uD560%20%uC218%20%uC5C6%uB2E4.%0A%3E%20-%20%uD574%uB2F9%20TABLE%uC5D0%20DATE%20%uCEEC%uB7FC%uC73C%uB85C%20%uC870%uAC74%uC744%20%uAC78%uC5B4%20SELECT%20%uD558%uAC70%uB098%20DELETE%20%uD558%uBA74%20%uC2DC%uC2A4%uD161%uC5D0%20%uBD80%uD558%uAC00%20%uAC78%uB9B0%uB2E4.%0A%3E%20-%20DB%uAD00%uB828%20%uB098%uC758%20%uC9C0%uC2DD%uC774%20%uC9E7%uB2E4.%0A%0A%0A%23%23%23%23%20%uCCAB%uBC88%uC9F8%20%uC2DC%uB3C4%20%0A%uADF8%uB0E5%20%uAC00%uC7A5%20%uC2EC%uD50C%uD55C%20%uBC29%uBC95%uC73C%uB85C%20%uC0AD%uC81C%uB97C%20%uC2DC%uB3C4%uD574%20%uBD24%uB2E4.%0A%60%60%60sql%0ADELETE%20TABLE%20BIGTABLE%20%0AWHERE%20REGISTDATE%20%3C%2020160101000000%0A--%20%uC5EC%uAE30%uC11C%20REGISTDATE%20%uCEEC%uB7FC%uC740%20CHAR%20%uC774%uB2E4.%0A%60%60%60%0A-%20**%uCCAB%uBC88%uC9F8%20%uACB0%uB860%20%3A%20**%20%uC0AD%uC81C%20%uCFFC%uB9AC%uAC00%20%uB3C4%uB294%20%uB3C4%uC911%20%uC2DC%uC2A4%uD15C%uC5D0%20%uBD80%uD558%uAC00%20%uAC78%uB824%20%uC2DC%uC2A4%uD15C%uC774%20%uC81C%uB300%uB85C%20%uC791%uB3D9%uD558%uC9C0%20%uC54A%uB294%20%uBB38%uC81C%uAC00%20%uC0DD%uACBC%uB2E4.%20%0A-%20**%uCD94%uC815%20%uC6D0%uC778%20%3A%20**%20%uB300%uB7C9%uC73C%uB85C%20delete%20%uD558%uBA74%20%uB864%uBC31%20%uC138%uADF8%uBA3C%uD2B8%uB97C%28Undo%29%20%uC0C1%uB2F9%uD788%20%uB9CE%uC774%20%uBA39%uC2B5%uB2C8%uB2E4.%20%uB610%uD55C%20%uB9AC%uB450%uB85C%uADF8%uB3C4%20%uB9CE%uC774%20%uB098%uC624%uAC8C%20%uB418%uACA0%uC8E0.%20%uC774%uAC8C%20%uD37C%uD3EC%uBA3C%uC2A4%uB97C%20%uAF64%20%uC7A1%uC544%uBA39%uC744%20%uC218%20%uC788%uC2B5%uB2C8%uB2E4.%20%uB530%uB77C%uC11C%20%uB9AC%uB450%uB85C%uADF8%uB294%20%uCDA9%uBD84%uD788%20%uD06C%uAC8C%20%uC124%uC815%uD558%uC5EC%uC11C%20%uB108%uBB34%uC790%uC8FC%20%uCCB4%uD06C%uD3EC%uC778%uD2B8%uAC00%20%uBC1C%uC0DD%uD558%uC9C0%20%uC54A%uB3C4%uB85D%20%uC2E0%uACBD%uC368%uC8FC%uC154%uC57C%uD569%uB2C8%uB2E4%20%0A-%20**%uCD9C%uCC98%20%3A%20**%20%5BDATABASESARANG.NET%5D%28http%3A//database.sarang.net/%3Finc%3Dread%26aid%3D21749%26criteria%3Doracle%26subcrit%3D%26id%3D%26limit%3D20%26keyword%3Dora-12154%26page%3D1%29%20%uAE40%uC8FC%uD604%uB2D8%20%uB313%uAE00%0A%0A%23%23%23%23%20%uB450%uBC88%uC9F8%20%uC2DC%uB3C4%20%0A%uBCF5%uC81C%20%uD14C%uC774%uBE14%20%uC0DD%uC131%20%uD6C4%20%uAE30%uC874%20%uD14C%uC774%uBE14%uC744%20%uC0AD%uC81C%20%uD558%uACE0%20%uBCF5%uC81C%20%uD14C%uC774%uBE14%20%uBA85%uC744%20%uAE30%uC874%20%uD14C%uC774%uBE14%20%uBA85%uC73C%uB85C%20%uBCC0%uACBD%20%uD558%uB294%20%uBC29%uBC95%uC744%20%uC2DC%uB3C4%uD574%20%uBD24%uB2E4.%0ADML%28%uB370%uC774%uD130%20%uC870%uC791%20%uC5B8%uC5B4%29%20%uC774%20%uC544%uB2CC%20DDL%28%uB370%uC774%uD130%20%uC815%uC758%20%uC5B8%uC5B4%29%20%uC744%20%uC0AC%uC6A9%uD558%uBA74%20log%20%uAC00%20%uB0A8%uC9C0%20%uC54A%uC73C%uB2C8%20%uBD80%uD558%uAC00%20%uC801%uACE0%20%uBE60%uB974%uB2E4%uACE0%20%uD558%uB354%uB77C...%0A%60%60%60sql%0ACREATE%20TABLE%20TEMPBIGTABLE%0AAS%20SELECT%20*%20FROM%20BIGTABLE%20WHERE%201%3D2%0A--%20%uC870%uAC74%uC5D0%201%3D2%20%uC640%20%uAC19%uC774%20%uB9DE%uC774%20%uC54A%uB294%20%uC870%uAC74%uC744%20%uB123%uC73C%uBA74%20ROWS%28%uB370%uC774%uD130%29%20%uB97C%20%uC81C%uC678%uD55C%20%uD14C%uC774%uBE14%20%uBCF5%uC0AC%uAC00%20%uC774%uB8E8%uC5B4%uC9C4%uB2E4.%0A%0ACREATE%20TABLE%20TEMPBIGTABLE%0AAS%20SELECT%20*%20FROM%20BIGTABLE%20WHERE%20REGISTDATE%20%3E%2020160101000000%0A--%20%uB0A8%uACA8%uC57C%20%uD560%20%uB370%uC774%uD130%uC640%20%uD568%uAED8%20%uD14C%uC774%uBE14%uC744%20%uBCF5%uC0AC%20%uBC0F%20%uC0DD%uC131%20%uD55C%uB2E4.%0A%60%60%60%0A-%20**%uB450%uBC88%uC9F8%20%uACB0%uB860%20%3A%20**%20%uD14C%uC774%uBE14%20%uC0DD%uC131%uC5D0%20%uC131%uACF5%uC740%20%uD558%uC600%uC73C%uB098%20NOT%20NULL%uC678%20%uC81C%uC57D%uC870%uAC74%uACFC%20%uC778%uB371%uC2A4%uB294%20%uD568%uAED8%20%uC0DD%uC131%uB418%uC9C0%20%uC54A%uC558%uB2E4.%0A-%20**%uACB0%uB860%uC758%20%uACB0%uB860%20%3A%20**%20DDL%uC744%20%uCD94%uCD9C%20%uD574%uC57C%20%uD55C%uB2E4.%20%uC989%2C%20Tibero%20Admin%20%28%uD1A0%uB4DC%20%uAC19%uC740%20%uD234%29%20%uC5D0%uC11C%20%uD574%uB2F9%20%uD14C%uC774%uBE14%uC744%20Export%20%uD574%uC57C%20%uD55C%uB2E4.%0A-%20**%uACB0%uB860%uC758%20%uACB0%uB860%uC758%20%uACB0%uB860%20%3A%20**%20Export%20%uD558%uC5EC%20%uCD94%uCD9C%uD558%uB294%20%uACFC%uC815%uC5D0%20%uC778%uCF54%uB529%20%uBB38%uC81C%uAC00%20%uC788%uB294%uC9C0%20%uBD80%uBD84%uC801%uC73C%uB85C%20%uAE00%uC790%20%uAE68%uC9D0%uC774%20%uC0DD%uACBC%uACE0%20%uD574%uB2F9%20%uCFFC%uB9AC%uB294%20%uB2F9%uC5F0%uD788%20%uB3CC%uC544%uAC00%uC9C0%20%uC54A%uC558%uB2E4.%0A%0A%23%23%23%23%20%uC138%uBC88%uC9F8%20%uC2DC%uB3C4%20%0A%uB9C8%uC74C%uC740%20%uAE09%uD558%uACE0%20%uB2F5%uC740%20%uC548%uB098%uC640%uC11C%20%uADF8%20%uC678%uC5D0%20%uC6A9%uB7C9%uC744%20%uCC28%uC9C0%uD558%uC9C0%uB9CC%20%uD14C%uC774%uBE14%20%uB370%uC774%uD130%20%uC804%uCCB4%20%uC0AD%uC81C%uAC00%20%uAC00%uB2A5%uD55C%20%uD14C%uC774%uBE14%uC744%20%uCC3E%uC544%20%uC0AD%uC81C%20%uD558%uC600%uB2E4.%0A%60%60%60sql%0ADELETE%20TABLE%20ANOTHERBIGTABLE%0A--%20%uC774%uB7F0%uC2DD%uC73C%uB85C%20%uD558%uBA74%20%uC2DC%uAC04%uC774%20%uB9E4%uC6B0%20%uC624%uB798%20%uAC78%uB9B0%uB2E4.%20%0A%0ATRUNCATE%20TABLE%20ANOTHERBIGTABLE%0A--%20%uC694%uB807%uAC8C%20%uD558%uBA74%20%uBE60%uB974%uAC8C%20%uC0AD%uC81C%uAC00%20%uAC00%uB2A5%uD558%uB2E4.%0A%60%60%60%0A-%20**%uC138%uBC88%uC9F8%20%uACB0%uB860%20%3A%20**%20%uC784%uC2DC%uB85C%20%uD55C%20%uBC29%uBC95%uC774%uB77C%20%uD574%uACB0%uD588%uB2E4%uACE0%20%uBCFC%20%uC218%uB294%20%uC5C6%uB2E4%20but%20%uACF5%uAC04%20%uD655%uBCF4%uB294%20%uC131%uACF5%20%uD588%uB2E4.%0A%0A%23%23%23%23%20%uC544%uC9C1%20%uBABB%uD574%uBCF8%20%uC2DC%uB3C4%20%0A%uBD84%uBA85%20%uBC29%uBC95%uC740%20%uC788%uC744%uAC70%uB77C%20%uC0DD%uAC01%uD574%uC11C%20%uAD6C%uAE00%uB9C1%20%uD558%uB2E4%20%uB098%uC628%20%uC544%uC9C1%20%uC2DC%uB3C4%uD574%uBCF4%uC9C0%20%uBABB%uD55C%20%uBC29%uBC95%uC744%20%uBA87%uAC00%uC9C0%20%uB9C1%uD06C%uB85C%20%uAC78%uC5B4%uBD24%uB2E4.%0A-%20%5BDatabase%20Sync%5D%28http%3A//datasyncxml.tistory.com/329%29%20%3A%20PL/SQL%20%uC744%20%uC774%uC6A9%uD558%uC5EC%20%uB370%uC774%uD130%uB97C%20%uC0AD%uC81C%uD558%uB294%20%uAC00%uC6B4%uB370%20commit%20%uC774%20%uC2E4%uD589%20%uB418%uB3C4%uB85D%20%uD558%uB294%20%uBC29%uBC95%uC774%20%uB098%uC640%uC788%uB2E4.%0A-%20%5BEcyclone%5D%28http%3A//ecyclone.tistory.com/17%29%20%3A%20%uB2E4%uC591%uD55C%20%uBC29%uBC95%uACFC%20%uC790%uC138%uD55C%20%uC124%uBA85%uC774%20%uC788%uB2E4.%0A%0A%23%23%23%23%20%uB9C8%uCE58%uBA70...%0A%uC784%uC2DC%20%uBC29%uD3B8%uC73C%uB85C%20%uD574%uACB0%uC740%20%uD588%uC73C%uB098%20%uACB0%uB860%uC774%20%uB09C%uAC83%uC740%20%uC544%uB2C8%uB77C%20%uACC4%uC18D%20%uBC29%uBC95%uC744%20%uCC3E%uC544%uBCF4%uACE0%20%uACB0%uB860%uC774%20%uB098%uC628%uB2E4%uBA74%20%uADF8%20%uBC29%uBC95%uC744%20%uD3EC%uC2A4%uD305%20%uD558%uACA0%uB2E4.%0A%uB098%uB984%20%uC5EC%uB7EC%20%uC9C0%uC778%uBD84%uB4E4%uAED8%20%uBB3B%uACE0%20%uBC29%uBC95%uC744%20%uCC3E%uC544%uBD24%uC73C%uB098%20%uB69C%uB837%uD55C%20%uBC29%uBC95%uC740%20%uB098%uC624%uC9C0%20%uC54A%uC558%uC73C%uBA70...%0A%uBE68%uB9AC%20%uD2F0%uBCA0%uB85C%uC5D0%uC11C%20%uD55C%uBD84%20%uC624%uC154%uC11C%20%uC6D4%uBCC4%uB85C%20%uD30C%uD2F0%uC158%20%uBD84%uD560%20%uC880%20%uC2DC%uCF1C%uC8FC%uC2DC%uACE0%20%uBC29%uBC95%uB3C4%20%uC0C1%uC138%uD788%20%uC54C%uB824%uC8FC%uC2DC%uBA74%20%uC88B%uACA0%uB2E4.

'Programming > SQL' 카테고리의 다른 글

9. 연습(3)  (0) 2017.03.11
8. 연습(2)  (0) 2017.03.11
7. 연습(1)  (0) 2017.03.11
6. 실습(4) - SubQuery  (0) 2017.02.28
5. 실습(3) - Join  (0) 2017.02.28