본문 바로가기
728x90
반응형

DataBase13

[MSSQL] 한글/숫자/영문 글자수가 아닌 byte 단위로 문자열 자르기 테이블의 데이터 형식은 정해져 있는데 정해진 용량보다 문자가 클 경우 잘라서 INSERT 해야 한다. 이때 문자 갯수 기준으로 하면 한글과 숫자/영문이 Byte가 다르기 때문에 딱맞게 자를 수가 없다. 이때, 쿼리상에서 String 형식의 값을 문자열로 한글자 자르는 것이 아니라 한글(2byte), 영문/숫자(1byte)로 Byte 단위로 잘라서 INSERT 시킨다. INSERT INTO 주문테이블 (상품명) SELECT CASE WHEN DATALENGTH(상품명) > 200 THEN SUBSTRING(CONVERT(TEXT, 상품명), 1, 198) + '...' ELSE 상품명 END AS 상품명 FROM 상품목록 ※포인트 DATALENGTH 와 CONVERT(TEXT, 상품명) 2020. 11. 9.
mssql 현재접속자 2020. 11. 4.
메모리과부하 어느날 MS-SQL server DB를 사용하는 서버와의 통신이 제대로 안된다면, 요인중의 하나는 서버의 메모리가 100%로 찼을 때이다. (Ms-sql이 메모리를 많이 잡아 먹음) 컴퓨터의 메모리가 과부하되면, 컴퓨터는 더이상 service를 할 수 없다. 이때 서버를 재부팅 하게 되면 일시적으로 메모리가 줄지만, 곧 다시 과부하가 걸린다. 이 증상을 대처 및 예방 하기 위해서는 다음과 같은 일련의 단계를 거치면 된다. 1. 메모리 과부하가 의심 될 때, 작업관리자를 실행한다. (작업관리자 실행은 ctrl + Alt + Delete 나, 위의그림과 같이 클릭으로도 실행 할 수 있다.) 2. 속성> 성능을 확인 한다. (위의 그림은 메모리가 과부화 되지 않았을때 이다. 과부화일 경우 메모리 스택의 높이가.. 2020. 11. 4.
MSSQL의 Merge 로 데이터 병합처리 MERGE 단일 query에서 여러 DML(insert, update, delete) 작업 하나의 작업으로 모든 DML을 처리하여 성능 향상 MERGE 사용법 merge [변경테이블] as t1 using [기준테이블] as t2 on t1.key1 = t2.key2 when matched then [일치시 실행할 쿼리문] when not matched then [불일치시 실행할 쿼리문] matched : on 조건이 일치 not matched : on 조건이 불일치 MERGE 사용법2 merge [변경테이블] as t1 using [기준테이블] as t2 on t1.key1 = t2.key2 when matched and [조건1] then [일치시 실행할 쿼리문] when not matched and.. 2020. 11. 4.
728x90
반응형