Trouble Shooting/Database

슬로우 쿼리 발생 내가 운영하던 그룹웨어 게시판 서비스에는 '최근 게시글'이라는 특수한 게시판이 존재했다. 보통 게시글은 사용자가 등록한 게시판에 접근해서 조회하지만, 해당 게시판은 모든 게시판의 게시글을 등록 순으로 보여주는 게시판이었다. 내가 막 게시판 서비스를 맡게 되었을 때 전임자 분께서 "해당 API가 속도가 안나오니 언젠간 튜닝을 해야 할거에요"라는 말을 하셨는데, 그 때 속도 체크 해봤을 때는 2~3초 나와서 아직 튜닝할 때는 아니라고 판단하고 냅두고 있었다. 그런데 어느날 인프라 팀에서 특정 고객사에서 해당 게시판의 게시글 리스트를 조회할 때 속도가 너무 오래걸린다는 안내를 받았고, 해당 고객사에 들어가서 확인해보니 API 속도가 약 7초 가량 소요되고 있었다. 속도 저하의 원인이 되었던 ..
개요 회사 업무를 진행하던 중 특정 쿼리를 수행할 때 마다 아래와 같은 Collations 관련 오류가 연달아 3번이나 발생했다. Illegal mix of collations (~~) and (~~) for operation '=’ Collation이란 ?? 문자열을 비교, 정렬하기 위해서 정의된 규칙들의 집합이다 (Character Set은 글자 자체의 인코딩에 대한 정의) 이 Collation 오류에 대한 히스토리와 해결 방법을 공유하고자 한다. 첫번째 오류 가장 처음 발생한 Collation 오류 메시지는 다음과 같다 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operati..
개요 서브쿼리를 사용하면 FROM 절에서 특정 테이블을 지정하는 것이 아닌, 서브쿼리의 결과값을 테이블로 지정할 수가 있다. select a.id, b.name from ( select * from tableA ORDER BY id) a join tableB b on a.id = b.id 회사 업무 중 이 FROM절에 서브쿼리를 적용하고 내부에서 ORDER BY 통해 정렬을 하도록 쿼리를 짰는데,이 서브쿼리를 수행한 결과가 ORDER BY 지정한대로 정렬이 되지 않았다. 원인 및 해결 공식문서를 찾아보니, mysql 에서는 서브쿼리의 레코드 순서를 보장하지 않는다고 한다. https://mariadb.com/kb/en/why-is-order-by-in-a-from-subquery-ignored/ Why ..
에러 내용 Oracle 접속 할 때 아래와 같이 에러가 발생하며 접속이 안되는 오류가 발생했다. - 에러 내용 : ORA-12560: TNS:protocol adapter error 원인 및 해결 오류를 확인해보니 기동한 서버의 오라클 관련 서비스를 실행하지 않아서 오류가 발생한 것이었다. 1. 내컴퓨터 -> 컴퓨터 관리 -> 서비스 클릭 2. OracleServce 등 3개의 서비스 실행 3. 서비스 실행하고 다시 접속 시 아래와 같이 해결된다
이슈내용 UPDATE문에서 테이블을 JOIN 후 값을 업데이트 해주는 쿼리를 짜는 중에 SET 절에 조인한 테이블을 집계하는 부분에서 에러가 발생했다. 원인 및 해결 검색해서 찾아보니 WHERE 절이나 SET절 같은 곳에서는 집계함수를 사용할수 없다고 한다. 그래서 JOIN하는 테이블을 서브쿼리로 변경하고 내부에서 집계함수를 사용하는 방법으로 변경했다.
이슈내용 Oracle 11g을 삭제하고 재설치 하는 과정에서 아래와 같은 에러가 발생했다. 해결 방법 OracleXE 서비스가 제대로 삭제되지 않았다는 의미인데, 간단하게 명령 프롬프트에서 서비스를 삭제해줌으로써 해결했다. 1. 명령 프롬프트를 관리자 권한으로 실행한다. 2. 아래 명령으로 OracleServiceXE를 삭제한다.
jonghne
'Trouble Shooting/Database' 카테고리의 글 목록