일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Effective Java
- 스프링 부트 입문
- SQL
- springboot
- DIP
- jdbc
- 스프링 컨테이너
- java
- sqld
- assertThat
- 필드 주입
- 스프링 빈
- JPA
- DI
- @Configuration
- 스프링 부트
- db
- thymeleaf
- 스프링 부트 기본
- assertThrows
- 스프링 프레임워크
- kafka
- resultMap
- 스프링
- mybatis
- Javascript
- 스프링부트
- 싱글톤
- 생성자 주입
- spring
- Today
- Total
목록Solution/DB (19)
선 조치 후 분석
CHAR와 VARCHAR는 데이터베이스에서 문자열을 저장하는 데 사용되는 데이터 타입이다. 그러나 둘 사이에는 몇 가지 중요한 차이점이 있다. 저장방식 CHAR : 고정 길이 문자열, 지정된 길이만큼의 고정 공간을 할당하며, 값이 지정된 길이보다 작을 경우, 공백으로 채워진다. VARCHAR : 가변 길이 문자열, 필요한 만큼의 공간을 동적으로 할당, 값이 저장될 때 실제 길이만큼만 공간을 차지한다. 공간사용 CHAR : 지정된 길이에 상관없이 항상 고정된 공간을 사용하므로 저장 공간이 낭비될 수 있다. VARCHAR : 저장된 값의 길이만큼만 실제로 공간을 사용하므로 저장 공간을 더 효율적으로 활용할 수 있다. 속도 CHAR : 고정된 길이로 데이터가 저장되기 때문에 데이터베이스 검색 및 정렬 작업에서..
Cursor를 알기 전에 먼저 PL/SQL에 대한 개념을 알고 가는 게 좋을 것 같다. PL/SQL PL/SQL은 데이터베이스 애플리케이션을 개발하기 위한 프로그래밍 언어, 즉 SQL을 확장한 절차적 언어이고, 프로시저는 PL/SQL에서 사용되는 코드 블록 중 하나로, 데이터베이스 작업을 수행하기 위해 사용된다. 프로시저는 PL/SQL에서 구현된 코드의 일부분을 재사용하고자 할 때 사용되며, 호출되어 실행될 수 있다. 종류 Procedure : 리턴값을 하나 이상 가질 수 있는 프로그램 Function : 하나 이상의 프로시저, 함수, 변수, 예외 등의 묶음 Trigger : 지정된 이벤트가 발생하면 자동으로 실행되는 PL/SQL 블록 PL/SQL은 원래 단일행에 대한 처리만 가능하지만, CURSOR를 ..
DB의 PSM (Persistent Stored Modules) 안에 있는 프로시저를 검색하는 방법 SELECT * FROM USER_SOURCE; -> 프로시저, 함수 등의 소스가 있는 테이블로서 프로시저가 어디서 사용되고 있는지 확인할 때 용이하다. SELECT * FROM USER_OBJECTS; -> 테이블, 프로시저, 함수 등 정보가 담겨있는 테이블 해당 검색법을 모르면 패키지나, 프리시저를 하나하나 찾아봐야 한다...
Index(인덱스) : 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장됩니다. (Data, Location) 형태의 (Key, Value)로 저장됩니다. 생성한 인덱스로 WHERE절에 조건으로 걸어서 쿼리를 조회한다면 옵티마이저에서 판단하여 생성된 인덱스를 탈 수 있습니다. 먼저 인덱스에 저장되어 있는 물리적 주소로 가서 데이터를 가져오는 식으로 동작하여 검색 속도의 향상을 가져올 수 있습니다. 또한 인덱스 생성 시, 데이터를 오름차순으로 정렬하기 때문에 정렬된 주소체계라고 표현할 수 있습니다. 인덱스의 가장 큰 특징은 데이터들이 정렬이 되어 있다는 점입니다. 이 특징..

'대용량 데이터 베이스 솔루션' 책을 읽으면서, USER_TAB_MODIFICATIONS 사용해서 해당 테이블의 변경내역을 조회할 수 있는 방법을 알아서 이렇게 적어본다. SELECT * FROM USER_TAB_MODIFICATIONS WHERE table_name = 'A' -- 테이블 이름 아래처럼 조회결과를 확인해보면, INSERT, UPDATE, DELETE의 변경 내역을 확인할 수 있다.
개발을 하다가 A라는 테이블에 Insert를 하고, 연속으로 B라는 테이블에 저장한 A테이블의 값을 사용하여 Insert를 해야 하는 경우가 있다. 이런 문제를 해결하기 위해서 오라클의 selectKey 방법을 알게 되었다. SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') || LPAD(A.NEXTVAL, 16, 0) FROM DUAL INSERT INTO A ( ATCH_FILE_GRP_ID, REG_DTM, REGR_ID, MOD_DTM, MODR_ID ) VALUES ( #{ATCH_FILE_GRP_ID} , TO_CHAR(SYSDATE, 'YYYYMMDDHH24MMSS'), #{userId}, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MMSS'), #{userId} )..