본문 바로가기
반응형

 DataBase 18 

img-skin-thumnail [MS-SQL] DB 로그삭제(파일축소) - Version 4 일괄적용 DB 로그삭제(파일축소) - Version 4 일괄적용 포스팅 개요 서버의 모든 DB 정보를 불러오는 'sys.databases' 테이블을 참고하여 모든 사용자 DB의 로그 삭제(축소) 작업을 일괄로 진행하는 쿼리입니다. 그럼 오늘 포스팅 예제 쿼리의 목적과 장점에 대해 먼저 알아보겠습니다. 트랜잭션 로그(transaction log)의 한계까지 가득 차 에러가 생길 때 사용합니다. 하드디스크 용량이 부족할 정도로 로그 크기가 커졌을 때 사용합니다. Sql Server 2005 이상을 기준으로 작성되었습니다. 아래 그림은 시스템 데이터베이스와 사용자 데이터베이스를 구분하는 방법입니다. 예제 쿼리 Version 1 부터 꾸준히 보완하였고 사용자 DB만 불러와 일괄로 처리하도록 완성하였습니다. 'sys.da.. 2022. 12. 23.
img-skin-thumnail [MS-SQL] DB 로그삭제(파일축소) - Version 3 단일적용(간단2) DB 로그삭제(파일축소) - Version 3 단일적용(간단2) 포스팅 개요 이전 Version과 큰 차이점은 데이터베이스 이름을 변수로 받아 사용하기 위한 전체적인 구문 변환입니다. 자세한 내용은 마지막 참고 링크를 통해 이전 Version의 내용을 확인하시면 됩니다. 그럼 예제 쿼리의 목적과 장점에 대해 먼저 알아보겠습니다. 트랜잭션 로그(transaction log)의 한계까지 가득 차 에러가 생길 때 사용합니다. 하드디스크 용량이 부족할 정도로 로그 크기가 커졌을 때 사용합니다. Sql Server 2005 이상을 기준으로 작성되었습니다. 이전 Version들과의 실행 결과 부분에서는 큰 차이가 없습니다만 사용자 프로시저로 생성하기 더 쉬워졌으며 다른 방향으로의 활용도 가능해졌습니다. 예제 쿼리 .. 2022. 12. 22.
img-skin-thumnail [MS-SQL] 물리적인 테이블 크기 확인하기 물리적인 테이블 크기 확인하기 포스팅 개요 가끔 테이블마다 얼마만큼의 데이터가 쌓여있는지 그 크기(용량)를 확인할 필요할 필요가 있습니다. 각 테이블마다 정확한 MB, GB 등의 수치로 표현하여 확인할 수 있다면 지나치게 낭비되는 테이블을 검색하실 때 도움이 됩니다. 예제 쿼리 아래 쿼리문에서 DB_NAME단어를 데이터베이스 이름으로 변경합니다. 대괄호 부분은 지우지 않아도 이름만 맞추면 문제가 없습니다. USE [DB_NAME] SET NOCOUNT ON CREATE TABLE #TBLSize ( Tblname VARCHAR(80), TblRows INT, TblReserved VARCHAR(80), TblData VARCHAR(80), TblIndex_Size VARCHAR(80), TblUnused.. 2022. 12. 18.
img-skin-thumnail [MS-SQL] 특정 컬럼(Column)의 정보를 이용하여 테이블 검색 특정 컬럼(Column)의 정보를 이용하여 테이블 검색 포스팅 개요 오늘 포스팅에서는 특정 컬럼(column)의 타입 정보와 길이만 가지고 테이블을 검색하는 방법입니다. 이를 이용하여 대량의 테이블에 배치 작업을 걸거나 테이블 구조를 변경하는 작업에 많은 시간을 절약할 수 있습니다. 예제 쿼리 예시 쿼리에서는 master 데이터베이스에서 varchar(30) 컬럼 속성을 가진 테이블 검색합니다. USE [master] SELECT * FROM information_schema.columns WHERE DATA_TYPE = 'Varchar' AND CHARACTER_MAXIMUM_LENGTH = '30' AND TABLE_NAME IN (Select name From sysobjects where xtyp.. 2022. 12. 14.
img-skin-thumnail [MS-SQL] DB 로그삭제(파일축소) - Version 2 단일적용(간단1) DB 로그삭제(파일축소) - Version 2 단일적용(간단1) 포스팅 개요 Version 1에서 동적 쿼리 방식을 이용한 Version 2 방식입니다. 자세한 내용은 마지막 참고 링크를 통해 확인하시고 오늘 포스팅한 예제 쿼리의 목적과 장점에 대해 먼저 알아보겠습니다. 트랜잭션 로그(transaction log)의 한계까지 가득 차 에러가 생길 때 사용합니다. 하드디스크 용량이 부족할 정도로 로그 크기가 커졌을 때 사용합니다. Sql Server 2005 이상을 기준으로 작성되었습니다. 이전 글 Version 1 단점이었던 [DB_NAME], [DB_NAME_Log]의 명칭을 자동으로 가져와 적용하기에 더 간편해졌습니다. 예제 쿼리 이전 버전과는 다른 점은 [DB_NAME]만 정확하게 적어주면 Log .. 2022. 12. 10.
img-skin-thumnail [MS-SQL] 문자열의 자음(초성) 추출 함수 만들기 문자열의 자음(초성) 추출 함수 만들기 포스팅 개요 실제 문자열 필드에서 자음만 추출하는 함수입니다. 함수 형식으로 한글을 제외한 영문이나 숫자, 특수 문자는 그대로 검색합니다. 자주 사용하지는 않지만 가끔 요청이 들어올 때 생성하는 함수로 없으면 아쉬운 그런 쿼리입니다. 예제 쿼리 예제 쿼리를 복사하여 사용할 데이터베이스에서 실행하면 스칼라 반환 함수가 생성됩니다. 생성 후에는 함수와 인자값을 조합하셔서 사용하시면 됩니다. 예제 쿼리를 등록했으면 [Select dbo.Text_Farsing('가나ABCD다라1234')] 쿼리로 간단 테스트가 가능합니다. 함수로 등록된 문자열에서 오로지 한글만 자음으로 변경되어 표시됩니다. 여러 방식으로 작업해왔지만 이 쿼리가 직관적이어서 수정이 간편했던 경험이 있었습니.. 2022. 3. 21.
img-skin-thumnail [MS-SQL] 임시 테이블을 생성하고 활용하자 임시 테이블 생성하고 활용하자 포스팅 개요 오늘 포스팅에서는 실제로 존재하는 테이블이 아니라 임시로 사용할 테이블을 생성하고 삭제하는 예제 쿼리문입니다. 접속한 세션별로 생성되기 때문에 같은 임시 테이블 명을 쓰더라도 공유가 불가능하며 실제 대용량 쿼리에서 괜찮은 퍼포먼스를 보여주기 때문에 쿼리 비용절감에 유리합니다. 단, 상황에 따라서 테이블 변수 등 다른 방법도 존재하니 기회가 되면 따로 포스팅해보겠습니다. 임시 테이블은 이름 앞에 #또는 ##기호를 붙여서 구별합니다. #(세션 적용) ##(전역 적용) 임시 테이블은 사용을 다하면 삭제하는 것이 좋습니다. 예제 쿼리 아래 쿼리문에서 Table_Name단어를 원하는 임시 테이블 이름으로 변경한다. --이전 임시테이블이 존재하는 경우 삭제 IF OBJEC.. 2018. 1. 3.
img-skin-thumnail [MS-SQL] DB 로그삭제(파일축소) - Version 1 단일적용(일반) DB 로그삭제(파일축소) - Version 1 단일적용(일반) 포스팅 개요 SQL Server의 트랜잭션 로그(transaction log)가 가득 차거나 Database 파일 중. ldf 파일 크기가. mdf 파일에 비해 지나치게 커졌다면 오늘 포스팅을 적용해 보시길 바랍니다. 버전은 Sql Server 2005 이상에서 작업하셔야 되며 유지보수에 사용하신다면 동적 쿼리 방식을 이용한 Version 2 이상을 참고하시길 바랍니다. 예제 쿼리 아래 쿼리문에서 DB_NAME단어를 데이터베이스 이름으로 일괄변경(Ctrl+H) 또는 직접 변경합니다. 참고로 대괄호 부분은 지우지 않아도 이름만 맞추면 동작에는 문제가 없습니다. USE [DB_NAME]; GO ALTER DATABASE [DB_NAME] SET .. 2017. 12. 15.
img-skin-thumnail [MS-SQL] 운영 체제 오류 5(액세스가 거부되었습니다.)(으)로 인해.. 운영 체제 오류 5(액세스가 거부되었습니다.)(으)로 인해... 상세 오류 내용 SQL SERVER에 접속하는 프로그램에서 해당 오류가 발생한다면 오늘 포스팅을 꼭 참고해보시길 바랍니다. 메시지 5133, 수준 16, 상태 1, 줄 1 파일 "D:\XXX\XXX\XXX\YYY.mdf"에 대한 디렉터리를 조회하지 못했습니다. 또는 운영 체제 오류 5(액세스가 거부되었습니다.)(으)로 인해... 상세 해결 방법 [제어판]→[관리도구]→[서비스] 순으로 접속하셔서 서비스를 열어줍니다. 서비스 목록에서 SQL SERVER(인스턴스명)을 찾아 우클릭으로 속성창을 열어줍니다. 로그온탭으로 이동하여 [로컬 시스템 계정] 항목의 상태를 데스크톱 상호 연동으로 바꾼다. 일반탭으로 다시 돌아가서 서비스를 재시작하시고 이제.. 2016. 3. 2.
728x90
반응형