DB 28

[MSSQL] 대량 INSERT 시, 최소 로깅 모드(TABLOCK) 사용하기

MSSQL에서 로깅을 최소화하는 방법데이터베이스 복구 모델 : Simple 또는 BULK LOGGED 복구 모델을 사용SSIS(DTS), SELECT INTO..., BULK INSERT 등의 툴과 구문 사용INSERT 구문에 TABLOCK 힌트 사용 INSERT 구문에 사용하는 TABLOCK 힌트는 MSSQL 2008 버전부터 제공하는 기능으로 대량 INSERT 작업에서 각 행별로 로깅하지 않고, 익스텐트 할당 시에만 로깅을 함으로써 INSERT 처리 작업의 시간을 크게 단축할 수 있음 [충족조건]- 복제 대상 테이블이 아니어야 함. - 단순 대량 삽입 모드 - 인덱스 없는 대상 테이블 - 클러스터 인덱스가 있는 경우, 데이터가 없는 빈 테이블 [Syntax]INSERT INTO 타겟테이블명 WITH(..

DB/MSSQL 2024.08.23

[MSSQL] 인덱스 조각화 정보 조회

특정 DB 내 모든 인덱스 조각화 정보 조회 : 조회하려는 DB에서 실행USE [DB명] GO SELECT db_name(db_id()) AS DBName , schema_name(tmp2.schema_id) AS SchemaName , tmp2.name AS TableName , tmp3.name AS IdxName , ROUND(tmp1.AVG_FRAGMENTATION_IN_PERCENT, 2) AS 'Fragmentation %' FROM (SELECT * FROM sys.dm_db_index_physical_stats (DB_ID(db_name()), NULL, NULL, NULL, NULL) ) AS tmp1 LEFT OUTER JOIN sys.tables AS tmp2 ON tmp1.objec..

DB/MSSQL 2024.08.20

[MSSQL] 특정문자열 추출하기 (SUBSTRING/CHARINDEX)

기본은 SUBSTRING 을 이용하며, 특정 문자열 전후 위치를 알수 있도록 CHARINDEX 함수를 함께 사용하여 추출할 수 있다.   Syntax SUBSTRING(문자열, 시작문자열, 추출길이) CHARINDEX(찾을문자열, 문자열)  확인순서1. 시작문자열 위치 찾기2. 종료문자열 위치 찾기3. 추출 길이 계산 (시작문자열과 종료문자열 위치를 알아야 함)4. 문자열 추출   예제) 문자열 'ADMIN-DB-01-(TestDb).ppt'  에서 DB명만 추출해보기DECLARE @string VARCHAR(50)SET @String='ADMIN-DB-01-(TestDb).ppt'-- 1. 시작문자열 위치 찾기SELECT CHARINDEX('(',@String) + 1-- 2. 종료문자열 위치 찾기SE..

DB/MSSQL 2024.08.20

[MSSQL] 오류 메시지 조회하기

쿼리 실행 후 확인이 필요한 오류 메시지의 경우 다음과 같이 조회해볼 수 있다. -- --------------------------------------- -- 오류메시지조회 -- --------------------------------------- SELECT * FROM sys.messages WHERE message_id=203 -- 오류번호 입력 AND language_id=1042 -- 1033: English, 1042: 한국어 -- 조회 결과 message_id language_id severity is_event_logged text 203 1042 160이름 '%1!'은(는) 올바른 식별자가 아닙니다.

DB/MSSQL 2024.08.12

[MariaDB] DB 기동 및 종료 : systemctl과 service 명령어 차이

systemctl 또는 service 두 명령어 모두 같은 동작을 수행. Linux 버전에 따라 사용하면 되며, 최신버전에서는 둘다 사용 가능 하나 보통 systemctl을 사용함 1) systemctl + RHEL 7에 도입된 systemd를 관리하는 명령어 + /usr/lib/systemd/system 디렉토리의 .service파일을 systemctl 명령어로 서비스를 제어 + apt명령어로 설치를 할 경우 /etc/systemd/system에 "서비스이름.service" 또는 "서비스이름.socket"으로 등록됨. (파일생성) 2) service + CentOS6버전 이하에서 service구문으로 사용. 이상은 systemctl

DB/MariaDB 2024.08.12
320x100