프로그래밍/DB 78

[DB] MSSQL 자동증가열(IDENTITY)사용법 및 주의사항

테이블을 설계하다보면 고유ID값으로 로그성 정보나 이력관련 부분등 자동증가열을 사용하는 경우가 있습니다. IDENTITY값관련 사용법 및 주의사항에 대하여 살펴보겠습니다. 아래 4가지 순서로 확인해보겠습니다. 1. 자동증가열 생성방법 2. ID값이 중간에 빠지는 경우 3. ID값 재사용방법. SET IDENTITY_INSERT .. ON 4. ID값 가져오기. ID값을 확인 시스템함수. @@IDENTITY,IDENT_CURRENT(),SCOPE_IDENTITY() 1. 자동증가열 생성방법 아래 스크립트문을 살펴보면 id필드값이 IDENTITY(1,1) 으로 설정된것을 알수있습니다. 초기값이 1로해서 1씩 증가하겠다는 의미입니다. IDENTITY(10,5)이런식으로 지정하면 초기값을 10으로 해서 5씩증가..

프로그래밍/DB 2020.10.01

[DB] MSSQL 프로필러(Profiler) 사용법. 속도느린쿼리 확인방법

시스템을 운영하다가보면 데이터베이스에 부하를 주는 쿼리문을 확인해야하는 경우가 있습니다. 이럴때 SQL Profiler를 사용하여 속도저하 쿼리를 확인할수 있습니다. SQL Management -> SQL Server Profiler항목을 선택합니다. 추적하고하는 데이터페이스 서버에 로그인합니다. 추적하고 싶은 이벤트를 선택합니다. 쿼리문을 추적할 예정이기때문에 저장프로시저(Stored Procedures)와 TSQL에 대하셔 선택하여 실행하도록 하겠습니다. Run버튼을 선택하여 추적을 시작합니다. 추적을 시작하면 아래와 같이 TSQL문과 저장프로시저에 대한부분을 추적할수 있습니다. 항목에 대하여 살펴보도록 하겠습니다. 항목 리스트 TextDataTSQL실행문정보 표시 ApplicationName 접속한..

프로그래밍/DB 2020.09.29

[DB] MSSQL 데이터베이스(DB)백업 및 복원.(영문버전)

이번시간에는 MSSQL 2019버전으로 데이터베이스 백업 및 복원하는 방법에 대해 알아보도록 하겠습니다. 먼저 SQL Management Studio를 실행하여 로그일을 합니다. TEST데이터베이스가 있다고 가정하고 해보도록 하겠습니다. 영문판이 설치되어 있는관계로 영문버전기준으로 설명드리겠습니다. TEST DB에 마우스오른쪽 버튼을 클릭 -> Task -> Back Up항목을 선택합니다. Backup Type을 Full(전체)로 하여 백업하도록 하겠습니다. 폴더를 지정하지 않으면 "C:\\Program Files\\Microsoft SQL Server\\MSSQL15.MSSQLSERVER\\MSSQL\\DATA" 하위폴더에 백업파일이 생성됩니다. 백업방법 1. 전체백업(Full) 전체데이터를 백업하는 ..

프로그래밍/DB 2020.09.29

[DB] MSSQL 커서사용법(Cursor)

MSSQL에서 여러개의 행의 결과값을 보통의 경우는 한번에 처리하는게 좋으나 행별로 처리해야될경우가 있습니다. 행별로 처리할경우에 커서를 이용하여 처리할수 있습니다. 프로그램에서 레코드셋 오픈후 루프를 돌려서 처리하는 경우와 비슷하다고 보면됩니다. 1. DECLARE 커서 - 먼저커서를 선언합니다. 이때 조회하고자 하는 결과값을 SELECT문을 이용해서 선언합니다. 2. 커서 OPEN - 커서를 오픈합니다. 3. FETCH 처리 - 첫번째 행을 가지고 옵니다. 4. WHILE @@FETCH_STATUS = 0 - 커서의 마지막행이 될때까지 반복합니다. 이부분에 행단위로 가지고와서 데이터를 처리하면됩니다. 5. CLOSE 커서 - 커서를 닫습니다. 6. DEALLOCATE 커서 - 커서 참조를 제거합니다...

프로그래밍/DB 2020.09.10

[DB] MSSQL 인덱스 페이지 비율설정

이번시간에는 인덱스 비율에 대하여 설명드리겠습니다. 일반적으로 셋팅을 하지 않는경우도 많으나 데이터읽고 쓰기 양이 많은 테이블의 경우 인덱스 비율 페이지 비율에 따라 성능이 크게 좌우될수 있습니다. 그럼 먼저 인덱스를 생성해보도록 하겠습니다. SQL Management 툴을 이용해서 생성하도록 하겠습니다. 테이블 -> Index -> New Index -> No-Clustered Index를 클릭합니다. Index Name은 IX_Name으로 하고 Add... 버튼을 클릭하여 Index Key columns은 Name항목을 선택후 OK버튼을 클릭하면 인덱스가 생성됩니다. GUI를 사용하지않고 스크립트문으로 생성하려면 아래 쿼리문으로 생성합니다. 1 2 3 4 5 6 7 8 9 10 11 12 USE [T..

프로그래밍/DB 2020.09.09

[DB] MSSQL 웹서비스(GET/POST)호출방법

MSSQL서버상에서 웹서비스를 호출하는 방법에 대하여 설명드리겠습니다. 우연한 기회에 MSSQL서버자체에서 웹서비스를 제공하는부분에 대해서 알게되었고 해당부분을 언제사용할일이 있을까 생각하던 도중에 외부업체와 웹서비스로 연동을 해야되는 경우가 생겼는데, 별도 프로그램을 구축하지 않고 간단하게 스케쥴러를 통하여 웹서비스를 알림을 하게되었습니다. 특정테이블에 데이터저장시 트리거에 웹서비스를호출하여 알림처리. 스케쥴러를 통한 일괄데이터 전송시에도 사용하면 별도 클라이언트프로그램을 구축하지 않고 간단히 연동할수 있을것으로 보입니다. 1. 웹서버 구축 먼저 웹서비스관련 서버가 구축이 되어야 테스트가 가능합니다. 이전강좌에 Rest Api 서버를 만드는 부분을 참고해서 진행하도록 하겠습니다. Rest Api서버구축..

프로그래밍/DB 2020.09.08

[DB] MSSQL 2019 개발자버전 설치방법

MSSQL 2019개발자 버전을 설치해보겠습니다. 아래 링크에서 다운로드 받으면되며 메인페이지에 " SQL Server 2019 Developer는 비 프로덕션 환경에서 개발 및 테스트 데이터베이스로 사용하도록 라이선스가 제공되며 모든 기능을 갖춘 무료 버전입니다" 라는 문구에서 볼수 있듯이 개발 및 테스트 DB로 사용하도록 라이센스가 제공됩니다. 1. MSSQL 2019엔진 설치 다운로드 링크 : www.microsoft.com/ko-kr/sql-server/sql-server-downloads SQL Server 다운로드 | Microsoft 지금 Microsoft SQL Server를 다운로드하세요. 각 데이터와 워크로드에 가장 적합한 SQL Server 체험판 또는 버전, 도구, 커넥터를 선택할 ..

프로그래밍/DB 2020.09.06

[DB] MSSQL DBLink(디비링크) 방법

이번시간에는 디비링크에 대해 알아보겠습니다. 디비링크란 네트워크상에 다른데이터베이스와의 연결을 통하여 마치 로컬데이스베이스형태로 사용할수 있습니다. 그럼 디비링크는 언제 사용할까요? 물론 여러용도가 있겠지만 스케쥴러를 통하여 원격지에 있는 데이터를 로컬쪽에 수집한다거나 로컬자료를 원격지에 전송할때 아주 편리하게 작업할수 있습니다. 디비링크는 이기종간에도 지원하니 관련부분을 알아보도록 하겠습니다. 1. MSSQL to MSSQL 디비링크방법 먼저 연결서버를 생성해보겠습니다. 연결서버 명칭을 MSSQL_DBLINK로 하여 연결해보겠습니다. MSSQL_DBLINK라는 연결서버명칭으로 생성해보겠습니다. 123456 EXEC sp_addlinkedserver @server = 'MSSQL_DBLINK', --연결..

프로그래밍/DB 2020.09.03