mysql 에서 실행한 쿼리 내역을 로그로 남기기 위해선 추가 적인 설정이 필요합니다. /etc/my.cnf 에 다음 설정을 추가합니다. ... [mysqld] ... general_log_file = /var/log/mysql/general.log # log 파일 경로는 변경가능합니다. general_log = 1 ... 위와 같이 설정하면 실행된 쿼리 내역들이 /var/log/general.log 에 계속 쌓입니다. 로그파일 관리 이 로그 파일은 크기가 계속 늘어나기 때문에 관리가 필요합니다. 저는 crontab 에 매일 새벽 3시에 돌아가는 예약 작업을 등록해서 관리하였습니다. 다음 명령어를 shell 에서 실행합니다. $ crontab -e # 로그파일명 뒤에 날짜를 붙혀서 백업하고, 기존의 로그..
공공기관에서 기존에 통계 디비로 sybase 를 사용하고 있었는데, 성능 업그레이드 를 위해 oracle 12c 로 DB migration 하게되었다. 그과정에서 변환되는 패턴들이 있었는데, 이를 정리해보았고 공유하고자한다. 엑셀은 따로 첨부한다. 그리고 쿼리 convert 하면서 자동으로 convert 해주는 java api 가 있는데 같이 첨부한다. 그런데 swisssql 이라고하는데, ibatis 파일 같은 xml 태그가 섞인 sql 문은 변환하는 중에 에러가 발생하는 듯하다.
공공기관의 빅데이터를 다루면서 알게된 사항들을 정리해본다. 1. 오라클 통계정보- 기본적으로 오라클은 통계정보를 수집하는 Job 이 auto 로 실행되어지고 있다. 그런데 이를 보통은 off 해 놓는다. 통계정보가 바뀌게 되면 이를 옵티마이저가 분석하기에 따라 실행계획이 변경되고, 조회속도의 편차가 커질 우려가 있기 때문이다. 2. oracle hint 를 사용한 index 처리- 오라클 실행계획(보 통 ctrl + e )을 살펴 보면 빨갛게 full scan 한다는 문구를 볼수가 있는데, 이것은 조회과정에서 index 를 사용하지 않는다는 의미이다. - 내 경우에는 해당 칼럼에 인덱스가 걸려 있는데도 이를 사용안하고 조회하지를 않았다. 이것은 옵티마이저가 통계정보를 지속적으로 수집하지 않아서 발생하는 ..
ibatis library 를 사용하면 아래와 같이 작성한것과 는 달리 줄바꿈이 사라지고 파라미터는 ? 로 로그에 출력된다. ex ) select * from table where id = ? 이를 기존에 작성했던것과 마찬가지로 줄바꿈 처리하고, 파라미터를 적용한 내용으로 출력하는 방법을 소개하려고한다. 그러기 위해서는 ibatis library 안에 있는 특정 패키지의 클래스를 수정해주어야하는데... 라이브러리를 수정하는것은 좋지 않다. maven 과 같은 의존성 관리 프로그램을 활용 하고 있으면 더욱 그러하다. (라이브러리를 수정하면 소스 공유 시에 해당 라이브러리를 maven 으로 관리하기 힘들어진다. web library 나 local repository 를 이용해야 할 것이다.) 라이브러리를 수..
mysql version : 5.7 을 사용하였습니다. 주로 오라클을 사용해서 개발해온 저에게 mysql 문법 을 분석하는 일은 쉽지 않았습니다. mysql 함수를 분석하면서 배운 것들이 많아서 공유하고자 합니다. 노드랑 행이라는 용어를 혼용해서 사용하였습니다. node = row 로 해석하셔도 무방합니다. oracle 에서는 계층 구조의 데이터를 가져올 때 start with connect by 를 사용합니다. mysql 은 위와 같은 쿼리 문이나 재귀함수도 지원하지 않습니다.웹상에서 관련 정보 수집시 자주 검색되는 방법은 함수와 사용정의변수를 활용하여 데이터를 가져오는 것이었습니다. 주로 참고한 블로그 첨부합니다. EXPLAIN EXTENDED 위의 블로그에서 설명하고있는 계층 쿼리를 테이블, 컬럼 ..