MSSQL 8

[DB] MSSQL GROUBY CASE문 사용

고객 테이블에 주소 정보가 있으며, 주소를 기준으로 시/도로 구분하여 통계를 집계하는 방법을 안내드리겠습니다. 아래는 Customers 테이블 예시와 GROUP BY 및 CASE 문을 사용한 SQL 쿼리 예시입니다.1. Customers 테이블 생성우선, 고객 이름과 주소 정보를 포함한 Customers 테이블을 만들겠습니다.1CREATE TABLE Customers ( CustomerID INT PRIMARY KEY, CustomerName NVARCHAR(50), Address NVARCHAR(100) );2. 테이블에 예시 데이터 추가주소는 각 지역에 속하도록 다양한 시/도 정보를 포함하여 넣어줍니다.1INSERT INTO Customers (CustomerID, CustomerName, Addre..

프로그래밍/DB 2024.11.12

[DB] MSSQL 2022 구성관리자실행

1. 시작 -> 검색메뉴 -> SQLServerManager16.msc 입력 검색창에 SQLServerManager16.msc를 입력하여 실행합니다. SQL구성관리자(SQL Server Configuration Manager) 가 실행됩니다.  2. SQL버전별 구성관리자 명령어SQL 버전별 구성관리자 실행명입니다. 버전별로 1씩올라가니 참고해두면 해당부분 찾을때 편리합니다.버전명령어SQL2022SQLServerManager16.msc SQL2019SQLServerManager15.mscSQL2017SQLServerManager14.mscSQL2016SQLServerManager13.mscSQL2014SQLServerManager12.mscSQL2012SQLServerManager11.msc

프로그래밍/DB 2024.09.02

[윈도우] 메모리부족 해결하기 1 (MSSQL메모리점유 높은문제)

서비스운영중인 PC의 메모리가 부족하여 확인을 해보니 작업관리자에서는 메모리를 실제 많이 사용하지 않는데 메모리가 부족하여 메모리 릭이 의심되어 확인해보니 리소스 모니터에 sqlserver의 커밋메모리가 증가되어있어 있는 부분을 확인하였습니다. MSSQL 최대메모리를 512MB로 줄이니 커밋메모리가 750M정도로 축소되었서 해당부분이상으로 증가되지 않는 부분을 확인하였습니다. 최대메모리를 줄이면 SQL성능에 문제는 있을수 있으나 윈도우 메모리 부족으로 서비스가 문제된 부분을 해결 할 수 있습니다. 최대메모리를 제한 하지 않으면 메모리가 계속 증가되어 서비스가 문제될수 있으니 서비스에 문제가 되지 않을정도로 적절하게 셋팅 후 사용하면 메모리 부족현상을 해결 할 수 있습니다.

[DB] MSSQL 트리거 비활성화

MSSQL에서 트리거를 비활성화 하는 방법에 대해 알아보겠습니다. 사이트별로 트리거를 사용하는 경우가 있고 아닌경우가 있는 경우 거의 사용하지 않는데 만들어 놓기가 애매한 경우에는 해당트리거를 비활성화 후 필요시에 활성화 하여 사용할 수 있습니다. 1. 디자이너에서 처리하는 방법 employee테이블에 Trigger항목을 선택하면 employee_insupd트리거가 있습니다. 마우스 우클릭을 누루고 비활성(Disable)을 하면 비활성화 되고 x표시로 사용하지 않는 상태로 나타나는 부분을 확인 할 수 있습니다. 2. 쿼리문으로 하는 방법 비활성화 : ALTER TABLE [dbo].[employee] DISABLE TRIGGER [employee_insupd] 활성화 : ALTER TABLE [dbo]...

프로그래밍/DB 2024.02.24

[DB] MSSQL 특정문자열 업데이트(REPLACE,STUFF)

테이블 내용중에 특정부분의 데이터값을 다른문자열로 변경하고 싶을 경우에는 REPLACE, STUFF를 사용하여 변경이 가능합니다. 1. Replace문을 사용하기 AdventureWorks데이터베이스의 Customer테이블의 EmailAddress의 .com도메인은 .co.kr로 변경해보겠습니다. 데이터를 변경할때는 Update문을 바로 하기보다는 Select문으로 결과값을 미리 확인 후 업데이트 하는게 좋습니다. REPLACE문을 이용해서 .com문자열값을 .co.kr로 변경하는 쿼리입니다. 1 2 UPDATE [AdventureWorksLT2022].[SalesLT].[Customer] SET EmailAddress = REPLACE(EmailAddress,'.com','.co.kr') 업데이트문을 ..

프로그래밍/DB 2024.01.15

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

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

프로그래밍/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
1