1. Kollus 수강 이력 이슈 파악
2. Procedure & DB Status
3. kollus DB 이슈 ASP 파일 내 SQL 문장 검토
1. Kollus 수강 이력 이슈 파악
- 사용자 증가에 따라 동영상 플레이어 끊김 현상 발생.
- 그로인해 수강이력 DB 누락 이슈 발생.
- 수강 이력 DB 갱신 시간 조정(1분 → 3분)
- VOD 강의와 LIVE 강의 때 발생
1-1) DeadLock 발생
- MS-SQL 운영시 프로시저가 동작을 안하고 뻗어버리는 경우가 종종 발생한다.
1-1)-1. 회사 내 DEAD LOCK 처리 상태
- 트랜잭션을 일괄처리로 작은 시간 단위로 유지하기
- 낮은 고립 수준
- READ UNCOMMITED 구문 사용 중
- SELECT 절의 WITH(NOLOCK) 옵션 사용중
1-1)-4. 일반적으로 Lock이 발생할 경우
- 대용량 데이터 처리로 인해 쿼리문의 실행시간이 길어져 오랜 시간 Lock을 잡고 있는 경우
- 트랜잭션을 걸었지만 Commit 또는 Rollback 되지 않은 경우
- 리소스 경합으로 인한 교차
2. Procedure & DB Status
- 회사내 Procedure 구조
- Read UnCommitted 하나만 누락된 경우
- SELECT절의 WITH(NOLOCK) 하나만 누락된 경우
- Read UnCommitted와 SELECT WITH(NOLOCK) 둘 다 누락된 경우
2-1) 특정 단어가 포함된 프로시저 범위 검색으로 찾는 방법
SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id)
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id)
LIKE '%tblLive%'
-
Results

...
2-2) sp_helptext를 이용해 프로시저 출력하기
sp_helptext 'pAdminMyLecHisList'
-
Results(text)


2-3) 실 DB 서버와 개발 DB 서버
- 트랜잭션을 일괄처리로 작은 시간 단위로 유지하기
- 낮은 고립 수준
- READ UNCOMMITED 구문 사용
- SELECT 절의 WITH(NOLOCK) 옵션 사용중
3. kollus DB 이슈 ASP 파일 내 SQL 문장 검토
- ASP 디렉토리 경로 내 WITH(NOLOCK) 구문 누락 부분 코드 수정
- Kollus DB 이슈 ASP 파일 수정 완료.
