본문 바로가기 메뉴 바로가기

Jun's TID

프로필사진

Jun's TID

Jun's TID
검색하기 폼 Mountain View
  • 분류 전체보기 (509)
    • 정보관리기술사 (0)
      • Network (0)
    • Mobile (158)
      • Android (71)
      • Dart (5)
      • Flutter (9)
      • ios (38)
      • react-native (35)
    • WEB (110)
      • DynamicWeb (33)
      • 자바스크립트 (22)
      • CSS (4)
      • jQuery (21)
      • ajax (4)
      • JPA (2)
      • React (21)
      • Node (3)
    • Database (25)
    • [Python] (35)
      • 문자열 조작 (4)
      • 선형 자료구조 (7)
      • Machine learning (17)
    • [JAVA] (111)
      • Spring-Boot (12)
      • Spring (47)
      • JExcel (3)
      • BeakJoon (4)
      • Programmers (23)
      • JAVA (8)
      • Algorithms (8)
      • Mybatis (6)
    • Network (12)
    • Projects (9)
    • Support (10)
    • 프로젝트 분석 (4)
    • English (8)
    • Life (2)
      • 운동냥이 (0)
      • 맛집냥이 (1)
      • 커피냥이 (0)
    • 정보보안기사 (2)
    • C++ (15)
      • 참고 (11)
      • 연습 문제 (4)
    • 누리 임보 일기 (7)
  • GUESTBOOK
  • TAG
  • RSS

Database
[Oracle Tunning] Join

1. NL Join (Nested Loop)NL 조인은 두 테이블이 조인할 때, 드라이빙 테이블(Outer 테이블)에서 읽은 결과를 Inner 테이블로 건건이 조인을 시도하는 방식이다. 즉, 아래와 같이 동작한다.for(i = 0; i  - 사용 쿼리 예시SELECT /*+ ORDERED USE_NL(E) */ *FROM DEPT D, EMP EWHERE 1 = 1AND D.DEPTNO = E.DEPTNO; ORDERED: FROM 절에서 나열된 순서로 테이블을 읽도록 지시USE_NL(E): E와 조인할 때 NL 조인을 사용하도록 지시DEPT 테이블에서 데이터를 한 건 읽어서 EMP 테이블로 조인을 시도하고, 조인에 성공하는 만큼을 결과 집합에 담는다.다시 DEPT 테이블로 돌아가서 다음 한 건을 ..

Database 2024. 8. 28. 14:13
[Oracle Tunning] 인덱스 활용과 튜닝

Clustering Factor- 데이터가 모여 있는 정도를 수치로 보여주는 것- 데이터 분포도에 따라서 데이터 블록에 접근하는 횟수가 달라지기 때문에 성능 측면에서 중요한 요소이다.- 클러스터링 펙터 출력 쿼리SELECT T.TABLE_NAME, I.INDEX_NAME, T.BLOCKS, T.NUM_ROWS, I.CLUSTERING_FACTORFROM USER_TABLES T, USER_INDEXES IWHERE I.TABLE_NAME = T.TABLE_NAME AND T.TABLE_NAME IN ('ORD_ITEM', 'ORD_ITEM_RANDOM');- 클러스터링 팩터는 테이블 자체로는 좋다 나쁘다고 할 수 없다. 특정 인덱스를 이용할 때, 해당 인덱스으 클러스터링 팩터가 좋은지 나쁜지를 ..

Database 2024. 8. 28. 11:28
[Oracle Tunning] INDEX Scan 방식

이번에는 인덱스의 스캔 방식에 어떤 종류들이 있는 지 알아보자.Index Unique Scan루트 블록에서 시작하여 브랜치 블록을 거쳐 리프 블록까지 내려가서 최종 데이터가 저장된 테이블 목록을 읽어 단 한 건을 찾는 방식이다.이 스캔 방식은 오직 수직적 탐색으로만 데이터를 찾는다.Unique Scan을 사용하려면 Unique 인덱스를 = 조건으로 탐색해야 하며, 중복 값이 없어야 한다. 예시:SELECT * FROM ITEM WHERE ITEM_ID = 11; -- PK 컬럼의 ID로 탐색 (Unique Scan)SELECT * FROM UITEM WHERE ITEM_ID = 89; -- FK 컬럼이기 때문에 Range Scan Index Range Scan인덱스 스캔 중 가장 일반적으로 사용되는 방식..

Database 2024. 8. 28. 11:06
[Oracle Tunning] INDEX 기본

Oracle 인덱스는 데이터베이스의 성능을 최적화하기 위해 자주 사용되는 데이터 구조이다.  인덱스의 구조와 탐색 원리를 이해하면, 데이터베이스에서 효율적으로 데이터를 찾고 관리하는 데 큰 도움이 된다. 아래에서는 인덱스의 기본 개념과 인덱스의 구조적 요소들에 대해 더 깊이 알아보자.1. 인덱스의 기본 개념인덱스(Index)는 테이블의 열(컬럼)에 대한 정렬된 데이터 구조이다.  테이블의 데이터는 특정 순서 없이 저장되지만, 인덱스는 데이터베이스가 더 빠르게 검색할 수 있도록 특정 열의 값을 기준으로 정렬하여 별도로 관리한다.  인덱스는 책의 색인처럼 작동하여, 데이터베이스가 특정 데이터를 빠르게 찾을 수 있도록 돕는다. B-Tree 인덱스는 Oracle에서 가장 일반적으로 사용되는 인덱스 구조이다.  ..

Database 2024. 8. 28. 10:57
[Oracle Tunning] DBMS_XPLAN.DISPLAY_CURSOR

DBMS_XPLAN.DISPLAY_CURSOR는 오라클에서 SQL 실행 계획을 조회하기 위해 사용되는 함수이다.  이 함수는 특히 실행된 SQL 문에 대한 실행 계획과 그에 대한 성능 통계를 제공하는 데 유용하다.  이를 통해 SQL 문이 어떻게 실행되었는지, 그리고 성능을 개선할 여지가 있는지 확인할 수 있다. 실행 계획 조회: DBMS_XPLAN.DISPLAY_CURSOR는 커서와 관련된 실행 계획을 보여준다. 이를 통해 쿼리가 실행된 방식과 각 단계에서 사용된 접근 방법을 확인할 수 있다.실행 통계 제공: 실행된 쿼리에 대한 통계 정보를 제공한다. 이 통계에는 실제로 읽은 블록 수, 사용된 CPU 시간, 실행된 행의 수 등이 포함된다. 이러한 정보는 쿼리 성능을 분석하고 병목 지점을 찾아내는 데 도..

Database 2024. 8. 28. 10:38
[Oracle Tunning] 오라클 아키텍쳐

요즘 회사에서 오라클 DB 성능 튜닝에 대한 공부를 좀 하고 있는데, Obsidian만 사용하다가 유기된 블로그도 좀 살릴 겸.. 여기에도 정리를 해보려고 한다. 간단하게 오라클 DB의 데이터 저장 구조와 SELECT 문을 실행했을 때 어떤 순서로 쿼리를 수행하는 지 먼저 알아보고 넘어가자.오라클 아키텍처의 데이터 저장 구조오라클 데이터베이스의 데이터 저장 구조는 물리적 구조와 논리적 구조로 나뉜다.물리적 구조:데이터 파일 (Data Files): 실제 데이터가 저장되는 파일이다. 테이블의 데이터, 인덱스, 블록 등이 이 파일에 저장된다.컨트롤 파일 (Control Files): 데이터베이스의 상태와 구조를 관리하는 파일이다. 데이터 파일과 리두 로그 파일의 위치 정보, 데이터베이스 이름, 백업 정보 등..

Database 2024. 8. 28. 10:21
[MongoDB] replica sets 설정

만들고 있는 어플 기능 중에 실시간으로 데이터의 변경 사항을 뿌려줘야 하는 기능이 필요한데, push & pull 방식보다는 DB의 실시간 변경 사항을 추적하여 ws으로 뿌려주는 게 낫겠다 싶어서, 어떻게 해야 하나... 하고 고민을 좀 하고 있었다. node의 mongoose에서 마침 해당 기능을 제공하고 있길래, "이거야! 당장 사용해보자!!!!"하고 바~로 예제 코드를 주어왔다. ◎ express.js의 main code #!/usr/bin/env node /** * Module dependencies. */ const app = require('../app'); const debug = require('debug')('happiness-stock-rest-api:server'); const htt..

Database 2024. 3. 15. 11:07
[MongoDB] 연산자 및 함수

find에서 사용하는 쿼리 연산자와 insert, update, delete 시 사용할 수 있는 업데이트 연산자를 한번 정리해보려고 한다. 쿼리 연산자 $eq: 지정된 값과 동일한 값을 찾는 연산자이다. $gt: 지정된 값보다 큰 값을 찾는 연산자이다. $gte: 는 지정된 값보다 크거나 같은 값을 찾는 연산자이다. $lt: 지정된 값보다 작은 값을 찾는 연산자이다. $lte: 지정된 값보다 작거나 같은 값을 찾는 연산자이다. $ne: 지정된 값과 다른 값을 찾는 연산자이다. $in: 지정된 배열 안에 있는 값을 찾는 연산자이다. $nin: 지정된 배열에 없는 값을 찾는 연산자이다. $exists: 지정된 필드가 문서에 존재하는지 여부를 체크하는 연산자이다. $type: 지정된 타입과 일치하는 필드의 데..

Database 2024. 3. 12. 12:00
[MongoDB] Intro 및 기본 사용법

MongoDB는 문서 지향적 NoSQL 데이터베이스이다. 데이터를 JSON과 유사한 형식인 BSON(Document)으로 저장하고 관리한다. 다양한 데이터 구조를 효율적으로 저장하고 쿼리 할 수 있으며, SQL 데이터베이스에 비해 더 유연한 데이터 모델을 제공한다. MongoDB의 특징: 스키마가 없다: MongoDB는 고정된 스키마를 갖지 않는다. 같은 컬렉션 내의 문서들은 서로 다른 구조를 가질 수 있다. 문서 지향적이다: 데이터는 문서 형식의 BSON 파일로 저장된다. 이는 JSON과 유사하며, 데이터의 읽기와 쓰기가 용이하다. 확장성이 뛰어나다: 데이터가 증가함에 따라, MongoDB는 샤딩을 통해 데이터베이스를 수평으로 확장할 수 있다. 인덱싱을 지원한다: MongoDB는 다양한 형태의 인덱싱을..

Database 2024. 3. 12. 11:29
[MongoDB] Window11 환경에서 외부 접속 허용

MongoDB와 아침부터 조금씩 친해져보려고 하는데, 이 친구 외부 접속이 default로 막혀있는 거 같다.(그걸 30분 동안 삽질하고 나서 알아챈...) 그래서 좀 뒤져보니까 config 파일에서 외부 접속을 따로 설정해줘야 한다는 내용이 있길래 정리해보려고 한다. 우선 db와 해당 db에 접속 권한을 가진 계정을 생성해야 한다. db는 기존에 있는 db를 사용한다고 치면, use database_name; db.createUser({ user: "user", pwd: "password", roles: [{role: "dbOwner", db: "database_name"}] // 모든 권한, 최소 권한 원칙에 위배되나, 테스트용도이니 신경쓰지 않겠다. }); 이후에 MongoDB가 설치되어 있는 디렉..

Database 2024. 3. 12. 11:06
이전 1 2 3 다음
이전 다음
최근에 올라온 글
최근에 달린 댓글
TAG
  • 이탈리안 레스토랑
  • await
  • 정보보안기사 #실기 #정리
  • react-native
  • Promise
  • javascript
  • react
  • 파니노구스토
  • redux
  • 인천 구월동 맛집
  • 맛집
  • Async
  • 인천 구월동 이탈리안 맛집
  • AsyncStorage
  • redux-thunk
more
Total
Today
Yesterday

Powered by Tistory / Designed by INJE

티스토리툴바