데이터베이스
[Database] WITH 구문
SQL WITH 구문이란? 필요 시 참조할 수 있는 임시테이블, 가상테이블을 생성하는 구문으로 생각하면 됩니다. 운영 Database에서는 작성한 쿼리에 따라 큰 성능 차이를 보일 정도로 중요합니다. 그 중 성능개선을 해줄 수 있는 WITH 구문에 대해서 알아봅시다. WITH 구문 장점 : 1) 쿼리를 작성하다보면 동일한 쿼리를 반복 사용하는 경우 WITH 구문으로 성능 개선 2) 긴 쿼리 WITH 구문 사용 시 SELECT 에서 가독성을 높일 수 있습니다. 3) 요청 시 저장된 데이터만 처리하면 되므로 I/O 처리량 대폭 감소로 인해 SQL 성능개선 WITH 구문 예시 WITH TEST AS( -- TEST 쿼리작성 SELCT * FROM 테이블 ) , TEST2 AS ( -- 두개 이상의 구문 작성 ..
[MSSQL]데이터베이스가 사용 중이어서 배타적으로 액세스 할 수 없습니다.
MSSQL에서 데이터베이스 복원 도중 아래와 같이 "데이터베이스가 사용 중이어서 배타적으로 액세스 할 수 없다" 라는 메시지 발생 시 아래와 같이 조치합니다. 해당하는 데이터베이스 마우스 우측버튼으로 클릭 후 "데이터 베이스 속성"에 접속합니다. 접속 후 좌측 "옵션" 속성에서 액세스 제한을 "RESTRICETED_USER" 로 설정합니다. 설정이 끝나면 좌측 데이터베이스 옆에는 제한된 사용자라고 표시됩니다. 복원을 다시 시도 할 경우 정상 복원 진행 가능합니다.
[MSSQL] WITH(NOLOCK)이란 ?
MSSQL WITH(NOLOCK)이란 ? WITH(NOLOCK) : 해석하는 그대로 MSSQL에 잠금(LOCK)을 걸지 않는다는 것이다 MSSQL의 잠금은 데이터베이스의 자원을 자신이 사용하고 있으므로 다른 사용자의 엑세스를 제한하는 것을 의미 합니다. 잠금(LOCK)은 왜 필요한가? 데이터의 일관성을 유지하기 위해 필요합니다. 즉 동일한 데이터가 서로 다른 값을 갖지 않도록 하기 않도록 하는 것을 의미합니다. 일관성이 유지되지 않는다면 데이터베이스 자체에 심각한 오류의 요소가 되므로 잠금이 필요합니다. 즉 테이블에 UPDATE나 INSERT, DELECT 등 DML 구문을 사용하고 있을 때 테이블을 SELECT를 하면 구문이 끝날때 까지 대기를 합니다. 하지만 WITH(NOLOCK)을 사용하면 대..
MSSQL과 Oracle의 차이점
저는 Oracle을 사용을 많이 했었는데 MSSQL의 사용이 잦아질 것 같아 Oracle과 MSSQL의 차이점은 무엇이 있을지 알아보았습니다. 우선 Oracle과 MSSQL 모두 대용량 데이터를 다루기 위한 대표적인 데이터베이스입니다. 두 데이터베이스의 차이점은 아래와 같습니다. 1. 데이터베이스의 수 Oracle : 한 서버당 한개의 데이터베이스 생성 mssql : 한 서버당 다수의 데이터베이스 생성이 가능합니다. (멀티 데이터베이스) 2. 데이터 타입 정의 데이터 타입 정의는 숫자,문자,날짜형 총 세가지에서 차이가 있습니다. 2-1 숫자형 MSSQL: 크게 4가지( tinyint > smallint > int > bigint )로 나눠집니다. 정수 범위를 기존에 만들어진 타입을 통해 설정합니다...
[oracle]현재년도 기준 5년 기록 조회
SELECT TO_CHAR(SYSDATE, 'YYYY') - 5 + LEVEL AS YEAR FROM DUAL CONNECT BY LEVEL < 6 LEVEL 뒤 숫자 수정하여 년도 수정 가능합니다.