일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Animation
- 마우이
- MSSQL
- AnimationController
- GitHub
- Binding
- 함수
- MVVM
- 리엑트
- 플러터
- HTML
- JavaScript
- Firebase
- db
- Maui
- React JS
- Flutter
- 애니메이션
- MS-SQL
- 파이어베이스
- 오류
- 바인딩
- typescript
- .NET
- listview
- spring boot
- page
- 깃허브
- 닷넷
- 자바스크립트
- Today
- Total
목록DB (25)
개발노트
결론만 말하면,포괄열은 Leaf 페이지에 해당 키를 추가해주는 것(단, 정렬은 안함 넣는대로 쌓임)그렇다면..논클러스터 인덱스 + 포괄열를 만들면논클러스터 인덱스 키로 지정된 열은 Leaf 노드에 정렬되어있지만,포괄열로 넣은 키들은 정렬되어 있지않다.-> 인서트 했을 때 적어도 포괄열 때문에 정렬을 다시 하지않아도 된다.-> Select 했을 때 Leaf 페이지에서 Seek 하고싶다면 포괄열에 키를 넣어주면 RID 나 Key Look Up을 줄일 수 있다. 클러스터 + 논클러스터 인덱스 + 포괄열 이라면 Non-Clustered Index / Clustered Index / Include Index 좀 더, 정리해서 말하자면 포괄열 (Included Columns)포괄열은 비클러스터 인덱스의 리프 노..
기억장치 성능, 비용 그래프 데이터베이스 시스템에서 데이터 캐시와 로그 버퍼 이해하기1. 데이터 캐시 (Buffer Cache)데이터 캐시는 디스크에 저장된 데이터 페이지를 메모리에 캐싱하는 메커니즘입니다. 이를 통해 동일한 데이터를 반복적으로 디스크에서 읽어오는 대신 메모리에서 빠르게 접근할 수 있습니다.역할디스크 I/O 감소: 디스크에 접근하는 횟수를 줄여 성능을 향상시킵니다.빠른 데이터 접근: 메모리에서 데이터를 읽는 것이 디스크에서 읽는 것보다 훨씬 빠릅니다.동작 방식읽기 작업: 데이터베이스는 디스크에서 데이터를 읽기 전에 먼저 데이터 캐시에 해당 데이터가 있는지 확인합니다. 캐시에 있으면 디스크 접근 없이 데이터를 메모리에서 가져옵니다.쓰기 작업: 데이터베이스는 변경된 데이터를 먼저 데이터 캐시..
현재 새로운 요청으로 DA를 하게 되었고 정규화와 역정규화 사이에서의 고민을 담아봅니다. 고민에 앞서 우선, 정규화와 역정규화 정의를 살펴봅니다.(무엇이든 주장에는 근거가 있어야한다. 라고 생각하기 때문에 어떤 주장을 하든 그 주장의 근거에 대해서 알아 봅니다.)정규화 (Normalization)정규화는 데이터베이스를 설계할 때 데이터의 중복을 줄이고 데이터 무결성을 유지하기 위해 테이블을 구조화하는 과정입니다. 정규화의 주요 목적은 데이터의 중복을 최소화하고 데이터 일관성을 유지하는 것입니다. 정규화는 여러 단계로 나뉘며, 각 단계는 정규형(Normal Form)으로 알려져 있습니다.제1정규형(1NF, First Normal Form):모든 테이블의 열이 원자값(Atomic Value)을 가져야 합니..
인덱스 힌트(index hint) 옵티마이저가 의도된 인덱스를 타지 않는다면 직접 지정해주는 방법입니다.(하지만, 옵티마이저를 따르는 것이 좋음)SQL 쿼리에서 특정 인덱스를 사용하도록 지시하는 것을 "인덱스 힌트(index hint)"라고 합니다.이는 SQL 옵티마이저가 자동으로 선택한 인덱스 대신 특정 인덱스를 사용하도록 강제할 때 유용합니다.다음은 SQL Server에서 사용되는 인덱스 힌트의 예시입니다.SELECT column1, column2FROM table_name WITH (INDEX (index_name))WHERE condition;위의 쿼리에서 table_name은 조회할 테이블의 이름, column1, column2는 반환할 열의 이름, index_name은 사용할 인덱스의 이름을 ..
어떤 테이블의 어떤 칼럼에 인덱스가 걸려있는지 조회하기 위한 쿼리 입니다.SELECT -- 테이블 이름 TableName = T.name, -- 인덱스 이름 IndexName = IND.name, -- 인덱스 ID IndexId = IND.index_id, -- 인덱스 컬럼 ID ColumnId = IC.index_column_id, -- 컬럼 이름 ColumnName = COL.name, -- 인덱스 관련 모든 정보 IND.*, -- 인덱스 컬럼 관련 모든 정보 IC.*, -- 컬럼 관련 모든 정보 COL.*FROM -- 인덱스 정보가 있는 시스템 뷰 sys.indexes INDINNER JOIN --..
논클러스터 인덱스(Non-Clustered Index)NON CLUSTERED INDEX를 사용하는 상황은 주로 특정 쿼리 성능을 향상시키기 위해 필요합니다.논클러스터 인덱스의 특징과 사용해야 하는 일반적인 상황은 다음과 같습니다논클러스터 인덱스의 주요 특징물리적 순서와 무관:논클러스터 인덱스는 테이블의 물리적 순서에 영향을 미치지 않습니다. 이는 클러스터 인덱스와의 주요 차이점입니다. 클러스터 인덱스는 테이블의 실제 데이터가 인덱스 키 순서에 따라 물리적으로 정렬되도록 합니다.별도의 저장 구조:논클러스터 인덱스는 데이터베이스 테이블의 실제 데이터와는 별도로 저장됩니다. 인덱스는 인덱스 키 값과 해당 데이터 행의 위치 정보를 포함하는 구조로 구성됩니다.데이터 행의 주소 저장:논클러스터 인덱스는 인덱스 키..
클러스터 인덱스(Clustered Index) 클러스터 인덱스(Clustered Index)는 데이터베이스 테이블의 데이터를 정렬된 순서로 저장하는 인덱스 구조입니다. 클러스터 인덱스는 테이블의 데이터가 인덱스 키의 순서에 따라 물리적으로 정렬되도록 합니다. 각 테이블에는 하나의 클러스터 인덱스만 존재할 수 있습니다.(통상적으로 PK를 인덱스를 잡는다.)클러스터 인덱스의 주요 특징물리적 정렬:클러스터 인덱스는 테이블의 데이터가 인덱스 키 값의 순서에 따라 물리적으로 정렬되도록 합니다. 이는 데이터 검색 시 빠른 접근을 가능하게 합니다.삽입(Insert), 삭제(Delete), 수정(Update)로 데이터 페이지에 변환이 일어난다면, 전체 정렬이 필요함하나의 클러스터 인덱스:하나의 테이블에는 하나의 클러스..
인덱스 조회하는 쿼리문Select T.name, I.* From sys.tables (nolock) AS TINNER JOIN sys.indexes (nolock) AS I ON T.object_id = I.object_id조회결과 위 DB의 Table에서는 PK 인덱스인 클러스터 인덱스만 존재 -> 데이터가 Insert 될때마다 재정렬 발생 - CLUSTERED: 클러스터 인덱스(물리적 순서)- HEAP: 힙 테이블(Clustered-Index) 가 없는 테이블 저장방식- NONCLUSTERED: 논클러스터 인덱스(데이터 행의 주소 RID 를 별도로 저장공간에 저장)
일반 칼럼을 추가할 때 ALTER TABLE 테이블명 ADD COLUMN 칼럼명 데이터형 ALTER TABLE cocktail ADD COLUMN mixtype_id INT 외래키 칼럼 추가할 때 ALTER TABLE 테이블명 ADD COLUMN 칼럼명 INT, ADD CONSTRAINT 제약조건명 FOREIGN KEY (칼럼명) REFERENCES 테이블명(칼럼명); ALTER TABLE cocktail ADD COLUMN mixtype_id INT, ADD CONSTRAINT cocktail_ibfk_1 FOREIGN KEY (mixtype_id) REFERENCES mixtype(mixtype_id); *제약조건명은 본인이 정하면 됨
테이블에서 특정 칼럼 삭제하는 쿼리 alter table cocktail drop column 칼럼명; 칼럼이 외래키 일 경우 삭제하는 방법 1. 외래키 제약조건과 칼럼을 삭제합니다. alter table cocktail drop foreign key 외래키제약조건, drop column 칼럼명; alter table cocktail drop foreign key cocktail_ibfk_1, drop column build_id 외래키 제약조건, 테이블 정보 조회하는 방법 1. 테이블 정보 조회 방법 테이블의 정보를 보려면 DESCRIBE 를 사용하여 테이블 정보를 조회합니다. DESCRIBE 테이블명; 2. 테이블 생성 쿼리 조회 테이블 생성 쿼리를 보기 위해 Show create table 을 사용..