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



현재는 한 테이블에 약 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 SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38050
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20666
10543 SQL Migration 작업 문의 [2] 이얌 2020.02.20 973
10542 mssql 여러버젼이 있고 sequence 를 쓰고 싶을때 jaksal67 2020.02.12 687
10541 쿼리 질문입니다. [2] 희망나라 2020.02.12 908
10540 행열 바꾸기 도와주세요 [2] 세바 2020.01.21 1135
» 대용량 로그테이블 설계 질문드립니다 [3] freighter 2020.01.20 2202
10538 그룹별 입력 날짜 기준 최신 데이터 하나씩만 가져오는 법 [2] 잠스 2020.01.13 904
10537 DB서버 shutdown 현상 [2] 정보맨 2020.01.12 1127
10536 머리가.. 뿌개질껏 같아요. 돌머리의 한계인가봐요 테이블 열 합치기 [1] 약한심장 2020.01.08 1023
10535 쿼리 질문 입니다. [1] 허당 2020.01.07 999
10534 변수에 따라 조건문이 다를 경우 쿼리 [2] 뮤르르 2020.01.02 1064
10533 Database Table 설계 관련 [2] 뽀야미 2020.01.02 948
10532 SSMS 쿼리 실행 출력 값이 2012 버전에서 다르게 나오는 현상 [1] 천재sizin 2020.01.01 1023
10531 동일 테이블내에 id가 다른데 이름이 같경우 찾는 방법 문의드립니다.. [3] 우꾸무꾸 2019.12.20 1320
10530 데이터베이스 복원 문의드립니다. 베로 2019.12.20 835
10529 쿼리 내 맨 뒤 공백 제거 [2] adsd1234 2019.12.17 1235
10528 초보가 sql 2008 에서 한글 질문드립니다. [1] 민상리 2019.12.14 925
10527 바인드 변수 조회할 수 있나요?? [1] 세기말텐션 2019.12.13 1214
10526 조인하여 가장 많은 값의 수를 도출하는 쿼리 질문있습니다! [2] SULLU 2019.12.08 1027
10525 문자열 특정 자릿수마다 문자넣기 [2] 안돼요 2019.12.05 1164
10524 쿼리 질문입니다 집계함수 관련 .. [1] 초코송이 2019.12.04 942





XE Login