728x90
반응형

IT/SQLD 98

[MSSQL] 트랜잭션 로그파일 삭제 및 잘라내기

MSSQL 트랜잭션 로그파일 삭제 및 줄이는 방법 우선 DB와 로그 크기 확인을 위해 아래와 같은 쿼리를 실행해보자. SELECT * FROM sys.master_files WHERE database_id like '%database_name%' 데이터베이스(DB)와 로그(LOG) 크기를 축소하기 위한 쿼리문. 로그는 "데이터베이스명_LOG"으로 대부분 되어 있음. - 로그 백업 및 잘라내기 (잘라내기를 더 권장함) 1. BACKUP LOG 'DB명' TO '디바이스명(장치명)' -- 로그백업 2. BACKUP LOG 'DB명' WITH TRUNCATE_ONLY -- 로그 잘라내기 - 로그 축소하기(TRUNCATEONLY를 더 권장함) 1. DBCC SHRINKFILE('로그파일명', 파일크기) -- 파..

IT/SQLD 2023.10.23

[MSSQL] 트랜잭션 로그 보기

트랜잭션 로그 조회 데이터베이스에서 발생하는 행위들이 저장되는 트랜잭션 로그를 조회해보자 fn_dblog(시작 LSN, 종료 LSN) 시작 LSN, 종료 LSN이 NULL일 경우 트랜잭션 로그 파일의 모든 로그 결과를 반환한다. SELECT * FROM fn_dblog(NULL, NULL) 결과 데이터 특정 테이블의 트랜잭션 로그 AllocUnitName 칼럼에서 테이블의 이름을 확인할 수 있다. SELECT [Current LSN], [Operation], [Transaction ID], [AllocUnitId], [AllocUnitName], [Begin Time], [End TIme] FROM fn_dblog (NULL, NULL) WHERE AllocUnitName = 'dbo.ggmouse' 특..

IT/SQLD 2023.10.23

[MS-SQL] IN / NOT IN

IN / NOT IN IN : 지정된 값이 하위 쿼리 또는 목록의 모든 값과 일치하는지를 확인합니다. NOT IN : 지정된 값이 하위 쿼리 또는 목록의 모든 값과 일치하지 않는지를 확인합니다. 쿼리문 SELECT * FROM A_TABLE WHERE COL1 IN ('VALUE1', 'VALUE2'); -- COL1이 'VALUE1', 'VALUE2'와 일치하는 값을 출력 SELECT * FROM A_TABLE WHERE COL1 NOT IN ('VALUE1', 'VALUE2'); -- COL1이 'VALUE1', 'VALUE2'와 일치하지 않는 값을 출력 출처 : [MS-SQL] IN / NOT IN (tistory.com)

IT/SQLD 2023.10.22

[SQL] (NOT)EXISTS 와 (NOT)IN 비교하기

최근 작업하고 있는 모듈에서 A 테이블과 B 테이블을 비교하여 B 테이블에 없는 값을 A 테이블에서 가져오는 작업을 진행하고 있다. 처음에는 NOT IN 구문을 사용하여 비교하고 가져오고 있었는데, NOT EXISTS 를 사용하면 더 효과적이라는 말을 듣고, 궁금증에 여기저기 검색해보았다. 결론적으로 말하자면 조회 건수가 많지 않은 쿼리에서는 성능이 비슷하지만, 조회 건수가 급격하게 늘어나면 (NOT)EXISTS 구문이 훨씬 효과적이라는 것이다. 초기 데이터 테이블은 rel1 , rel2 테이블을 생성하였다. rel1 rel2 1. (NOT) IN SELECT * FROM rel1 WHERE number IN (SELECT number FROM rel2); SELECT * FROM rel1 WHERE n..

IT/SQLD 2023.10.22

WHERE : 단일 조건식 지정

WHERE절은 SELECT, UPDATE, DELETE문 등에서 특정 레코드에 대한 조건을 설정할 때 사용되는 구문이다. 단순한 조건식은 하나의 컬럼과 특정 컬럼값을 비교하는 식을 들 수 있다. 예를 들어, WHERE ID = 1라는 조건식은 ID가 1인 레코드를 의미한다. 아래는 다양한 단일 조건식들 몇 가지를 예를 들어 본 것이다. 예제 WHERE : 복수 조건식 지정 여러 개의 조건식을 WHERE절에서 표현할 경우는 조건식들을 AND나 OR로 연결한다. 두 조건이 동시에 만족되어야 한다면 WHERE 식1 AND 식2과 같이, 두 조건중 하나만이라도 만족되면 된다면 WHERE 식1 OR 식2과 같이 표현한다. NOT은 해당 조건의 반대 조건을 의미한다. 즉, 식 'NOT 조건1' 은 조건1이 거짓일 ..

IT/SQLD 2023.10.22

MSSQL DELETE 데이터 삭제하기

MSSQL의 데이터 삭제 기능인 DELETE문에 대한 사용법과 부가적인 팁에 대한 글입니다. DELETE란? 데이터베이스 테이블 내 데이터를 삭제하는 명령어입니다. 가장 기본적인 문법 중 하나입니다. 삭제이기 때문에 신중히 사용해야 합니다. DELETE문 사용법 기본 사용법 --//문법 DELETE 삭제대상 테이블 (WHERE 대상행 조건) --//예제 DELETE TARGET_TABLE --// TARGET_TABLE 모든 데이터 삭제 DELETE TARGET_TALBE WHERE IDX = 10 --// TARGET_TABLE에서 IDX = 10인 ROW 삭제 모든 데이터를 삭제하는 경우는 거의 없기 때문에 DELETE문 역시 WHERE 절을 지원합니다. WHERE절에 조건을 입력해 지우려는 행을 특..

IT/SQLD 2023.10.22

[ANSI SQL] 7. WHERE 절의 조합(AND / OR / NOT / IN)

WHERE 절의 조합 예제 데이터 : User_Table SELECT * FROM User_Table ; --------------------------------------------------------------------------------------------------------------------------- AND 연산자의 사용 입력 - SELECT user_id , user_mobile , user_gender , user_amount , user_addr FROM User_Table WHERE user_gender = 'male' AND user_amount >= 5500 ; 풀이 : User_Table 에서 성별(user_gender)이 남자이고 보유금액(user_amount)가 ..

IT/SQLD 2023.10.22

[SQL] where절: 부정연산자( 같지 않다 !=, ^=, <>, NOT)

같지 않음을 표현하는 연산자 != ^= NOT 컬럼명 = ~보다 크지 않다. NOT 컬럼명 > A와 B 값 사이에 있지 않다. NOT BETWEEN A AND B list 값과 일치하지 않는다. NOT IN (list) NULL값을 갖지 않는다. IS NOT NULL 예시 -- 소속이 K02 인 선수 중에서 포지션이 MF가 아니고, 175 이상 185 이하가 아닌 선수를 찾아라 -- 이렇게 해도 되고 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키 FROM PLAYER WHERE TEAM_ID = 'K02' AND NOT POSITION = 'MF' AND NOT HEIGHT BETWEEN 175 AND 185 ; -- 이렇게 해도 된다. SE..

IT/SQLD 2023.10.22

테이블 최종 업데이트 시간 확인

특정 데이터베이스의 테이블이 언제 마지막으로 업데이트 되었는지 동적 관리 뷰를 사용하여 확인하는 방법에 대해서 아래와 같이 정리하였습니다. [환경] SQL Server 2005 / 2008 [시나리오] 사용자 데이터베이스 AlbumSales 에는 AlbumInfo 라는 테이블이 존재합니다. 해당 테이블에 있는 데이터를 DELETE 한 뒤 테이블이 업데이트 된 시간을 확인하는 방법입니다. -- 데이터 삭제를 통한 테이블 업데이트 DELETE FROM AlbumInfo WHERE AbNo = 3 -- AlbumInfo 테이블이 업데이트 된 시점 확인 SELECT last_user_update FROM sys.dm_db_index_usage_stats WHERE object_id = OBJECT_ID('Alb..

IT/SQLD 2023.10.17
728x90
반응형