본문 바로가기
728x90

IT/MSSql14

[MS-SQL] PARTITION BY vs GROUP BY 차이 기존에 개발되었던 저장 프로시저를 보다가 문득 의문이 들었던 부분이다. 지금까지는 SUM 집계함수 절을 사용할때는 GROUP BY를 이용하여 특정 컬럼을 기준으로 합계를 구하는 방법만 사용해왔다.그런데 SUM절과 PARTITION BY절을 같이 쓰는 쿼리를 보게 되었다. 대충 구성은 아래와 같이 되어있다. SELECT VALUE_1, SUM(VALUE_2) OVER ( PARTITION BY VALUE_1 ) AS VALUE_2FROM TEST 아직 PARTITION BY를 잘 몰라 대체 왜? 굳이? GROUP BY가 아닌 PARTITION BY를 쓴거지? 어처피 GROUPING하는건 똑같이 않나? 라고 생각하고 PARTITION BY의 기능에 대해 찾아보.. 2025. 6. 19.
[MS-SQL] CONVERT 스타일 특징 이전에 정리한 MS-SQL CONVERT의 정리내용에 추가로 알게 된 내용을 정리해본다.https://noob-programmer.tistory.com/2 [MSSQL]날짜 형 변환 / CONVERT(자료형,DATETIME,형식)번호쿼리 결과코드 0 CONVERT(CHAR(19), DATETIME, 0) 01 02 2000 1:14PM MM DD YYYY H:MM 1 CONVERT(CHAR(10), DATETIME, 1) 01/02/2000 MM/DD/YYYY 2 CONVERT(CHAR(8), DATETIME, 2) 00.01.02 YY.MM.DD 3 CONVERT(CHAR(8), DATETIME, 3) 02/01/00 DD/MM/YY 4 CONVERnoob-programmer.tistory.com 📌.. 2025. 5. 30.
[MS-SQL] 속도 개선 방법 정리 1. 테이블 변수, 임시 테이블, CTE 적절히 사용 2. SET NOCOUNT ON; 3. 자료형 크기 조정 Flag 사용시에는 BIT 4. 테이블 생성 시 들어갈 데이터들을 생각 후 자료형 지정(ASCII CODE만(영어) 들어갈 것 같다 : varchar / UNICODE(한글)도 들어갈 것 같다 : nvarchar) 5. 테이블 INDEX 적극 사용 6. SELECT시 WITH(NOLOCK)을 사용 (단 Transaction도 조회가 되니 일관된 데이터가 아닐 수 있음) 7. 자주 사용되는 쿼리는 프로시저, 테이블 반환함수, 스칼라 반환함수를 적극적으로 사용 8. 트리거는 최소화하기 9. 될 수 있으면 프레임워크가 아닌 데이터베이스에서 처리 - 프레임워크에서 처리할 경우 클라이언트의 pc, 네트워.. 2025. 5. 22.
[MS-SQL] 실무에서 자주 사용되는 쿼리 - 1 두서없이 생각나는데로 적는거라 비슷한 함수여도 순서가 뒤죽박죽이니 감안하고 보시길.. 1. SET NOCOUNT ON;- 사용자에게 몇개의 행이 적용되었는지 알려주지 않을 때 사용. 아주 약간 성능 향상에 도움이 된다 2. RAISERROR(에러 메시지, 심각도, 상태)- 심각도 : 1~10:일반 사용자 정보, 11~16:사용자 정의 오류, 17~25:시스템오류 - 심각도를 10 이하로 주면 로그만 쌓이고 프로시저 수행에는 아무런 영향을 미치지 않음 - 11이상을 주면 실제로 오류가 발생되고, 실행된 Application에도 오류를 발생시킨다. - 20~25를 주면 클라이언트 연겨리 종료되고, 오류 및 Application Log 오류에 기록된다. - 어떤 위치에서 발생했는지 구분하기 위해 0~255.. 2025. 5. 19.
[MS-SQL] 자료형 정리 1. 정수형tinyint - 1바이트 (0~255) smallint- 2바이트 (-32768~32767) int- 4바이트 (-2,147,483,648 ~ 2,147,483,647) bigint- 8바이트 (-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807) 2. 실수형float - 부동 소수점, 근사값 저장으로 데이터 손실 발생 가능성 있음, 속도가 빠름 decimal(n, m) - 고정 소수점, 정확한 수치 계산, 속도가 상대적으로 느림- n : 전체 자리수 (최대 38자리)- m : 소수점 이하 자리수(n보다 같거나 작아야 함) 3. 날짜형date- 3바이트- 기본 문자열 형식 : yyyy-MM-dd 2025. 5. 14.
[MS-SQL] char vs varchar / nchar vs nvarchar 차이 1. char vs varchar charvarchar인코딩UTF-8크기고정가변 char(n), varchar(n)에서 n이란 문자 수라고 생각하는 사람이 많은데 n은 문자열의 바이트를 말한다. UTF-8을 저장할 때는 1바이트 (8비트)를 사용하여 저장하지만, 한글과 같이 UTF-16이상의 문자를 인코딩할때는 2바이트 이상(16비트)을 사용하여 저장한다.ex)char(10) = 'hi' [10바이트]varchar(10) = 'hi' [2바이트]varchar(10) = '안녕' [4바이트] (문자가 깨질 가능성이 있음) 만약 UTF-8에 해당하는 문자(영어, 숫자)만 사용될 변수나 테이블의 컬럼이라면 char나 varchar를 사용하는 것이 좋다. 2.nchar vs nvarchar ncharnvarc.. 2025. 5. 14.
728x90