[SQL] 인덱스 조각화
·
코딩 공부 기록/SQL
인덱스 조각화란?데이터의 삽입, 업데이트, 삭제와 같은 작업이 반복되면서 인덱스 페이지들이 물리적으로 비효율적인 상태로 변하는 현상이로 인해 데이터 검색 성능이 저하되고, 쿼리 실행 시간이 길어질 수 있다.조각화는 클러스터형 인덱스와 비클러스터형 인덱스에서 발생할 수 있는데, 1) 내부 조각화 와 2) 외부 조각화가 있다.  인덱스 조각화 발생 원인1. 데이터 삽입 : 새로운 데이터가 기존 페이지에 들어가지 못하고 새로운 페이지로 분산될 때.2. 데이터 삭제 : 삭제된 공간이 재사용되지 않고, 빈 공간으로 남아있는 경우.3. 데이터 업데이트 : 기존 데이터의 크기가 커져, 현재 페이지에 저장되지 못하고 다른 페이지로 이동할 때.4. 인덱스 재구성 부족 : 인덱스 생성 후, 오랜 기간 동안 인덱스를 재구성..
[MSSQL] 인덱스의 스캔 방식
·
코딩 공부 기록/SQL
최근  SQL SERVER 튜닝 가이드라는 책을 사서 튜닝을 공부해 보려고 하는데첫 시작이 인덱스이다. 스캔 방식을 알아보기 전에 클러스터 vs 비 클러스터 인덱스에 대해 정리해 둔 것이 있으니참고하면 좋을 듯 하다.  [MSSQL] 클러스터 인덱스(Clustered Index)와 비 클러스터 인덱스(Non Clustered Index)인덱스(Index) 란? 인덱스는 데이터베이스에서 데이터를 빠르게 검색하기 위해 사용되는 데이터 구조이다.책의 목차나 색인처럼, 인덱스는 특정 데이터에 대한 위치 정보를 제공하여 검색 속도murphy0v0.tistory.com    인덱스의 스캔 방식 1. Table Scan  테이블 스캔은 테이블의 모든 행을 처음부터 끝까지 훑어 데이터를 찾는 방식이다.테이블에 인덱스가..
[MSSQL] 클러스터 인덱스(Clustered Index)와 비 클러스터 인덱스(Non Clustered Index)
·
코딩 공부 기록/SQL
인덱스(Index) 란? 인덱스는 데이터베이스에서 데이터를 빠르게 검색하기 위해 사용되는 데이터 구조이다.책의 목차나 색인처럼, 인덱스는 특정 데이터에 대한 위치 정보를 제공하여 검색 속도를 향상시킨다.  클러스터 인덱스(Clustered Index)  vs  비 클러스터 인덱스(Non Clustered Index)  클러스터 인덱스(Clustered Index)클러스터 인덱스는 테이블의 데이터가 물리적으로 정렬되어 저장되는 인덱스이다.인덱스 Leaf Node에 실제 데이터를 가진다. 주로 PK로 잡힌 인덱스 키값을 기준으로 데이터를 정렬하는데, INSERT 할 경우에도 전체 정렬이 된다.테이블 당 클러스터 인덱스는 1개만 생성 가능하다.데이터를 검색하면 키를 기반으로 직접 데이터 페이지를 찾아간다.데이..
[MSSQL] 로컬 서버 사용하기 (SSMS, SQL Server Developer)
·
코딩 공부 기록/SQL
1. SSMS(SQL Server Management Studio) 설치https://learn.microsoft.com/ko-kr/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16 SSMS(SQL Server Management Studio) 다운로드 - SQL Server Management Studio (SSMS)SQL_A 및 Azure SQL 인스턴스를 관리하고 구성하려면 최신 버전의 SSMS(SQL Server Management Studio)를 다운로드하세요.learn.microsoft.com  2. SQL Server Developer 설치하기https://www.microsoft.com/ko-kr/sql-se..
OSGi Framework 란? (기본 개념 이해)
·
코딩 공부 기록/Java
OSGi란 무엇인가?OSGi (Open Service Gateway initiative) 프레임워크는 자바 기반의 모듈형 소프트웨어 개발 환경을 제공하는 기술이다. 쉽게 말해, 하나의 큰 프로그램을 마치 레고 블록처럼 작은 조각들(번들)로 나누어 개발하고 관리할 수 있도록 돕는 도구라고 생각하면 된다.OSGi Framework를 사용하는 이유모듈화: 프로그램을 작은 단위로 나누어 관리하므로 개발, 테스트, 유지보수가 훨씬 용이하다. 각 모듈은 독립적으로 개발, 배포, 업데이트가 가능하다.재사용성: 한 번 개발된 모듈은 다른 프로젝트에서도 재사용할 수 있어 개발 시간을 단축하고 생산성을 높인다.동적 업데이트: 프로그램을 중단시키지 않고도 새로운 기능을 추가하거나 기존 기능을 수정할 수 있다.플러그인 아키텍..
[SQL] 데이터베이스 정규화 (1NF, 2NF, 3NF, BCNF, 4NF, 5NF)
·
코딩 공부 기록/SQL
1. 정규화 (Normalization)정규화는 데이터베이스 설계의 기본 단계로, 데이터 중복을 줄이고 데이터 일관성을 유지하는 것을 목표로 한다. 잘못된 데이터 구조로 인해 발생할 수 있는 데이터 이상(Anomalies)을 방지하여 효율적인 데이터 저장 및 관리를 가능하게 한다.정규화의 주요 목표데이터 중복 감소: 데이터 중복이 줄어들면 저장 공간 절약 및 데이터 일관성 유지가 용이하다.데이터 무결성 보장: 각 테이블에 의미 있는 데이터만 유지하여 관계 데이터베이스의 정확성을 높인다.데이터 이상 방지: 데이터 삽입, 갱신, 삭제 시 발생할 수 있는 문제들을 예방한다.정규화의 단계정규화는 크게 1NF, 2NF, 3NF, 그리고 BCNF 단계로 나뉜다. 단계가 올라갈수록 데이터 중복이 줄어들며 데이터 구조..