본문 바로가기

전체 글230

트랜잭션 데이터 저장 과정, Direct Path Insert, Delete 과정 [ 트랜잭션 데이터 저장 과정 ] 1. DML 문을 실행하면 Redo 로그버퍼에 변경사항을 기록한다. 2. 버퍼블록에서 데이터를 변경(추가/수정/삭제)한다. 물론 버퍼캐시에서 블록을 찾지 못하면 데이터파일에서 읽ㄴㄴ 작업부터 한다. 3. 커밋한다. 4. LGWR 프로세스가 Redo 로그 버퍼 내용을 로그 파일에 일괄 저장한다. 5. DBWR 프로세스가 변경된 버퍼블록들은 데이터파일에 일괄 저장한다. DBWR : 버퍼 캐시에 변경된 페이지( 더티 페이지 )를 일정한 주기 혹은 버퍼 캐시가 가득찰 경우에 데이터 페이지를 데이터블록에 기록함. LGWR : 로그 버퍼에 기록된 쿼리 실행이력을 일정한 주기, 로그 버퍼가 가득찼을 경우에 파일로 기록함. [ Direct Path I/O ] 버퍼 캐시를 경유하지 않고.. 2023. 6. 25.
SQL 튜닝과 조인 [ 목적 ] 저번에 블로그에 작성한 조인에 대해서 좀 더 깊게 이해한다. NL, 해시, 소트, 서브쿼리 조인에 대해 적재 적소에 맞게 사용할 수 있다. [ SQL 튜닝이란? ] 데이터를 읽는 방식에는 2가지가 있다. 논리적 I/O와 물리적 I/O 2가지가 있다. 논리적 I/O는 메인 메모리에 있는 데이터를 읽어오는 것(전기적 신호)이고, 물리적 I/O는 디스크에서 데이터를 읽어오는 것(HDD의 경우 ARM을 움직이며 데이터를 찾아 읽어오는 것)이다. 논리적 I/O는 물리적 I/O보다 10000배 가량 빠르다. 논리적 I/O는 물리적 I/O보다 상대적으로 걸리는 시간이 일정한 편이다. 예를 들면, 물리적 I/O는 디스크의 경합이 심하거나, 장치의 성능이 떨어질 경우 등 다양한 변수가 존재하여 항상 시간이 .. 2023. 6. 24.
jdbc 탐구하기 [ 목적 ] JDBC 프로그래밍을 해보았지만, 내 블로그에 정리된 자료가 없어서 정리하고자 이 글을 작성한다. [ JAVA DATABASE CONNECTIVITY DRIVER] 우리가 자바로 프로그래밍하면서 데이터베이스를 사용할 경우 JPA나 마이바티스를 많이 활용해서 데이터베이스에 CRUD연산을 수행하게 된다. 이때 활용되는 것이 JDBC 드라이버이다. 먼저, JDBC를 사용하는 과정이다. 1. DriverManager( JDBC DRIVER MANAGER)의 getConnection을 통해 커넥션을 만든다. 2. connection을 통해 statement를 얻는다. 3. statement를 통해 쿼리를 실행하여 resultSet을 얻는다. 4. ResultSet의 cursor을 통해 데이터를 가져온.. 2023. 6. 18.
먹어본 칵테일2 합정 ㅡ 아초바 뭔가 레시피 그대로 만들어 주는 것이 아닌, 도수를 낮추고 과일향을 더 진하게 만드는 듯 싶다. 도수 높고 과일향 살짝나는 칵테일을 좋아하는 나한테는 잘 안맞는 것 같다. 성수 ㅡ 글리머, 합정 ㅡ 비앤비 이 두곳이 과일향 살짝나고 도수 높은 내 취향에 맞는 것 같다. 다이키리 ㅡ xyz, 카타르시스와 같이 라임, 레몬향 나는 칵테일. 4점 페인킬러 ㅡ 트로피컬한 칵테일, 코코넛 맛과 향이 나는 칵테일 3.5점 2023. 6. 12.