본문 바로가기

데이터베이스

Clustered Index 인덱스는 쿼리를 처리하는 속도와 같은 성능과 관계가 있다. 흔히 책의 색인과 유사하다. 어떤 키워드와 관련한 페이지로 이동을 해야할 때 우린 색인을 찾아본다. 그럼 몇 페이지로 이동하면 해당 키워드와 연관된 내용을 볼 수 있는지 알 수 있다. 만약 색인이 없다면 우린 책을 처음부터 끝까지 넘겨보거나 아무 페이지나 마구 펼쳐가며 찾든 비효율적인 과정을 거칠것이다. SQL Server에는 두 가지 유형의 인덱스가 있다. 1. 클러스터형 인덱스(Clustered Index) 2. 비 클러스터형 인덱스(Non Clustered Index) 먼저 클러스터형 인덱스를 간단히 살펴보겠다. 클러스터형 인데스는 테이블 내에 있는 데이터의 물리적 저장 순서를 정의한다. 테이블 당 하나의 클러스터 인덱스가 존재한다. 테이블.. 더보기
Convert 함수를 이용한 날짜 및 시간 스타일 변환 날짜나 시간을 필요에 따라 그 스타일을 변환할 경우가 있는데, 그때마다 뭐였지? 하며 찾는 경우가 많아 정리를 해두려한다. Convert 함수는 어떤 값을 다른 데이터 타입으로 변환할 때 사용되는 함수이다. Syntax : CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) data_type : 필수 입력이다. 자신이 변환 시키고자 하는 데이터형을 넣는다. 정수형으로 변환을 원한다면 int, smallint, 날짜로 변환을 원한다면 date 등 date_type에 넣어주면 된다. (length) : 선택 입력이다. 변환될 결과 타입의 길이를 지정해준다. expression : 필수 입력이다. 데이터 타입 변환의 대상이 되는 값을 입력한다. 정수 .. 더보기
Sql Server RAISERROR 2부 RAISERROR ( { message_id | message_text | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ] ) [ WITH option [ ,...n ] ]; 이번에는 message_text를 이용하여 RAISERROR를 사용해보겠다. message_text는 2,047문자까지 저장 가능하며 마지막 3문자 '...'로 예약되어 있으니 주의해야 한다. 만약 그래서 2,048개나 그 이상의 문자들로 이루어진 텍스트를 message_text에 할당한다면 일부가 삭제되고 마지막은 ...으로 채워져 있을 것이다. 그리고 message_text를 RAISERROR에 사용하면 message_id는 50,000으로 세팅이 된다. 아래 예를.. 더보기
SQL Server RAISERROR 1부 RAISERROR는 Sql Server에서 사용자가 임의로 자신만의 에러 메시지를 생성하게 해준다. 그리고 그 에러 메시지를 응용프로그램쪽으로 반환 시킨다. 아래는 RAISERROR의 Syntax이다. RAISERROR ( { message_id | message_text | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ] ) [ WITH option [ ,...n ] ]; 좀 더 자세히 살펴보자. message_id? sys.messages catalog view에 저장될 사용자 정의 에러 메시지 번호이다. 새로운 사용자 정의 에러 메시지번호를 추가하고자 한다면 저장 프로시져(Stored Procedure) sp_addmessage를 사용.. 더보기
함수와 저장프로시져의 차이 SQL Server에서 함수(function)와 프로시져(Stored Procdure) 이 둘의 차이는 다음과 같다. 1. 함수는 반드시 하나의 반환 값을 가져야 한다. 하지만 프로시져는 반환 값이 있을 수도 없을 수도 있다. 또한 프로시져는 여러 개의 값을 반환할 수 있다. 2. 함수는 단지 입력 매개변수만을 가지지만 프로시져는 입력과 출력 매개변수를 가진다. 3. 함수는 프로시져로부터 호출될 수 있지만, 프로시져는 함수로부터 호출될 수 없다. 4. 프로시져 내에서는 조회(select), 삽입(insert), 갱신(update), 삭제(delete)가 가능하지만 함수 내에서는 조회만이 허용된다. 5. 프로시져는 조회(select) 구문의 일부로 사용될 수 없지만 함수는 조회(select) 구문의 일부로.. 더보기
SQL 세션이란 SQL 세션이란 SQL명령어 사용을 통해서 데이터베이스와의 상호 연결되어 있는 기간을 말한다. 그래서 사용자가 초기에 데이터베이스에 연결하면 세션이 맺어진다. 그리고 사용자가 데이터베이스와 연결을 끊으면 세션은 종료가 된다. 더보기