[MSSQL] DELETE vs DROP vs TRUNCATE 비교
·
코딩 공부 기록/SQL
데이터베이스 작업을 하다 보면 테이블의 데이터를 삭제해야 하는 경우가 자주 생긴다.이때 선택할 수 있는 대표적인 방법이 DROP, TRUNCATE, DELETE가 있는데, 각각의 명령어는 목적과 사용 방식이 다르다보니 무작정 사용하는건 위험할 수 있다.오늘은 이 세 가지 명령어를 비교해보고자 한다. DELETE - 조건부 삭제 기능, 가장 유연DELETE는 WHERE절을 사용해서 특정 조건에 맞는 레코드만 삭제할 수 있는 명령어이다. 특징조건을 지정할 수 있음 (WHERE)트랜잭션 처리 가능 (ROLLBACK 지원)트리거가 실행됨로그에 모든 삭제 내용이 기록됨 (비교적 느림) 장점조건부 삭제 가능 (부분 삭제)트랜잭션을 통해 롤백이 가능정확한 제어 가능 단점느릴 수 있음 (특히 많은 데이터일 때)로그 ..
[MSSQL] 테이블 복제 복사 방법
·
코딩 공부 기록/SQL
작업을 하다보면 테이블을 복사해야하는 경우가 종종 있다. 테이블만 복사, 테이블+데이터 복사, A데이블 -> B테이블 데이터만 복사.  1. 테이블 + 데이터복사SELECT * INTO 복사 테이블명FROM 원본 테이블명  2.  테이블만 복사SELECT *INTO 복사 테이블명FROM 원본 테이블명WHERE 1=2 3. A테이블 -> B테이블 데이터 복사A라는 테이블이 있고 B라는 테이블이 있는데, A의 데이터를 B로 옮기고 싶을 때 사용한다.INSERTINTO 복사 테이블명(B)SELECT * FROM 원본 테이블명(A)
[MSSQL] SQL Server 잠금(LOCK)의 종류
·
코딩 공부 기록/SQL
격리 수준에 대해 공부하다가 잠금의 종류를 몰라서 내용 이해가 어려웠다.그래서 격리 수준 공부 중단하고 잠금부터 공부...를.............................. 1. 잠금의 종류1) 공유 잠금 (Shared Lock, S)데이터를 읽을 때 사용되는 잠금이다.  (SELECT문)여러 트랜잭션이 동시에 데이터를 읽을 수 있지만, 데이터에 대한 수정은 불가능하다.여러 트랜잭션이 동시에 공유 잠금을 가질 수 있지만, 공유 잠금 동안 해당 데이터에 대한 배타적 잠금은 허용되지 않음.  2) 배타적 잠금 (Exclusive Lock, X)데이터를 수정할 때 사용되는 잠금으로 INSERT, UPDATE, DELETE에서 사용된다.배타적 잠금이 설정된 데이터는 다른 트랜잭션이 읽거나 수정할 수 없고,..
[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..