데이터베이스

디베이·2024-10-22
데이터베이스 직군은 이제 단순히 데이터베이스 관리만으로는 충분하지 않은 시대에 접어들었습니다. 과거에는 Oracle 같은 RDBMS 중심의 데이터베이스 관리자(DBA) 역할만으로도 높은 연봉과 안정성을 보장받을 수 있었지만, IT 환경의 급속한 변화로 인해 이제는 다양한 역량이 요구됩니다. 특히 오픈소스 DB와 클라우드 환경이 보편화되면서 DBA 역할은...
질문인덱스를 타지않는 쿼리
인덱스를 타지 않는 쿼리로 다음과 같은 경우가 있는데 테스트결과 빨간색의 경우에는 확인을 하였습니다. 하지만 초록색의 결과는 실행계획을 확인해보았을 때 인덱스를 타는걸로 보여지는데 왜 그럴까요..? -LIKE ‘%문자열%’로 검색하는 경우 SELECT * FROM TGOLFZON WHERE UserName = ‘%곽%’ -> UserName = ‘곽%’ -조건 절에 IS NULL , IS NOT NULL 구문을 사용하는 경우 -부정 연산자(!=,<>,NOT IN, NOT EXISTS)를 사용하는 경우 NOT일 경우 무조건 인덱스를 안타는 것이 아니라 타지만 일반적으로 NOT에 사용된 값이 아닌 데이터 비율이 높은 경우가 많기 때문에 인덱스를 타지 않는다. -내부적인 데이터 형이 변경될 경우 SELECT * FROM TGOLFZON WHERE UserNo = ’33’ -> UserNo= 33 -OR 구문을 사용하는 경우 INDEX FULL SCAN 을 타게 됨 -인덱스 컬럼 절이 변경될 경우 SELECT * FROM TGOLFZON WHERE CashAmt * 100 > 10000 -> CashAmt = 10000/100
3.3K
1
0

kimho·2019-05-10
MS SQL에서는 NULL도 인덱싱이 될 수 있습니다.

yous3163·2019-05-08
자문자답이 된거 같지만 찾아서 공유드립니다.
결과론 적으론 두 개의 인덱스를 혼합할 경우 구조는 같다.
클러스터드와 넌클러스터드 인덱스를 같이 사용할 경우에는 넌클러스터드 인덱스가 가리키는 위치가 클러스터드 인덱스의 키 값을 가지게 된다.
(만약 클러스터드형 인덱스가 없었다면 넌클러스터드 인덱스가 가리키는 위치는 ‘데이터페이지번호 + #...

·2019-05-08

kimho·2019-04-15
DB를 통해서 데이터를 조회하거나(SELECT), 저장/변경/삭제(INSERT,UPDATE,DELETE)를 할 수 있는데
하나의 DB에 여러 사람들이 접속해서 데이터를 조회하거나 변경할 수 있습니다.
그런데 동시에 여러 사람이 하나의 DB에 접속하다보면 동시성의 문제가 발생합니다.
예를 들면, 어떤 접속에 의해 데이터가 변경되고 있는데 ...

