데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

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



현재는 한 테이블에 약 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
10542 mssql 여러버젼이 있고 sequence 를 쓰고 싶을때 jaksal67 2020.02.12 592
10541 쿼리 질문입니다. [2] 희망나라 2020.02.12 775
10540 행열 바꾸기 도와주세요 [2] 세바 2020.01.21 1026
» 대용량 로그테이블 설계 질문드립니다 [3] freighter 2020.01.20 937
10538 그룹별 입력 날짜 기준 최신 데이터 하나씩만 가져오는 법 [2] 잠스 2020.01.13 782
10537 DB서버 shutdown 현상 [2] 정보맨 2020.01.12 924
10536 머리가.. 뿌개질껏 같아요. 돌머리의 한계인가봐요 테이블 열 합치기 [1] 약한심장 2020.01.08 879
10535 쿼리 질문 입니다. [1] 허당 2020.01.07 907
10534 변수에 따라 조건문이 다를 경우 쿼리 [2] 뮤르르 2020.01.02 874
10533 Database Table 설계 관련 [2] 뽀야미 2020.01.02 809
10532 SSMS 쿼리 실행 출력 값이 2012 버전에서 다르게 나오는 현상 [1] 천재sizin 2020.01.01 769
10531 동일 테이블내에 id가 다른데 이름이 같경우 찾는 방법 문의드립니다.. [3] 우꾸무꾸 2019.12.20 690
10530 데이터베이스 복원 문의드립니다. 베로 2019.12.20 709
10529 쿼리 내 맨 뒤 공백 제거 [2] adsd1234 2019.12.17 975
10528 초보가 sql 2008 에서 한글 질문드립니다. [1] 민상리 2019.12.14 807
10527 바인드 변수 조회할 수 있나요?? [1] 세기말텐션 2019.12.13 900
10526 조인하여 가장 많은 값의 수를 도출하는 쿼리 질문있습니다! [2] SULLU 2019.12.08 897
10525 문자열 특정 자릿수마다 문자넣기 [2] 안돼요 2019.12.05 871
10524 쿼리 질문입니다 집계함수 관련 .. [1] 초코송이 2019.12.04 804
10523 SQLServer에서 프로시저로 결과값 텍스트 파일로 받을시 질문있습니다. [2] 우우후 2019.12.03 827





XE Login