본문 바로가기

전체 글

(68)
[MongoDB] 데이터베이스(Database), 컬렉션(Collection), 도큐먼트(Document) 삽입, 갱신, 삭제 및 조회 데이터베이스 생성몽고DB 에서 데이터베이스 생성은 RDBMS 와는 다르다.명시적으로 데이터베이스를 생성하는 명령문은 없으며, 데이터베이스를 사용하고 컬렉션을 생성하거나 도큐먼트를 삽입하면 데이터베이스가 생성된다.1. 데이터베이스 선택use myDatabase위 명령을 실행하면 myDatabase 라는 이름의 데이터베이스가 선택된다. 이후에 이 데이터베이스에서 컬렉션을 생성하거나 도큐먼트를 삽입하면 데이터베이스가 생성이 된다. 2. 컬렉션(Collection) 생성db.createCollection("myCollection")위 createCollection 메서드를 사용하여 컬렉션을 생성할 수 있다.컬렉션을 생성한 후, 데이터베이스를 조회하면 myDatabase 데이터베이스가 생성된 것을 확인 할 수 있..
[MongoDB] 도큐먼트(Document), 컬렉션(Collection), 데이터베이스(Database) 개념 도큐먼트(Document) - 몽고DB 데이터의 기본 단위이다. (RDBMS 의 행에 대응된다.) - 정렬된 키(Key)와 연결된 값(Value)의 집합으로 이루어져 있다.{"Key" : "Value"} - 대부분의 도큐먼트는 다중 키(Key)/값(Value)을 가진다.{"Key1" : "Value2", "Key2" : "Value3"} - 키(Key)는 문자열이어야 한다. (NULL 포함하지 않으며 .과 $ 문자는 예약어로 취급) - 데이터형과 대소문자를 구별한다. 아래의 두 도큐먼트는 서로 다르다.{"count" : 2}{"count" : "2"}{"count" : 2}{"Count" : 2} - 키(Key)는 중복될 수 없다. 아래 도큐먼트는 name 이라는 키가 중복이 되어 올바르지 않은 형식이다..
[SQL Server / MS-SQL] 저장 프로시저(Stored Procedure) 내용 조회 저장 프로시저(Stored Procedure) 에서만 조회하는 경우SELECT OBJECT_NAME(object_id) AS ProcedureName, OBJECT_DEFINITION(object_id) AS ProcedureDefinitionFROM sys.proceduresWHERE OBJECT_DEFINITION(object_id) LIKE '%ORDER BY [0-9]%' 다양한 객체 유형(저장 프로시저, 뷰, 함수 등) 에서 조회하는 경우SELECT B.name AS ProcedureName, A.definition AS ProcedureDefinitionFROM sys.sql_modules AINNER JOIN sys.objects B ON A.object_id = B.object_..
[SQL Server / MS-SQL] 테이블별 용량 및 ROW 수 조회 테이블별 용량 조회SELECT C.name AS [TableName], SUM(A.total_pages)*8.0/1024 AS [TotalSize(MB)]FROM sys.allocation_units AINNER JOIN sys.partitions B ON B.hobt_id = A.container_idINNER JOIN sys.table C ON B.object_id = C.object_idINNER JOIN sys.schemas D ON C.schema_id = D.schema_idGROUP BY C.nameORDER BY 2 DESC 테이블별 ROW 수 조회SELECT B.name AS [TableName], A.row_count AS [RowCount]FROM sys.dm_db_part..
[Database] 인덱스 스플릿 (Index Split) 인덱스 스플릿(Index Split) 이란?데이터베이스에서 B-Tree 구조에서 인덱스를 관리할 때 발생하는 현상이다.인덱스 스플릿은 인덱스 페이지에 더 이상 데이터를 추가할 공간이 없을 때 페이지를 나누어 새로운 데이터를 삽입할 수 있도록 하는 작업이다. 인덱스 스플릿(Index Split) 과정1. 새로운 데이터 삽입 시도2. 공간 부족 감지3. 페이지 분할 발생4. 부모 노드 업데이트아래 예시를 통해 인덱스 스플릿 현상을 확인해보자.Step 1. 기존 인덱스 페이지 상태+---------------------+| Index Page ||---------------------|| 1 | 2 | 3 | 4 | 5 |+---------------------+하나의 인덱스 페이지가 8K..
[Database] 정규화(Normalization) 정규화(Normalization) 는 데이터베이스 설계에서 데이터를 구조화하여 데이터 중복을 최소화하고, 데이터 무결성을 유지하며, 데이터베이스 성능을 최적화하는 과정이다. 정규화는 여러 단계로 나누어지며, 각 단계는 특정한 정규형을 만족시키도록 데이터베이스를 변환한다. 정규화(Normalization) 목적1. 데이터 중복 최소화데이터 중복을 줄여 저장 공간을 효율적으로 사용하고, 데이터 일관성을 유지한다.2. 데이터 무결성 유지데이터 무결성을 유지하여 데이터의 정확성과 신뢰성을 보장한다.3. 데이터베이스 성능 최적화효율적인 데이터베이스 구조를 통해 쿼리 성능을 향상시킨다. 정규화(Normalization) 과정 1. 제1정규형 (1NF: First Normal Form)모든 열의 값이 원자 값(ato..
[SQL Server / MS-SQL] Wait Stats (대기 통계) SQL Server 의 Wait Stats(대기 통계) 는 쿼리가 대기하는 시간을 측정하여 성능 병목 현상을 식별하는 데 중요한 역할을 한다. Wait Stats 에는 다양한 유형들이 있는데, 주로 확인해야 할 유형에 대해 살펴보자. Wait Stats (대기 통계) 유형 1. PAGEIOLATCH_디스크에 있는 데이터를 메모리로 로드할 때 발생하는 대기 시간이다. SQL Server는 데이터를 메모리에 로드하여 작업을 수행하는데, 이 과정에서 디스크 I/O가 필요하다. 이 때 디스크에서 데이터를 읽어 메모리로 가져오는 동안 발생하는 대기 시간이다. PAGEIOLATCH 유형PAGEIOLATCH_SH (Shared)읽기 작업을 위해 페이지를 공유 모드로 로드할 때의 대기 시간이다.주로 읽기 작업에서 발생..
[SQL Server / MS-SQL] VLF (가상로그파일 - Virtual Log File) VLF(가상로그파일 - Virtual Log File) 이란?SQL Server 에서 페이지(Page) 는 데이터 파일 내에서 데이터를 저장하는 가장 작은 저장 단위이다.이처럼 VLF(Virtual Log File) 는  물리적인 트랜잭션 로그 파일(LDF) 내에서 로그 데이터를 관리하는 논리적 단위이다.SQL Server는 로그 파일의 크기에 따라 VLF의 수와 크기를 결정하는데, VLF 는 로그 파일 크기가 확장이 되면 VLF 갯수 역시 증가하게 된다.데이터베이스 복구 프로세스의 초기 단계에서 SQL Server 는 모든 트랜잭션 로그 파일의 모든 VLF 를 검색하고, 목록을 작성한다.VLF 가 많으면 이 단계에서 VLF 를 검색하고, 목록을 작성하는 시간이 그만큼 오래걸리게 된다.VLF 수가 많아지..
[SQL Server / MS-SQL] ROW 모드와 BATCH 모드 (SQL 처리 방식) SQL 을 처리하는 방식에는 ROW 모드와 BATCH 모드가 있다.각각 어떤 방식인지 알아보자. ROW모드란? - ROW 모드는 한 번에 하나의 row 씩 데이터를 처리하는 방식으로, 각 로우에 대한 연산을 순차적으로 수행한다. - ROW 모드는 각각의 트랜잭션이나 쿼리가 작고 빈번할 때 적합하다. 작은 트랜잭션이나 빈번한 쿼리는 보통 데이터 조회나 변경을 소량의 데이터를 대상으로 하므로, ROW 모드의 순차적 처리 방식이 이러한 경우에 빠르고 효율적으로 처리를 가능하게 하기 때문이다. - 또, 각 로우에 대한 LOCK 을 개별적으로 관리할 수 있기 때문에, OLTP 환경에서 적합하며, 높은 동시성과 빠른 속도를 제공한다.BATCH 모드란? - BATCH 모드는 한 번에 여러 row 를 묶어서 처리하는 ..
[Azure] Blob Storage 의 Credential 및 SAS 생성 (DATABASE BACKUP 오류 발생) 데이터베이스 백업 파일을 Azure Blob Storage 에 저장하려고 하니 아래와 같은 오류가 발생한다.Msg 3201, Level 16, State 1, Line 4Cannot open backup device 'https://.blob.core.windows.net///.bak'.Operating system error 50(The request is not supported.).Msg 3013, Level 16, State 1, Line 4BACKUP DATABASE is terminating abnormally. 이는 백업 하려는 Blob Storage 의 Credential 이 없어서 발생하였다.Azure Blob Storage 에 백업 파일을 저장하기 위해서는 Credential 및 SAS..

반응형