본문 바로가기

# Development/Database

(6)
[ORACLE] 오라클 분석(Oracle Analyze), 통계정보, 실행계획 (Execution Plan) : Part1-용어이해 오라클 분석(Oracle Analyze), 통계정보, 실행계획 (Execution Plan) : Part1-용어이해 어느날 보통 10분이면 끝나던 프로시저가 말도 안되게 시간이 오래걸렸다. 뭔가 오라클 실행계획이 변경된 듯했다. 통계정보를 업데이트하고, HINT를 사용하니 배치가 5분만에 완료되었다. 이참에 오라클 통계정보가 무엇인지, 통계정보가 어떻게 오라클 실행계획에 영향을 미치는지 알아보자. 오라클에서 분석과 비용이란?오라클에서 '분석'이란, SQL문을 분석하고 어떤 테이블이나 컬럼 등으로 구성되어 있는지 조사하고, 이를 알고리즘에 따라 처리하는 것을 말한다. 오라클은 '비용 기반(cost base)' 알고리즘을 가지고 있다. 여기서 '비용'이란 처리에 필요하다고 생각되는 시간 또는 자원활용량이다...
[SQLAlchemy] Model.query VS db.session.query() Model.query  VS  db.session.query() 뭐가 다르지?오늘 팀원분이 아래와 같은 질문를 주셨다.sqlAlchemy에서 .first()  쿼리로 조회된 데이터를 dict나 형태로 형변환을 해서 확인을 해보고 싶은데  왜 _asdict()가 안될까요🤔;;;  Flask에서 sqlalchemy를 사용하다보면  object.query와 session.query()를 편의에 따라 혼용해서 사용한다. 반환된 데이터를 조작하는 방법이 비슷해서 두 객체가 같을거라고 보통 생각하지만,반환된 커리의 type을 로그로 찍어보면 사실 전혀 다른 객체임을 알 수 있다.$ Model.query: $ db.session.query:  Model.query와 db.session.query()의 차이점을 좀더..
[SQLAlchemy] 트랜잭션(transaction) 관리: add, flush, commit 메서드의 활용 트랜잭션(transaction) 관리: add, flush, commit 메서드의 활용 SQLAlchemy는 Python으로 데이터베이스와 상호작용하는 데 사용되는 강력하고 유연한 ORM(Object-Relational Mapping) 라이브러리다.  SQLAlchemy로 데이터베이스 객체를 다룰 때 가장 신경써야 하는 부분은 트랜잭션(Transaction)이다. 트랜잭션 관리를 위해 S..
[SQL - Error] utf8mb4_0900_ai_ci, utf8mb4_general_ci 문제 mysql 테이블에 백업 데이터를 업로드 할 때 해당 에러 발생 원인 mysql 5.7 버전은 utf8mb4_general_ci, 8.0 이상 버전은 utf8mb4_0900_ai_ci 를 사용하기 때문에 8.0 이상 버전에서 export한 데이터를 5.7버전에 import 할때 에러가 발생함 해결방법 mysql을 8.0 이상으로 업데이트 mprot할 dump 파일을 열어서 char set을 general_ci로 변경 (데이터 손상이 있을 수 있으므로 권장하지 않음)
[SQL] 쿼리문 실행 순서 쿼리문 실행 순서 SQL 쿼리의 각 파트는 다음과 같은 순서로 실행된다. FROM : 각 테이블 확인 ON : 조인 조건 확인 JOIN : 테이블 조인 (병합) WHERE : 데이터 추출 조건 확인 GROUP BY : 특정 칼럼으로 데이터 그룹화 HAVING : 그룹화 이후 데이터 추출 조건 확인 SELECT : 데이터 추출
[SQL - Error] Error writing file '/tmp/MLfd=69' (OS errno 28 - No space left on device) 원인 temp 데이터 저장공간이 꽉차서 생기는 디스크 용량부족 에러 해결방법 temp 폴더 내용 삭제 sql 서버 재시작