안녕하세요 대용량 로그저장용 테이블 수정을하려합니다



현재는 한 테이블에 약 23억 row가 저장되어있고 구조는

CREATE TABLE [dbo].[LOGTABLE](

[idx] [bigint] IDENTITY(1,1) NOT NULL,

[protocol] [smallint] NOT NULL,

[processtick] [int] NOT NULL,

[ItemIDX] [bigint] NOT NULL,

[PlayerIdx] [bigint] NOT NULL,

[Slot] [tinyint] NOT NULL,

[Pos] [tinyint] NOT NULL,

[Type] [int] NOT NULL,

[Count] [smallint] NOT NULL,

[Money] [bigint] NOT NULL,

[OPTION] [tinyint] NOT NULL,

[limited] [tinyint] NOT NULL,

[map] [smallint] NOT NULL,

[x] [int] NOT NULL,

[y] [int] NOT NULL,

[npc] [int] NOT NULL,

[maker] [int] NOT NULL,

[time] [datetime] NOT NULL,

[optOrder] [tinyint] NOT NULL,

[optItemType] [int] NOT NULL,

[optRate] [smallint] NOT NULL,

[ip] [int] NOT NULL,

[mac] [bigint] NOT NULL

) ON [PRIMARY]


인덱스는 idx, time(클러스터) , protocol , ItemIDX , PlayerIdx ,Type, maker에 걸려있습니다


select는 주로  time , PlayerIdx , Type을 조건으로걸고 검색을합니다 



현재는 약 1년어치의 로그가 저장되어있고


이것을 현재시간기점으로 3~4개월어치만 저장되며 해당 기간이 넘어가면 삭제하는 방식으로 수정하려합니다


해당테이블은 INSERT만 하는 A와 SELECT만 하는 B 2가지 프로그램만있는상태이고 INSERT,SELECT 둘다 속도가 나오게하려합니다


INSERT,SELECT,DELETE(3~4개월 유지) 를 하고싶은데 좋은 테이블 설계나 기능들이 있는지 알고싶습니다


가능하면 DELETE는 자동화(SQL Agent 등등)를 하려합니다




로그테이블이 2가지있는데

하나는 현재 작업이안되있고 (작업하려는 테이블)


하나는  매일매일 SQL Agent로 

DECLARE @DATE BIGINT = GETDATE() - 90
DELETE FROM LOGTABLE WHERE TIME < @DATE
방식으로 삭제중인데 해당작업도 오래걸리고(매일 약 1시간반) 인덱스나 파일 파편화?? 등이 생기는거같습니다


혹은 

LOG1910
LOG1911
LOG1912
LOG2001 이렇게 월별로 자동으로 테이블생성하고 해당 월에 해당하는 테이블에만 INSERT하고

SELECT는 VIEW?로 하고서 DELETE를 테이블자체 DROP하는방식도 생각해봤는데 이게 가능한지 잘 모르겠네요

너무 복잡해지고 테이블이 많아지는 문제도있는거같고


뭐 좋은방법이 있을까요

No. Subject Author Date Views
Notice [IT재직자] 개강임박!! 올해 마지막 무료 및 국비지원 교육 (JAVA, 리눅스 기초/고급 , CCNA, CCIE 등) 코난(김대우) 2022.12.02 115
Notice 2022년 11월 SQLER의 강좌 업데이트 리스트 코난(김대우) 2022.12.01 24
Notice 2022 공개SW 페스티벌 - Open Up 코난(김대우) 2022.12.01 15
10553 select 쿼리 결과 속도를 높일수 있는 방법이 있을까요? [1] 냠냠11 2020.03.14 649
10552 프로파일러의 duration 문의 드립니다. [1] compius5 2020.03.13 565
10551 log파일 질문입니다. [2] 희망나라 2020.03.12 594
10550 두테이블간에 인서트 업데이트를 하려고 합니다. [1] 아싸라비아콜롬비아 2020.03.10 650
10549 오라클 쿼리 질문입니다. [1] 정보보안 2020.03.10 566
10548 SQL 백업스케줄러 실행시 나는야 2020.03.09 558
10547 sql agent 에 등록해둔 스케쥴 에러나더라도 강제로 실행할수있는방법은없나요? 쭈우니 2020.03.04 593
10546 매일 새로생성되는 DB에 권한을 부여하는방법 문의드립니다 쭈우니 2020.03.02 585
10545 데이타베이스 연결시 문제점 [2] 희망나라 2020.03.02 627
10544 SP where 문 조건이 변하는 쿼리 나는야 2020.02.24 653
10543 SQL Migration 작업 문의 [2] 이얌 2020.02.20 881
10542 mssql 여러버젼이 있고 sequence 를 쓰고 싶을때 jaksal67 2020.02.12 621
10541 쿼리 질문입니다. [2] 희망나라 2020.02.12 810
10540 행열 바꾸기 도와주세요 [2] 세바 2020.01.21 1074
» 대용량 로그테이블 설계 질문드립니다 [3] freighter 2020.01.20 1627
10538 그룹별 입력 날짜 기준 최신 데이터 하나씩만 가져오는 법 [2] 잠스 2020.01.13 814
10537 DB서버 shutdown 현상 [2] 정보맨 2020.01.12 1018
10536 머리가.. 뿌개질껏 같아요. 돌머리의 한계인가봐요 테이블 열 합치기 [1] 약한심장 2020.01.08 924
10535 쿼리 질문 입니다. [1] 허당 2020.01.07 938
10534 변수에 따라 조건문이 다를 경우 쿼리 [2] 뮤르르 2020.01.02 917





XE Login

테스트 팝업
Close