본문 바로가기

반응형

DataBase

(16)
MSSQL 에서 UDT 란 무엇인가 | ChatGPT ChatGPT 질문한 이유"UDT 사용해서 해봐." 라는 팀원의 말을 들었지만, 그것이 무엇인지 몰랐다. MSSQL 에서 UDT 란 무엇인지, 어떻게 생성하는지 알아보자.MSSQL 에서 UDTMSSQL에서 UDT는 User-Defined Type(사용자 정의 타입)를 나타냅니다.이것은 사용자가 자신만의 데이터 유형을 정의할 수 있는 기능입니다.사용자 정의 데이터 유형은 일련의 속성과 메서드로 구성된 사용자 지정 데이터 유형을 나타냅니다.🟣 사용UDT는 일반적으로 다양한 데이터를 하나의 논리적 개체로 묶는 데 사용됩니다.🟣 예시예를 들어, 주소 정보를 저장하는 사용자 정의 데이터 유형을 만들 수 있습니다.이는 주소에 대한 여러 필드(도시, 우편 번호, 국가 등)를 하나의 유형으로 결합하여데이터베이스에 ..
Index Scan 과 Index Seek 차이 | ChatGPT Index Scan 과 Index Seek 차이인덱스 스캔(Index Scan)과 인덱스 시크(Index Seek)은 데이터베이스에서 쿼리를 실행할 때 사용되는 인덱스 액세스 메커니즘입니다.두 가지 모두 인덱스를 활용하여 데이터를 검색하지만, 그 방식과 목적이 약간 다릅니다.인덱스 스캔(Index Scan)인덱스 스캔은 전체 인덱스를 순회하여 검색 조건에 맞는 모든 행을 찾는 방식입니다.✔️ 사용주로 대량의 데이터를 검색해야 할 때 사용됩니다.✔️ 특징데이터베이스 엔진은 인덱스 트리를 순회하면서 조건에 맞는 모든 행을 찾아야 하므로, 비교적 더 많은 자원을 소비합니다.✔️ 발생주로 인덱스의 선택도가 낮을 때나 검색 조건이 인덱스의 첫 번째 열이 아닐 때 발생할 수 있습니다.인덱스 시크(Index Seek..
MSSQL 에서 READUNCOMMITTED 과 NOLOCK 차이 | ChatGPT READUNCOMMITTED 와 NOLOCKMSSQL에서 READUNCOMMITTED와 NOLOCK 옵션은 둘 다 트랜잭션 격리 수준에서 가장 낮은 수준을 나타냅니다.트랜잭션이 커밋되지 않은 데이터를 읽을 수 있도록 허용합니다.🟢 EADUNCOMMITTEDREADUNCOMMITTED 는 트랜잭션 격리 수준 중 하나입니다.쿼리가 실행되는 동안 다른 트랜잭션이 커밋되지 않은 데이터를 읽을 수 있게 합니다.이 격리 수준을 사용하면 쿼리 성능이 향상될 수 있지만, "더티 리드(Dirty Read)"가 발생할 수 있습니다.즉, 아직 커밋되지 않은 트랜잭션이 롤백되는 경우, 잘못된 데이터를 읽게 되는 상황이 발생할 수 있습니다.SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED..
MSSQL 클러스터 인덱스와 넌클러스터 인덱스란 | ChatGPT MS SQL Server 인덱스 MS SQL Server에서 클러스터형과 넌클러스터형의 개념은 주로 데이터베이스 인덱스에서 사용됩니다. 1. 클러스터형 인덱스(Clustered Index) 클러스터형 인덱스는 테이블의 데이터를 물리적으로 정렬하는 방식입니다. 테이블당 한 개의 클러스터형 인덱스만 가질 수 있습니다. 클러스터형 인덱스는 데이터를 정렬하여 디스크 상에 연속적으로 저장하므로, 검색 및 범위 검색에 효율적입니다. 설정 개수 주로 테이블의 주요 검색키(Primary Key)에 대해 생성됩니다. Primary Key가 없는 경우에는 유니크한 컬럼에 대해 클러스터형 인덱스를 생성할 수 있습니다. 2. 넌클러스터형 인덱스(Non-clustered Index) 넌클러스터형 인덱스는 데이터 레코드의 물리적..
INNER JOIN 을 사용하여 UPDATE 문 작성 방법 | ChatGPT INNER JOIN을 사용하여 UPDATE 문을 작성할 때, 두 개 이상의 테이블을 조인하고 업데이트해야 하는 경우가 있습니다. 아래는 INNER JOIN을 사용한 UPDATE 문의 간단한 예시입니다. INNER JOIN을 사용하여 UPDATE 문 작성 예시 고객(Customer) 테이블과 주문(Order) 테이블이 있다고 가정해보겠습니다. 이때 고객의 정보를 업데이트하고자 합니다. UPDATE Customer SET Customer.Name = '새로운 이름' FROM Customer INNER JOIN Order ON Customer.CustomerID = Order.CustomerID WHERE Order.OrderDate > '2023-01-01'; 이 SQL 문은 다음과 같은 작업을 수행합니다...
MSSQL 오늘 날짜 기준 달의 첫날과 마지막 날 구하는 방법 | ChatGPT 오늘 날짜 기준 이번 달 첫 날 구하기 SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) AS FirstDayOfMonth; DATEDIFF(MONTH, 0, GETDATE()) DATEDIFF 함수는 두 날짜 또는 시간 값 간의 차이를 계산합니다. 첫 번째 인수는 차이를 계산할 시간 단위를 지정합니다. 이 경우 MONTH를 사용하여 월 간의 차이를 계산하게 됩니다. 두 번째 및 세 번째 인수는 비교할 두 날짜 또는 시간 값입니다. 첫 번째 인수와 두 번째 인수 간의 차이를 계산합니다. DATEADD DATEADD 함수는 날짜 또는 시간에 대한 값을 더하거나 빼는 데 사용됩니다. 이 함수의 첫 번째 인수는 추가할 시간 단위를 나타냅니다. 이 경우 MONT..
mssql 실행 계획 캐싱 개념과 원리와 사용법 | ChatGPT SQL Server의 실행 계획 캐싱 SQL Server의 실행 계획 캐싱은 SQL 쿼리의 실행 계획을 저장하고 재사용하는 프로세스를 설명합니다. 이를 통해 SQL Server는 동일한 쿼리가 여러 번 실행될 때, 실행 계획을 다시 생성하는 대신 저장된 실행 계획을 사용하여 쿼리의 성능을 향상시킬 수 있습니다. 아래에서는 실행 계획 캐싱의 개념, 원리 및 사용법에 대해 설명합니다. 개념 SQL Server는 쿼리 실행 계획을 생성하고 이를 캐시에 저장합니다. 실행 계획은 쿼리가 어떻게 실행되어야 하는지를 정의하며, 예를 들어 어떤 인덱스를 사용하고, 어떤 조인 방법을 사용해야 하는지를 결정합니다. 쿼리가 실행될 때, SQL Server는 먼저 캐시에서 해당 쿼리의 실행 계획을 찾습니다. 실행 계획이 캐시..
MSSQL 에서 컬럼명 바꾸기 sp_rename 사용 | ChatGPT 컬럼명 바꾸기 EXEC sp_rename '테이블명.현재_컬럼명', '새로운_컬럼명', 'COLUMN'; 테이블명은 컬럼이 속한 테이블의 이름 현재_컬럼명은 변경하고자 하는 컬럼의 현재 이름 새로운_컬럼명은 변경하고자 하는 컬럼의 새로운 이름 예를 들어 EXEC sp_rename 'Customers.OldColumnName', 'NewColumnName', 'COLUMN'; 출처 | ChatGPT

반응형