인덱스, 조인, 통계, 격리수준, 실행계획
Ref.MSSQL 인덱스 리빌드조각화 현상 해결 - 조각화가 많이 진행되어있으면 그만큼 search해야하는 과정도 많아지기때문에 성능이 느려진다.인덱스를 완전히 새롭게 다시 생성합니다. 즉, 기존 인덱스를 삭제하고 새로운 인덱스를 만들어 데이터를 정렬합니다. 리빌드 과
Ref.SQL SERVER 튜닝가이드 실습 3조건절에 사용된 컬럼을 키로 하는 인덱스가 존재함에도 테이블을 전체 스캔하여 과다한 I/O를 사용한 사례인덱스 정보실행계획Table Scan이 실행된 이유: Select에 no컬럼을 표출해야하기 때문.Index를 활용한 In
해당 부분에서 실제로 조회해야할 테이블의 형상이 갖춰진다고 보면 된다.보통 FROM에는 메인테이블이 위치한다.갖춰진 테이블에서 조건을 부여한다.ex) WHERE 컬럼 > 1특정 컬럼의 데이터를 기준으로 그룹화를 시킨다.ex) GROUP BY 컬럼1, 컬럼2그룹화된 데이
Ref.\[MS-SQL]인덱스에 대한 정리색인과 같은 것.수많은 데이터에서 조회하기 위해서는 많은 시간이 소요된다.인덱스를 설정하여 그 시간을 줄일 수 있다.“데이터를 좀 더 빠르게 찾을 수 있게 해주는 도구”데이터의 중복값이 없음을 보장해준다.기준없이 저장한 데이터베
Ref.\[데이터베이스] 트랜잭션과 격리성Transactional Outbox Pattern 알아보기트랜잭션(Transaction)은 데이터베이스에서 일련의 작업을 논리적으로 묶어서 원자성, 일관성, 고립성, 지속성을 보장하는 논리적 작업 단위원자성 (Atomicity
참조관계가 있을 경우 참조되는 데이터도 자동으로 삭제.자신이 참조하고 있는 테이블의 데이터가 삭제되면 자동으로 자신의 데이터도 삭제되어 참조 무결성을 준수 시킨다.
재사용성과 모듈화 : SP를 사용하면 비즈니스 로직이나 쿼리를 하나의 프로시저로 묶어서 저장할 수 있습니다. 이는 코드의 재사용성을 높이고 유지보수를 용이하게 만듭니다. 여러 쿼리를 하나의 SP로 묶어 모듈화된 코드를 구성할 수 있습니다.보안 : SP를 사용하면 데이터
영어로는 강제 라는 의미를 가지고 있다.이를 SQL에 대입해보면 데이터를 처리하는 것에 있어서 강제할 사항을 정의한다 라고 이해하면 쉬울 것 같다.이제 우리는 이를 제약조건이라고 부르기로 했다. Primary Key Constraint (기본 키 제약 조건)테이블의 한
Ref.\[MS-SQL]페이징 처리1. OFFSET FETCHorder by 필수 : 정렬을 해줘야 페이징 처리가 가능하다.
Ref.SQL InjectionSQL injection 공격Injection = 주입SQL문을 직접 주입하여 DB서버를 공격하는 형태를 말한다.parameterized querySP(스토어드 프로시저) 사용ORM(Object Relational Mapping) 사용ex
테이블 정보 반환 쿼리
NOLOCK: 다른 트랜잭션의 잠금을 피하고 읽기를 수행합니다. Dirty Read 가능성이 있습니다.READUNCOMMITTED: NOLOCK과 동일한 의미로 사용되며, 트랜잭션 격리 수준을 낮추어 사용합니다.READCOMMITTED: 트랜잭션 격리 수준을 유지하면서
Ref.MSSQL에서 특정 텍스트 포함 프로시저 검색하기
Ref.\[MS-SQL]SSMS에서 배치 잡 등록하기개체탐색기 - 해당 계정 SQL Server 에이전트- 작업 - 마우스 우클릭 - 새작업위 순서로 들어가여 배치잡을 등록하는 곳으로 갈 수 있습니다.새 작업이름 : 배치작업의 이름소유자 : 해당 배치를 동작 시키는 계
Ref.MSSQL 데이터베이스 수준 역할 정리db_owner : 고정 데이터베이스 역할의 멤버는 데이터베이스에서 모든 구성 및 유지 관리 작업을 수행할 수 있고 SQL Server에서 데이터베이스를 삭제할 수도 있습니다. (SQL Database 및 Azure Syna
Ref.MSSQL LOOKUP행식별자로서 nonClusterIndex 데이터 페이지 번호, 슬롯번호, 파일번호를 16진수 값으로 변환한 값을 말한다.인덱스의 리프레벨에 없는 컬럼을 읽어야 한다면, 실제 데이터가 저장된 위치를 찾아가서 읽어오는 작업을 말한다.RID(데이
실제 데이터와 같은무리의 인덱스PK적용시 자동 생성.테이블당 한개만 생성.정렬범위쿼리와 포인트쿼리 둘다에서 성능을 발휘한다.데이터 입력, 수정, 삭제시 항상 정렬상태를 유지한다.실제 데이터와 다른 무리의 별도의 인덱스Unique적용시 자동 생성.테이블당 여러개 생성 가
Ref.데이터베이스 콘솔 명령 - SQL Server인덱스 페이지 확인하는 방법 (FT. DBCC IND, DBCC PAGE)사용 가능한 명령CHECKPOINTDBCCKILLKILL QUERY NOTIFICATION SUBSCRIPTIONKILL STATS JOBREC
Ref.\[MsSQL] DBCC문 알아보기MS-SQL은 데이터베이스 콘솔 명령어로써 DBCC문을 제공합니다.콘솔 명령은 아래 4가지의 범주로 분류할 수 있습니다.
추가로 읽는 데이터가 많아지면 LOCK의 단위가 Page나 Table로 격상되는 것KEY단위로 걸려있는 것이 확인된다.현재 상태에서의 Table은 Intent Shared Lock임을 확인 할 수 있다.Table에 Shared Lock이 걸린것을 확인할 수 있다.IS(
Ref.SQL고가용성 Replication원본 데이터베이스의 데이터를 다른 데이터베이스로 복사한 후, 이를 동기화시켜 사용할 수 있게(대부분 읽기전용으로 사용)하는 것다른서버에 동기화될 데이터가 포함된 원본 데이터베이스를 유지 관리하는 서버게시자가 제공하는 게시를 가져
결론 : 성능상의 차이는 없다고 봐도 무방하다~
FOR JSON AUTO결과
Ref.\[MSSQL SQL Server 튜닝 - 실행 계획](https://earthteacher.tistory.com/219\[\[MS-SQL]실행계획 보기 및 설명](https://sagittariusof85s.tistory.com/101)\[웨
Ref.역정규화 wiki역정규화역정규화(denormalization)는 이전에 정규화된 데이터베이스에서 성능을 개선하기 위해 사용되는 전략이다.데이터베이스의 읽기 성능을 개선하려고 시도하는 과정이다.읽기에 들어가는 부하나 비용을 줄여 성능을 높일 수 있다.역정규화를 할
Ref.\[SQL 정규화의 개념](https://wouldyou.tistory.com/111관계형 데이터베이스(RDBMS)의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스.데이터를 정규화하지 않으면 쿼리의 성능이 저하된다.정규화의 종류에는 1NF(1정
데이터 전송 시간: 조회된 데이터의 양이 컬럼의 개수와 행의 개수에 비례하므로, 더 많은 컬럼이 있다면 더 많은 데이터가 전송되어야 합니다. 이는 특히 네트워크 속도가 느린 경우에 영향을 크게 미칠 수 있습니다.디스크 I/O: 모든 컬럼을 조회할 때, 디스크에서 디스크
Ref.SQL SERVER 튜닝 가이드 실습편 | ep.06, 실습1구문에 사용된 컬럼의 일부가 인덱스에 존재하지 않아 RID Lookup이 수행되면서 높은 I/O(논리적 읽기)를 사용한 사례SELECT절에서 요구하는 SEQ, MAIN_CODE컬럼이 인덱스에 포함되어
Ref.성능 대시보드시스템 CPU 사용률현재 대기 중인 요청현재 작업사용자 요청사용자 세션캐시 적중률기록 정보대기래치I/O 통계비용이 많이 드는 쿼리기타 정보활성 추적활성 xEvent 세션데이터베이스누락된 인덱스
600만개의 데이터를 가진 테이블 TEST_TABLE이 있다. (인덱스 없음) 컬럼 결과 전체 데이터를 스캔하는데 걸린 시간은 14초정도. 인덱스를 설정하고 다시 전체 스캔을 해본다. 스캔방식만 다르고 결과는 똑같았다. ![](https://velog.vel
Ref. https://velog.io/@kjhxxxx/DataBase-ERD%EB%9E%80 관계 표현 One 일대일 혹은 일대다 관계이다. 주로 하나의 외래키가 걸린 관계라도 보면 된다. Many 다대다 관계이다. 중계 테이블을 통하여 여러개의 데이터를 바라보고
실제 데이터와 같은 무리의 인덱스PK적용시 자동 생성.테이블당 한개만 생성.정렬범위쿼리와 포인트쿼리 둘다에서 성능을 발휘한다.데이터 입력, 수정, 삭제시 항상 정렬상태를 유지한다.실제 데이터와 다른 무리의 별도의 인덱스Unique적용시 자동 생성.테이블당 여러개 생성