분류 전체보기

카테고리 없음

오라클 성능고도화 1 - (Redo, Undo, 문장수준 읽기 일관성)

Redo오라클은 데이터 파일과 컨트롤 파일에 가해지는 모든 변경사항을 하나의 Redo 로그 엔트리로서 Redo 로그에 기록 Redo 로그 종류Online redo 로그 : Redo 로그에 버퍼링된 로그 엔트리 기록, 최소 두개이상의 파일로 구성, 사용중인 Redo 로그 파일이 꽉차면 로그 스위칭Archived Redo 로그 : Online Redo 로그가 재사용되기 전에 다른 위치로 백업해둔 파일 Redo 로그의 목적1. Database Recovery물리적으로 디스크 깨지는 Media Fail 발생시 데이터베이스 복구를 위해 Archived Redo 로그 사용 2. Cache RecoveryInstance Crash 발생 후 시스템을 재기동하면 Online Redo 로그에 저장된 기록을 읽어 마지막 체..

도서/오라클성능고도화

오라클 성능 고도화 1-(DB 버퍼캐시, 버퍼 Lock)

DB 버퍼캐시 (1) 블록 단위 I/O오라클에서 I/O는 블록 단위로 이루어진다.블록 단위로 읽는 다는 의미는, 하나의 레코드에서 하나의 컬럼만을 읽고자 하더라도 레코드가 속한 블록 전체를 읽게 됨을 의미한다. SQL 성능을 좌우하는 가장 중요한 성능 지표는 액세스하는 블록 개수이다. (2) 버퍼 캐시 구조DBA : DB 버퍼 캐시 내에서 데이터 블록을 해싱하기 위해 사용되는 키 값해시 함수에 DBA를 입력해 리턴 받은 해시 값이 같은 블록들을 해시 버킷의 해시 체인을 통해 구현 DB 버퍼 액세스 순서1. DBA 해싱2. 해시 버킷 액세스 3. 해시 체인(버퍼 헤더) 액세스4-1. 없으면 File Read 후 해시 체인에 연결 후 읽음4-2. 있으면 바로 읽음 (3) 캐시 버퍼 체인DB 버퍼 캐시는 ..

회고

되고자 하는 개발자의 방향성

요즘 개발직군이 아니더라도 AI에 대체된다는 말이 굉장히 많습니다.단순히 먼 미래라고 하기엔 미국의 빅테크부터 우리나라의 전문직들에 대한 정보도 종종 접하게 됩니다. https://www.news21tongsin.co.kr/news/285125 마이크로소프트(MS), 9000명 해고 발표. . .AI로 대량 해고가 현실화IT 기업들이 몰려 있는 판교 테크노밸리(사진=네이버 db 갈무리)[뉴스21 통신=추현욱 ] 인공지능(AI)으로 인한 대량 해고가 현실화됐다.국내외 안팎에서 대규모 희망퇴직이 잇따르고 있다. ‘중국www.news21tongsin.co.kr https://www.youtube.com/watch?v=7AWHmCQq35Q&t=124s IT 개발자는 오프라인의 작업을 효율적으로 처리하는 방법을 ..

Computer Science/Database

SQL 튜닝이 됬는지는 실행시간으로 비교하는 것이 아니다.

오늘 사내 지라를 보다가 다른 팀원이 처리한 데이터 조회가 오래걸린다는 사용자 문의를 보고 포스팅합니다. 이슈해당 지라는 담당자가 SQL과 Function, Table DDL 정보를 넘겨 튜닝을 했고, 그 결과는 아래와 같다고 기재되어있었습니다. AS-ISTO-BE실행시간5sec0.5sec 해당 표를 봤을 때 튜닝 이후에 속도가 무려 10배나 빨라졌지만, 운영에 반영되었을 때 해당 문제가 해결되지 않을 수 있습니다. 무엇이 문제인가?튜닝이 되었는지는 이전 쿼리와 튜닝 쿼리의 실행시간으로 비교하는 것이 아닙니다. SQL 튜닝을 하면 실행시간은 빨라져야하는것아닌가? 라고 생각하는게 결론적으로 맞는 얘기이지만 비교하는 대상이 '시간'이 되면 안된다는 뜻입니다. 현재 사내 DB인 Oracle을 기준으로(다른..

회고

취업한지 1년 반 지난 개발자의 회고(요즘 생각, AI)

안녕하세요, 저는 1년 반정도 솔루션 기반의 프로젝트 위주로 개발을 해온 개발자입니다.미래에 대한 고민 때문에 잠이 오지 않아 글을 써봅니다. 개발자란 무엇인가?우선 취업하고부터 블로그에 글을 쓰는 횟수가 현저히 줄어든 것 같습니다. 회사생활에 치여서 그럴 수도 있겠지만 취준생 때는 개발을 통해 서비스를 만드는 것에 재미를 느끼고, 뭔가 개발자라면 퇴근하고도 개발을 공부해야 한다는 생각을 갖고 있었습니다.하지만 돈을 벌다보니, 인생의 전부를 개발로 채우는 것보다 개발로 돈을 벌고, 그 외의 시간에 내가 하고 싶은 취미를 하는 사람도 많고, 저도 지금까지 운동이나 피아노를 배우면서 이런 삶도 괜찮다는 걸 느꼈...는데 요즘 빨간불이 삐용삐용거립니다. 지금 회사는 B2B 기반의 Saas 솔루션 회사이고, 주..

회고

Oracle RDS 대용량 데이터 삭제시 주의할 점

회사 서비스의 로그는 서비스 내부에서 다음과 같은 목적으로 저장되고 있었다.사용자의 행동이 발생할 때마다 OR 내부 서비스와 외부 ERP / API 인터페이스 호출마다Controller → Service → DAO 흐름 단위의 로그 데이터를 DB에 저장그리고 관리자가 필요할 때 에러를 검색할 수 있는 관리 페이지에서 조회할 수 있도록 설계되어 있었다.문제는 실제 운영 상황에서는 이 데이터를 거의 사용하지 않는다는 점이었다. 실제 운영 모니터링은 대부분 DataDog, Whatap 같은 APM 도구를 통해 이루어지고 있었고, DB 로그 테이블은 사실상 방치된 상태였다. 게다가 이 서비스는 오픈된 지 8년이 넘었지만 단 한 번도 삭제 작업이 이루어지지 않았다. 그 결과... 이 운영 DB 용량의 50% 이상..

회고

인프런 추석 완강 챌린지 후기 - 비전공자 혼자서 하루 만에 수익화 앱 출시하기

요즘 들어 회사 업무만 하다보니 개발 공부를 너무 놓고 있는게 아닌가 싶었습니다.입사 전부터 막연히 앱을 만들어보고 싶다는 생각을 갖고 있었지만 실행은 안하고 있었습니다... 그러다 요즘 앱 하나 만들어보자는 마음과 나중에 프론트를 할 때도 도움이 될만한 걸 찾다보니 리액트 네이티브가 눈에 띄었고, 리액트도 잘 몰라서 제로초님의 리액트 웹 게임강의 부터 듣고 있었습니다. 평소에 자바, 스프링을 다루고 요즘엔 그마저도 쿼리만 다루다보니 앱을 만들기 위해 리액트 네이티브를 공부해야하는데, 이를 위해 리액트를 공부하고.. 또 모르는 자바스크립트는 되돌아가서 공부하기에 너무 멀어보였습니다. 추가적으로 리액트 네이티브를 배우려는 목적 중 하나였던 코드 푸쉬 기능도 사라지고, 아직도 메이저 버전이 없어 버전이 ..

Computer Science/Database

[Oracle] 다중 서버 - 단일 DB 사용 시 활용 할 수 있는 배타Lock 동시성 제어

다음과 같은 관계에서 사용자가 비밀번호를 변경할 때 최근 사용한 N개의 비밀번호와 일치하는지 확인하는 로직은 어떻게 구현할까? 아래와 같이 결과집합을 뽑아서 애플리케이션에서 비교하거나, 한단계 더 쿼리를 감싸 과거 비밀번호와 변경할 비밀번호를 비교할 수 있다.@Transactional method{select * from (select * from password_his where user_id = :user_id order by rev desc)where rownum 하지만 스프링은 멀티쓰레드 방식으로 클라이언트 콜을 받기 때문에 두 개이상의 비밀번호 변경 요청이 들어온다면 첫번째로 처리한 요청은 정상적으로 비밀번호를 비교하고, 변경할 수 있지만 그 다음에 들어오는 요청들은 별도로 처리해야한다. ..

비오베베
'분류 전체보기' 카테고리의 글 목록