기본 콘텐츠로 건너뛰기

라벨이 전문가인 게시물 표시

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

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

재밌는 DB 스페셜리스트가 되어보지 않겠어요?

재밌는 DB 스페셜리스트가 되어보지 않겠어요?  이번에는 제 자랑 이야기가 메인이니 재미 없으신 분들은 피해주셔도 됩니다. ^^;; 제 삼자의 입장에서 한국을 보면,  누가 뭔가로 돈을 벌었다 하는 소문이 나면 전 국민이 그거 밖에 없는 듯이 움직이는 모습을 보면  가끔은 웃음이 나와요.. 레밍스 보는 느낌이랄까..  전국민의 개발자화 하려는 나라는 한국 밖에 없지 않을까요?  지금이야 수요가 있으니까 대우를 받는다 해도,  충분한 공급이 나오면 개발자들은 헐값에 넘어가잖아요..  예전에 일본에 IT인력을 넘길 때도 마찬가지 였거든요..  한국에서 자바 개발자가 최고라느니 하는 이상한 소문이 나서  모두 자바 개발을 시키니까 포화상태가 되버려,  국가가 나서서 그걸 풀려고 일본으로 대거 보냈지요.  그러다가 일본에서 경험 부족한 한국인이 대거 오면서 품질이 안좋아져 한국인 금지를 내린 기업들이 늘었고..  그 때문에 다시 한국으로 돌아간 자바 개발자들이 떨이가 된 적이 있었죠..  뭐랄까.. 다양성이 없다고나 할까..  일본에선 아직도 코볼로 먹고 사시는 분도 계시구요.. 일본 디지털 방송 시스템 내에서도 광고 송출 스크립트는 시퀄셜 처리이기 때문에 아직도 코볼을 쓰는데 효율적이거든요..  전 지금도 classic asp로 제가 필요한거 그때그때 만들어서 제공하는데 아무 문제 없거든요..  Skynet을 classic asp로 짜고 있습니다! 요건 나중나중에...  한국에선 자바가 붐 이었을 때 전 세계가 자바밖에 없는 줄 아시는 분도 계셨는데..  이 때 제가 W3Tech라고 하는 전 세계 1000만 상용 웹 사이트의 서버 사이드 개발 언어 통계를 보여드린 적이 있지요. 그 때는 php가 90%가 넘었는데 지금은 그래도 많이 줄었네요..  전제를 어디에 두느냐에 따라 Python이 1등일 수도...

IT컨설턴트란? 세일즈 컨설턴트와는 다른 전문 직종입니다!

수 년전 한국에 잠시 가서 일을 했을 떄  컨설턴트라고 소개한 적이 있었는데,  사람들은 단순히 영업하는 사람으로 알고 있었던 것이 충격이었습니다.  한국에서는 컨설턴트는 세일즈컨설턴트 정도 뿐이었나보더라구요..  게다가 세일즈 컨설턴트보다는 세일즈맨에 가깝고 기술력은 거의 찾아보기 힘든 사람들이 많았습니다.  일본에서의 IT컨설턴트의 지위는 상당히 높습니다.  일단 아무나 컨설턴트란 이름을 내세우지 않고,  컨설턴트들은 자기의 분야에 자부심을 가지고 있는 경우가 많습니다.  물론 모든 컨설턴트가 그런 것이 아니고, 영업에 치우친 사람들도 있지만 말이죠..  2007년 경이었습니다. 고객이 컨설팅 요청을 했습니다.  자기네 시스템을 이관해야 하는데 ORACLE을 사용하는 시스템이고 유저 수십만이 접속할 수 있는 정도 스펙이 필요하다고 합니다.  그리고 여러 서버 업자에게 견적을 받았는데 INTEL Xeon도 있었지만,  AMD서버가 거의 60%가격으로 굉장히 메리트 있게 왔다고 합니다.  인텔은 2코어 였고, AMD는 4코어 인데도 말이죠.  이 AMD서버를 구입해도 되는지에 대한 조언을 요구했습니다.  제대로 된 컨설턴트라면 어떻게 얘기할까요? Intel Core는 단일 코어의 같은 클럭에서 처리 성능이 좋습니다.  그리고 AMD는 그걸 보완하기 위해서 코어수를 늘렸지요.  왜 AMD는 같은 CPU인데 인텔보다 같은 클럭에서의 처리 성능이 낮을까요? 이 이유는 OS라는 소프트웨어가 하드웨어랑 통신할 떄 사용하는 Machine code라는 어셈블러를 사용하여 OS의 명령을 처리하게 됩니다.  각각의 CPU벤더는 자기만의 머신코드와 코어 기술을 가지고 연산을 하기 떄문에 하나의 처리에 동일한 클럭을 사용하지 않습니다. 어셈블러의 명령어 체계에서부터 에뮬레이트 되거나 다른 처리를 하게 되기도 하지요....