기본 콘텐츠로 건너뛰기

라벨이 데이터베이스인 게시물 표시

DB튜닝 전문가 망했습니다..ㅠㅡㅠ

영상버전 :  https://youtu.be/iTmkJ2iWJuU 지금 프로젝트에서 개발자들이 프로시저를 만들다보니  개발자의 의식의 흐름대로 데이터 처리를 만들다보니 커서를 이용해서 테이블 변수에 넣고  그걸.  변수로 다른 테이블에서 조회하는 식으로 짜놨네요..  튜닝할 때 항상 하는 이야기 이죠.. Trigger와 커서는 절대 쓰지 말라구요..  이것처럼 속도를 저하시키고 락을 유발 시키는 장치는 없거든요..   트리거는 트리거링 포인트가 되었을 때 대상 테이블을 락을 건 뒤에 트리거 처리를 하고 나서 락을 해제 하기 때문에 아무리 빨리 끝나도 동시에 들어오는 쿼리에 따라서는 데드락에 빠질 가능성도 있습니다.   마찬가지로 커서 역시 테이블을 열고 커서를 만들어 처리하기 때문에 그 모든 처리가 끝날 때까지 락이 걸린 상태가 됩니다. 데이터가 변동하면 안되니까요..  그래서 트리거와 커서를 사용하면 기본 서너배는 느려집니다.  커서랑 트리거만 없어도 50만명 받을 서비스가 15만명도 못받게 되는거죠.. 경우에 따라서는 수백배 느리게 짤 수도 있는게 커서와 트리거 입니다. 그냥 서비스를 떨구든 말든 자기 편한대로 만들겠다는 생각이 있지 않는한 커서는 피하셔야 합니다.   개발자들이 커서를 많이 이용하는 이유는 커서를 이용해서 만들면 복잡한 처리를 할 때 별로 생각하지 않고 개발 코드처럼 만들어도 가능하기 때문이죠  이번 쿼리도 커서를 사용해서 아주 길게 만들어놨네요..   한 줄 읽어서 상태에 따라서 데이터를 매핑해서 테이블 변수에 넣고를 쭈욱 한 뒤에  그 테이블 변수를 다시 읽어서 다른 테이블의 값을 가져오는데..   튜닝을 잘하려면 이 모든 데이터가 머리속에 연결구조를 그려서   하나의 비정규화 된 배열을 만들 수 있어야 합니다.   매번 이야...

IT직업 별 연봉 종합정리! 당신은 무슨 직업을 택하실 건가요? 일본IT 테크트리

영상버전 :  https://youtu.be/uk1OQ4g1dXk 개발자로 계시면서 미래가 불투명하거나 이제 막 개발자를 지망하신 분들께 이야기를 해볼까 합니다. 많은 채널이 개발자 중에서 연봉 높이는 법을 이야기 하죠? 하지만 개발자가 어떤 언어를 알아야 연봉이 높고 어떤 기술 스택을 알아야 연봉이 올라간다는 것은 정설이라고 보시나요? 실제로 그걸 믿고 현업에 뛰어드신 분들, 만족스러운 연봉을 받고 계신가요? 제가 이번에 해드리려는 이야기는 여러분의 지금까지의 노력을 헛수고로 만들어버릴 지도 모릅니다. 하지만 보다 높은 연봉을 위해서라면 제로부터 다시 시작해도 괜찮다는 분들은 끝까지 봐주시면 좋겠습니다. 일단 IT엔지니어를 크게 나누어 보겠습니다. 잘 안보이시나요? 확대... 를 하셔도 깨질겁니다. 원래 해상도가 낮아서리;;  하나씩 확대를 해드릴께요..  아, 개발자는 그림에 없네요.. 텍스트로.. 개발자 - 업무를 IT언어로 바꾸어 컴퓨터 위에서 업무를 하는 프로그램을 만드는 사람을 뜻합니다. 게임이 무슨 업무냐구요? 그냥 예를 업무로 든 걱 뿐이니 태클은 사양… 예전에는 서버 개발자, 클라이언트 개발자로 나뉘었으나, 요즘은 프론트엔드, 백엔드, 콘솔, 임베디드 개발자 등 여러 종류가 있죠. 이들은 수요가 많기 때문에 쉽게 접근을 할 수 있으나 최고봉까지 올라가는 사람은 극소수 이고, 많은 사람들은 수요가 많은 400 ~ 600만엔 정도 전후에서 급여를 받겠지요. 하지만 PL, SE 등등으로 올라가면 갈수록 연봉 상승의 폭이 커집니다. PL은 보통 600~750만엔이 많구요 SE는 800만엔 정도부터.. 비즈니스 영어가 되면 1500만엔까지 노려도 됩니다. 물론 외자계 프로젝트로 가야하지요.. 일본에는 외자계 프로젝트가 상당수 있습니다. 일은 언제나 많으니 다른 사람이 채갈 걱정은 마시고.. ^^ 개발 언어문제가 아니고, 생성형AI 관련 개발이나 블록체인 개발 등의 특수한 분야에 대해서는 가파르게 몸값이 상승 중입니다. 생성형 A...

DB 전문가가 이야기 하는 DBMS선택 방법..

듣기 버전 :  https://youtu.be/gee37PXME2E?si=F3hsUPq9ptJ-Uidz DB 전문가가 이야기 하는 DBMS선택 방법..  많은 개발자 분들이 DBMS선택 방법에 대해서 동영상을 올려드리는데,  DBMS엔진에 대해 정확하게 알지 못하는 상태에서 개략적인 정보만으로 올리시는 분들이 많은 것 같아서 오히려 DBMS를 선택하는데까지의 충분한 도움이 안되는 것 같아서 DB전문가가 DB를 선택하는 방법을 알려드리겠습니다.  만약 DB전문가라는 사람이 당연히 오라클이죠.. 라던가 MySQL만큼 좋은게 없어요 라던가 하나만 밀고 있는 사람이라면 그 사람은 DB전문가가 아니라 그 제품 하나만 알고 있는 평범한 사람이라고 보시면 됩니다.  다양한 RDBMS의 특징을 모르면 뭐가 왜 좋은지 알 수 없잖아요.. 그리고 상황 및 데이터 타입 등등 다양한 환경에 따라 달라지는데 하나만 최고가 될 수가 있나요?  제가 있던 시절의 RDBMS는 DBase(HBase아님), Cybase, Infomix등등 다양한 RDBMS가 판치던 시절이었습니다.  이 때에는 Index 알고리즘도 B-Tree index뿐만 아니라 Bitmap index도 있었지요.  Bitmap index는 Cardinality가 낮은 데이터, 즉 1 이나 0 처럼 종류가 적을 수록 속도가 빠른 인덱스도 있었으나,  대부분의 데이터가 Cardinality가 높은 경우가 많아져 SQL Server도 6.5부터는 B-Tree index를 사용하게 되었지요.  그래서 MySQL, SQL Server, ORACLE등의 메이저 RDBMS의 엔진 성능도 엇비슷해 진 듯이 보입니다..  많은 곳에서 MySQL이 최고라면서 증거를 들이밀고, SQL서버가 최고라면서 데이터를 들이미는 곳이 있는가 하면 ORACLE이 최고라면서 발표하기도 합니다.  다들 거짓말을 하는 걸까요?  아닙니다! 그들이...

오라클 복구의 마지막... ORACLE RMAN

처음에 시작된 것은 NFS로 연결된 REDO LOG파일이 사라진 것인데.. 왜 REDO LOG를 NFS마운트에 올렸는지도 궁금하지만.. (아마 용량이 부족해서 이렇게 일시적으로 한 듯..) NFS는 끊어졌는데 그 원천 서버의 디스크가 날라가서 OS재설치하면서 REDO LOG파일이 사라졌다. 더 큰 문제는 REDO LOG 파일이 CURRENT로 지정된 데다가 파일이 하나밖에 설정되어 있지 않다. 이로서 불가능한 옵션은 ALTER DATABASE ADD LOGFILE MEMBER '/mnt/sdb1/redolog/redo05.log' TO GROUP 5; 기존 파일이 없댄다.. ALTER   DATABASE   DROP  LOGFILE GROUP  5 ; 파일이 없어서 삭제 안된단다.. ALTER   DATABASE  ADD LOGFILE GROUP  6 ; 신규로 그룹을 추가 했다.. 성공.. 이제 바꾸고 싶다.. alter  system  archive  log  current; 안된단다.. select  *  from  v$logfile; 이걸로 없어진 파일은 보이는데.. 이걸 빼고 다른걸로 바꿀 방법이 없다. ALTER DATABASE    RENAME FILE '/NFS/app/oracle/oradata/smartdb/redo05.log'            TO '/mnt/sdb1/redolog/redo05.log'; 이렇게 이름을 바꾸어 봤다. 이름은 바뀐다....