본문 바로가기
반응형

DATABASE/MsSQL27

[MsSQL] Openquery delete - 다른 데이터베이스의 데이터 삭제하기 OpenqueryOpenquery를 통해 이기종의 데이터베이스에 접근하여 데이터를 조회하거나 다른 DML을 사용 할 수 있다. 당연하게도 Linked Server로 연결되어 있는 다른 데이터베이스의 테이블에 대해 데이터를 삭제도 할 수 있는데, 오늘은 Openquery delete문을 사용하는 법에 대해서 알아보도록 하자. delete from항상 delete 문을 사용하기전에는 삭제되는 데이터를 확인해보는 습관을 가지는것을 추천한다.openquery의 select을 활용하여, 우리가 삭제할 데이터를 확인해본다. 데이터를 삭제하는 openquery delete문은 아래와 같다.delete from openquery([Linked Server], '[select Query]')특정 데이터만 삭제하고 싶은.. 2024. 4. 30.
[MsSQL] SQL Server - AlwaysOn Basic 구성 (AD 없이 처음부터 끝까지) SQL Server - High Availability 데이터베이스를 운영함에 제일 중요한 것은 무엇일까? 중요한 것은 많지만 그 중에 하나를 꼽자면 바로 서버 이중화를 통한 고가용성 - High Availability (HA) 이 꼭 나올 것이다. 장애가 나도 최대한 빠른시간에 대처하여 서비스를 유지할 수 있게 해주는HA구성이야 말로 운영 서비스 중 제일 중요하기 때문이다. SQL Server 의 여러가지 HA구성 방법 중 Active Directory (AD) 설정이 없이 AlwaysOn Basic을 구성하는 방법에 대해서 소개해보도록 하겠다. AlwaysOn Basic 기존에 구성되어있는 SQL Server에서 라이센스 비용을 아끼고자 SQL Server 2019 Standard 버전으로 변경하여 .. 2024. 4. 23.
[MsSQL] SQL Server 2019 Standard 기본 설치 (Windows Server) SQL Server 2019 Standard 여러종류의 데이터베이스를 설치해보았지만, 역시 윈도우 기반의 SQL Server 설치가 제일 편리하다. UI도 제공되고, 한글 번역과 다음 다음 버튼으로 손쉽게 설치할 수 있으니, Oracle 이나 MariaDB등 보다 쉽고 편리하다 생각이 든다. Server 설치 방법 SQL Server 2019 Standard ISO 파일을 실행하여 설치센터 창을 연다. 설치 -> 새 SQL Server 독립 실행형 설치 또는 기존 설치에 기능 추가 선택 아래와 같은 설치 창이 뜨며, 제품 키 입력 창이 나온다. 제품키 입력 / 확인 후 다음 동의함 체크 후 다음 업데이트 확인은 따로 필요하지 않기에 미체크 후 다음 SQL Server를 사용함에 있어 필수적인 인스턴스 기.. 2024. 4. 20.
[MsSQL] Openquery insert - 다른 데이터베이스의 테이블에 데이터 저장하기 Openquery Linked Server (연결된 서버)를 통해 연결이 되어있는 데이터베이스 들에 대해 Openquery문법을 통해 서로 연결하여 DML을 실행 할 수 있으며, 저번 포스팅에 select문에 관련된 여러가지 방법에 대해서 소개 하였다. [MsSQL] Openquery select - 다른 데이터베이스 데이터 읽고 저장하기 select문을 이용하여 내가 현재 위치하고있는 데이터베이스에 데이터를 insert할 수 있지만, 원격지 이기종 데이터베이스에 데이터를 insert하는 방법에 대해서 간략하게 소개해 보도록 하겠다. insert into ~ values select * from openquery([Linked Server], '[select Query]') 연결된 서버를 통해 연결되어있.. 2024. 4. 16.
[MsSQL] Openquery select - 다른 데이터베이스 데이터 읽고 저장하기 OpenqueryLinked Server (연결된 서버)를 통해 연결이 되어있는 데이터베이스 들에 대해 Openquery문법을 통해 서로 연결하여 DML을 실행 할 수 있다. 해당 문법에 대해서 알아보도록하며 요번 포스팅에서는 Openquery문법 중 Select문을 통해 다른 데이터베이스의 데이터를 읽고, 읽은 데이터를 저장하며 사용하는 방법에 대해서 소개해보도록 하겠다. selectselect * from openquery([Linked Server], '[select Query]') 연결된 서버(Linked Server)를 설정해둔 서버에 대해서 openquery문법을 통해 해당 데이터베이스의 테이블을 조회 할 수 있다.[select query]에 들어가는 문법은 해당 연결된 .. 2024. 4. 9.
[MsSQL] 테이블 정의서 만들기 - 쿼리로 추출하기 테이블 정의서 (Table Spec) 테이블의 자세한 내용에 대해 설명 할 때 꼭 필요한 것이 테이블 정의서이다. 테이블의 존재하는 컬럼과 컬럼들의 Data Type 등을 기록하는 문서이며, 해당 문서를 통해 DBA에게 Table 생성을 요청하거나, 프로젝트 명세를 위해 내역을 첨부하는 등 필요가 많다. 보통은 DBA에게 요청하는 문서로 작성되어 오지만, 기존의 테이블의 정의를 확인하고 문서화 하기위해 정의서를 생성해 내야할 필요가 있다. 그럴 때 사용하기 적절한 쿼리에 대해 소개해보도록 하겠다. Query Database에 생성되어있는 Table에 대한 테이블 정의서를 추출하는 쿼리는 아래와 같다. select o.name as table_name, a.value as table_comment, b.n.. 2024. 3. 26.
[MsSQL] Clustered 연구 노트 - 1. Heap Table 구조 파헤치기 (Page, Index) MsSQL Clustered 연구 노트 MsSQL의 테이블은 2가지 데이터 저장 자료구조를 가지고 있다. 하나는 데이터를 비어있는 Page에 데이터를 담는 Heap 구조와 Clustered Key 값을 가지고 정렬하여 저장하는 Clustered 구조를 가지고 있다. 이번에 작성하는 MsSQL Clustered 연구노트에는 Heap과 Clustered의 데이터가 저장되는 자료구조와 각 구조의 차이에 대해서 한번 Page단위까지 찾아가 보도록하겠다. 테스트를 위해 파일 그룹과 ndf파일을 분리하여 생성하였다. Table을 위치할 DATA 파일 그룹과 Index를 각각 위치시킬 INDEX_01 ~ INDEX_03 파일 그룹을 생성하여, 데이터의 변화 과정에 대해서 확인해보도록 하겠다. Test Table 만들.. 2024. 3. 12.
[MsSQL] Database Backup이란? - Full / Differential / Log Backup Backup 백업이란, 데이터베이스 또는 해당 트랜잭션 로그의 데이터 또는 로그 레코드를 다른 디바이스 등에 복사하여 두는 것이다. 데이터베이스 백업하고 해당 백업파일을 안전한 저장공간에 보관하고 있는 것이 치명적인 데이터 손실로부터 데이터를 유일하게 보호 할 수 있는 수단이다. MsSQL에서는 Database 혹은 Data File단위의 백업만 가능하다. 즉, 테이블 단위의 백업은 불가하다. MsSQL의 데이터베이스 백업에는 크게 아래와 같은 3가지가 있다. 전체 백업 - Full Backup 차등 백업 - Differential Backup 트랜잭션 로그 백업 - Transaction Log Backup Full Backup (전체 데이터베이스 백업) MsSQL의 데이터베이스 백업하는 방법 중 해당 .. 2024. 2. 24.
[MsSQL] 모든 DB에 한번 쿼리 던지기 / DB 모를 때 (SP_MSFOREACHDB 활용하기) 자주 쓰는 쿼리 - SP_MSFOREACHDB 특정 테이블을 찾고 싶은데, 어떤 데이터베이스에 있는지 모를 때, 혹은 여러 데이터베이스들을 돌아가며 파일사이즈를 조사할 때 같이 모든 데이터베이스에 같은 쿼리를 조회하고 싶을 때가 있다. 이럴 때 쓸수있는 시스템 프로시저로 단순 조회작업 뿐만 아니라 프로시저에 활용하여 로그성 데이터, 반복적인 쿼리 조회등을 단순화 하여 업무 능률을 향상 할 수 있다. Query 사용방법은 매우 간단하다. EXEC MASTER.dbo.SP_MSFOREACHDB ' use ? begin [QUERY] end ' SP_MSFOREACHDB의 파라미터로 ' use ? begin [쿼리문] end ' 값을 넣어주면, use ? 부분에 모든 데이터베이스가 한번씩 들어가 쿼리문을 실행.. 2024. 2. 13.
[DBA][MsSQL] Index 사용량 조회 / 미사용 Index 확인 자주 쓰는 쿼리 - Index 사용량 조회 테이블 조회 효율을 위해 인덱스를 생성하여 사용하는 것은 당연하다. 하지만 시간이 지나고 업무 계획의 방향성이 바뀌다보면, 이렇게 생성하여 사용하던 인덱스들 중 사용하지 않게 되는 인덱스가 생길 수 있다. 이렇게 사용하지 않는 인덱스를 한번씩 정리를 해주게 된다면, 테이블의 DML작업에 대해 효율이 조금이나마 올라갈 수 있게 되는데, 이럴 때 도움이 될 만한 인덱스 사용량 조회 쿼리에 대해서 한번 소개해보도록 한다. Query 인덱스 사용량을 조회하는 쿼리는 아래와 같다. use [DATABASE NAME] select db_name(s.database_id) as database_name, object_name(s.object_id) as table_name,.. 2024. 2. 10.
반응형