로그용 테이블을 날짜별로 생성 하고 insert하고 싶습니다.
. 머리속으로 그린 로직은
1. exec Log_Insert 실행
2. 오늘 날짜의 테이블이 있는지 존재 여부
3. 있으면 동적 쿼리(execute)로 그냥 insert
4. 없으면 동적 쿼리로 오늘 날짜로 테이블이름을 만들어서 생성
5. 3번 실행
문제는 모든 사용자 액션에 exec Log_Insert를 실행하는데
오늘 날짜 테이블 존재 여부를 항상 체크해야 하는 부담.
테이블 create와 insert를 동적 쿼리로 짜야 하는 부담
. 좀 더 db부하가 적고, 안전한 코딩이 가능한 방법이 없을까요
Comment 4
-
처리짱
2015.02.12 14:56
저도요 ㅋㅋ 월단위로 생성해야 하는 테이블이 있는데 몇년치 만들어 두네요 ㅎㅎ
-
zza
2015.02.12 15:57
1년에 365 10년 해봐야 3650개니까 미리 싹 만들어놔도 되구요 <== 혁신적인 방법이네여
미처 생각을 못했네여 ㅋㅋ
감사합니다
-
항해자™
2015.02.14 23:54
데이터를 입력받을 테이블을 view 로 만들어주고,,,
매 자정마다 새로 받을 테이블을 만들고 다이나믹 쿼리로 뷰를 alter 해 줍니다,,,,
alter table dbo.tGameLog
as
select * from dbo.tGameLog_201502
go
일단 하시려는 작업이 옳은 방법인지 여부와 상관없이 당면한 문제를 해결하는 방법을 얘기해보겠습니다.
테이블의 존재 여부를 체크하는게 얼마나 부하를 줄지는 모르지만
그게 부담된다면 미리 만들어 놓으면 되죠.
예를 들면 23시 즈음에 Job을 걸고 내일꺼를 미리 만들어버리고 체크 루틴은 없에버리면 되겠네요.
아니면 1년에 365 10년 해봐야 3650개니까 미리 싹 만들어놔도 되구요.
제가 관리하는 FTP에 해당 월 폴더에 파일을 올려야 하는 프로그램이 있었는데
귀찮아서 20년치 정도 폴더를 만들어버렸습니다. ㅎㅎ