본문 바로가기

코딩 공부 기록/SQL12

[MSSQL] 인덱스의 스캔 방식 최근  SQL SERVER 튜닝 가이드라는 책을 사서 튜닝을 공부해 보려고 하는데첫 시작이 인덱스이다. 스캔 방식을 알아보기 전에 클러스터 vs 비 클러스터 인덱스에 대해 정리해 둔 것이 있으니참고하면 좋을 듯 하다.  [MSSQL] 클러스터 인덱스(Clustered Index)와 비 클러스터 인덱스(Non Clustered Index)인덱스(Index) 란? 인덱스는 데이터베이스에서 데이터를 빠르게 검색하기 위해 사용되는 데이터 구조이다.책의 목차나 색인처럼, 인덱스는 특정 데이터에 대한 위치 정보를 제공하여 검색 속도murphy0v0.tistory.com    인덱스의 스캔 방식 1. Table Scan  테이블 스캔은 테이블의 모든 행을 처음부터 끝까지 훑어 데이터를 찾는 방식이다.테이블에 인덱스가.. 2024. 11. 22.
[MSSQL] 클러스터 인덱스(Clustered Index)와 비 클러스터 인덱스(Non Clustered Index) 인덱스(Index) 란? 인덱스는 데이터베이스에서 데이터를 빠르게 검색하기 위해 사용되는 데이터 구조이다.책의 목차나 색인처럼, 인덱스는 특정 데이터에 대한 위치 정보를 제공하여 검색 속도를 향상시킨다.  클러스터 인덱스(Clustered Index)  vs  비 클러스터 인덱스(Non Clustered Index)  클러스터 인덱스(Clustered Index)클러스터 인덱스는 테이블의 데이터가 물리적으로 정렬되어 저장되는 인덱스이다.인덱스 Leaf Node에 실제 데이터를 가진다. 주로 PK로 잡힌 인덱스 키값을 기준으로 데이터를 정렬하는데, INSERT 할 경우에도 전체 정렬이 된다.테이블 당 클러스터 인덱스는 1개만 생성 가능하다.데이터를 검색하면 키를 기반으로 직접 데이터 페이지를 찾아간다.데이.. 2024. 11. 22.
[MSSQL] 로컬 서버 사용하기 (SSMS, SQL Server Developer) 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.. 2024. 11. 22.
[SQL] 데이터베이스 정규화 (1NF, 2NF, 3NF, BCNF, 4NF, 5NF) 1. 정규화 (Normalization)정규화는 데이터베이스 설계의 기본 단계로, 데이터 중복을 줄이고 데이터 일관성을 유지하는 것을 목표로 한다. 잘못된 데이터 구조로 인해 발생할 수 있는 데이터 이상(Anomalies)을 방지하여 효율적인 데이터 저장 및 관리를 가능하게 한다.정규화의 주요 목표데이터 중복 감소: 데이터 중복이 줄어들면 저장 공간 절약 및 데이터 일관성 유지가 용이하다.데이터 무결성 보장: 각 테이블에 의미 있는 데이터만 유지하여 관계 데이터베이스의 정확성을 높인다.데이터 이상 방지: 데이터 삽입, 갱신, 삭제 시 발생할 수 있는 문제들을 예방한다.정규화의 단계정규화는 크게 1NF, 2NF, 3NF, 그리고 BCNF 단계로 나뉜다. 단계가 올라갈수록 데이터 중복이 줄어들며 데이터 구조.. 2024. 11. 12.
[MSSQL] 메모리 할당 최대/최소 설정 SQL을 사용하다 보면 조회 속도가 느리거나 성능이 떨어지는 경우가 있다.주로 메모리를 너무 많이 써서 부하가 걸리거나, 할당된 메모리가 너무 작아서 성능이 떨어지거나이다.      메모리 할당이 필요한 이유 1. 시스템 안정성 보장메모리 부족으로 다른 애플리케이션이나 OS가 영향을 받지 않도록 SQL Server의 메모리 사용을 제한한다. 2. 효율적인 자원 분배시스템 메모리를 SQL Server와 다른 프로세스 간에 균형 있게 분배하여 자원을 효율적으로 사용할 수 있게 한다. 3. SQL Server 성능 최적화충분한 메모리를 확보해 성능을 개선하고, 과도한 메모리 사용을 방지한다. 4. 메모리 누수 방지:SQL Server가 과도하게 메모리를 사용하는 것을 방지하여 시스템의 성능을 안정적으로 유지한.. 2024. 11. 12.
데이터베이스 성능 분석 개요와 성능 튜닝 기초 개념 1. 데이터베이스 성능 분석 개요1.1 성능 튜닝의 목적성능 튜닝이란 데이터베이스 시스템이 효율적으로 동작하도록 개선하는 작업이다. 목표는 응답 속도 단축과 자원 사용 최적화에 있다.응답 시간(Response Time) 최적화: 쿼리가 반환되는 시간을 줄인다.처리량(Throughput) 증대: 단위 시간당 처리할 수 있는 트랜잭션을 증가시킨다.자원 사용 최적화: CPU, 메모리, I/O 같은 시스템 자원을 효율적으로 사용하여 과부하를 방지한다.1.2 데이터 처리 과정 이해SQL 문장 실행 절차SQL 파싱: SQL 문장을 구문 분석해 실행 계획을 수립한다.최적화: 다양한 실행 계획 중 비용이 가장 낮은 계획을 선택한다.실행: 선택된 실행 계획에 따라 데이터를 가져온다.결과 반환: 최종 결과가 클라이언트에 .. 2024. 11. 12.