본문 바로가기
728x90
반응형

전체 글163

동적 쿼리 사용 이유, 예시, 장단점, 플랜캐시, 주의점 흔히 동적 쿼리, 다이나믹 쿼리라는 것이 존재한다. 언제 동적 쿼리를 사용하는 걸까? 동적 쿼리는 주로 비즈니스 로직이 복잡해져서 where 조건절에서 조건이 너무 다양해지고 많아지는 경우, 유용하게 사용할 수 있다. 예를 들면, 검색이나, 페이징 처리 등의 상황이 있다. 그렇다면 예시를 살펴보자. 아래 예시는 @MinPrice 및 @MaxPrice 매개 변수에 따라 제품 테이블에서 가격 범위 내의 제품을 검색하는 쿼리이다. 예시) DECLARE @MinPrice DECIMAL(10, 2) = 100.00 DECLARE @MaxPrice DECIMAL(10, 2) = 500.00 DECLARE @DynamicSQL NVARCHAR(MAX) SET @DynamicSQL = N' SELECT ProductN.. 2023. 9. 6.
WHERE 1=1 조건절 사용 이유 "WHERE 1=1" 조건절은 항상 참인 조건을 나타낸다. 항상 참을 나타내는 조건을 왜 굳이 넣는걸까? 크게 2가지 이유가 있는 것 같다. 동적 쿼리 "WHERE 1=1"을 사용하면 동적 쿼리의 WHERE 절에 조건을 쉽게 추가하거나 제거할 수 있다. 또한 가독성과 유지보수에도 좋다. 예시) DECLARE @DynamicSQL NVARCHAR(MAX) = N' SELECT Column1, Column2 FROM MyTable WHERE 1=1' -- 동적으로 조건 추가 IF @Condition1 = 1 BEGIN SET @DynamicSQL = @DynamicSQL + N' AND Column1 = @Value1' END IF @Condition2 = 1 BEGIN SET @DynamicSQL = @D.. 2023. 9. 6.
SQL Server 테이블, 프로시저 조회 해당 특정 데이터베이스에 저장된 모든 데이터 개체에 대한 메타데이터가 들어 있는 정보 스키마 뷰는 INFORMATION_SCHEMA라는 이름으로 정의되어 있다. INFORMATION_SCHEMA는 각 데이터베이스에 존재한다. // 테이블 조회 select * from INFORMATION_SCHEMA.TABLES // 프로시저, 함수 조회 select * from INFORMATION_SCHEMA.ROUTINES 출처) https://learn.microsoft.com/ko-kr/sql/relational-databases/system-information-schema-views/system-information-schema-views-transact-sql?view=sql-server-ver16 시스템.. 2023. 9. 6.
인덱스를 타지 않는 10가지 CASE와 예제 1. 인덱스 컬럼의 변형 FULL SCAN -- 인덱스 컬럼의 변형 (인덱스 컬럼과 검색 조건 컬럼이 다른 데이터 형식) CREATE TABLE ExampleTable ( ID INT PRIMARY KEY, Name VARCHAR(50) ) -- 인덱스 컬럼은 Name이지만 검색 조건에서 변형된 데이터 형식 사용 SELECT * FROM ExampleTable WHERE UPPER(Name) = 'JOHN' 2. 데이터 형 변환이 일어난 경우 FULL SCAN -- 데이터 형 변환이 일어난 경우 (인덱스 컬럼과 검색 조건 컬럼의 데이터 형식이 다름) CREATE TABLE ExampleTable ( ID INT PRIMARY KEY, Age INT ) -- 인덱스 컬럼은 INT이지만 검색 조건에서 문자열.. 2023. 9. 5.
LIKE, CONTAINS 차이점 및 성능 비교 SQL Server에서 문자열 검색에 사용되는 방법으로 LIKE와 CONTAINS가 있다. 두 가지의 차이점과 성능에 대해서 비교해보자. LIKE SELECT * FROM USER_TB WHERE UserName LIKE 'Tom' OR UserName LIKE 'Thomas' 문자열이 지정된 패턴과 일치하는지 여부를 확인하는 연산자. 열이 인덱싱되지 않아도 된다. 일반 문자나 와일드카드 문자(%, _, [], [^])를 패턴에 사용할 수 있다. 와일드카드 문자를 패턴의 다른 위치에 필요에 따라 사용할 수 있다. 패턴의 앞부분에 와일드카드를 사용하면 어떠한 인덱스도 사용할 수 없으므로, 성능은 느려진다. 비교에 사용되는 패턴은 최대 8000바이트까지의 문자열까지 사용할 수 있다. CONTAINS SELE.. 2023. 9. 5.
MSSQL SQL Server 공식문서 https://learn.microsoft.com/ko-kr/sql/sql-server/?view=sql-server-ver16 SQL Server 기술 설명서 - SQL Server SQL Server에서 관심 있는 영역을 선택합니다. learn.microsoft.com 2023. 9. 5.
728x90
반응형