본문 바로가기

Programming/MSSQL43

MSSQL 랜덤 패스워드 생성하기(난수형태 비밀번호 만들기) MSSQL에서 랜덤하게 패스워드를 생성해야 하거나 쿠폰번호 등을 생성해야 할 때 일정한 범위내에서 랜덤한 문자열을 생성해보자.RAND BETWEEN 함수를 사용해서 일정 범위 내에서 난수를 발생시키는 원리이다. 예를 들어 5~25 사이 난수를 생성하려면 다음처럼 하면된다.SELECT CAST(20*RAND() + 5 AS INT) 만약 5~25사이의 난수 중에서 총 5자리에 소수점 1자리까지 표현하려면 다음과 같다SELECT CAST(20*RAND() + 5 AS DECIMAL(5,1)) -- 먼저 RANDBETWEEN 함수를 만든다CREATE VIEW VRANDOMNUMBERAS SELECT RAND() AS RANDOMNUMBERGO CREATE FUNCTION RANDBETWEEN(@BOTTOM I.. 2018. 5. 18.
MSSQL 인덱스 조각화 확인 및 해결책(DBCC SHOWCONTIG, ALTER INDEX REBUILD) MSSQL은 데이터를 저장할 때 페이지에 저장한다. 페이지는 오라클의 블록과 같은 개념이다. 1페이지는 8K이며 8페이지가 1익스텐트이다. 그래서 MSSQL DB 서버는 포맷을 할 때에도 8K 단위로 포맷을 보통 하며 이는 페이지 크기와 일치시켜 성능 향상을 도모하는 것이다. 데이터를 자주 삽입, 삭제, 갱신을 하다보면 페이지에서 데이터가 들어갔다, 나왔다 하기 때문에 조각화가 일어날 수 밖에 없다. 따라서 조각화를 확인하고 이를 해결하는 방법을 설명하고자 한다. MSSQL에서 DBCC SHOWCONTIG를 이용한 TABLE A의 인덱스 조각화 확인하는 방법이다. DBCC SHOWCONTIG('TABLE_A', 'CIX__TABLE_A') 를 날리면 조각화 내용을 확인 할 수 있다. DBCC SHOWCO.. 2018. 4. 28.
MSSQL 인덱스 생성 CREATE INDEX (CLUSTRED, NONCLUSTRED, INCLUDED, FILTERED INDEX) MSSQL은 테이블을 만들면서 인덱스를 만들 수 있다예를 들어 PRIMARY KEY나 UNIQUE 제약을 지정하면 해당 컬럼에 인덱스가 자동으로 만들어진다.예를 들어 PRIMARY KEY나 PRIMARY KEY CLUSTERED로 설정하면 고유한 클러스터형 인덱스를 만들 수 있고 UNIQUE CLUSTERED로 설정하면 고유한 클러스터형 인덱스를 만들 수 있다. 그냥 UNIQUE 로 설정하면 고유한 비클러스터형 인덱스가 만들어진다. 하지만 이렇게 말고 테이블을 생성 하고 CREATE INDEX 문으로 인덱스를 만들어보자 다음은 CLUSTRED 인덱스를 만드는 쿼리문이다.1. 단일 열에 클러스터드 인덱스 만들기CREATE CLUSTRED INDEX CL_COL1ON TABLE_NM(COL1)GO 2. 복합.. 2018. 4. 25.
MSSQL 날짜 변환 (DATE CONVERT) MSSQL에서 CONVERT DATETIME 형식이다.개인적으로 112번을 좋아한다. 기준은 2000년 01월 02일 13시 14분 15.678초 NOSQLRESULTTYPE 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 CONVERT(CHAR(8), DATETIME, 4) 02.01.00 DD.MM.YY 5 CONVERT(CHAR(8), DATETIME,.. 2018. 4. 24.