전체 글 705

인덱스 손익 분기점

인덱스 손익 분기점이란 - index range scan이 table full scan보다 느려지는 시점 - table full scan은 추출 건수와 상관없이 어차피 테이블을 전체 스캔하는 것이기 때문에 소요 시간이 항상 같다 - index range scan은 추출 건수가 많아짐에 따라 소요시간이 늘어난다.(인덱스 스캔 + 테이블 랜덤 엑세스, 테이블 랜덤엑세스로 인한 시간 소요가 주요원인) - 이때 CF(clustering factor)가 나쁘면 손익분기점이 빨리 오고, 좋으면 손익분기점이 늦게 온다

DB/SQL 2022.08.10

인덱스 스캔 종류

index range scan - 루트 인덱스에서 리프 블록까지 수직적으로 탐색 후 필요한 범위만 스캔하는 것 - 선두 칼럼을 가공하지 않은 상태로 조건절에 사용해야 함(그렇지 않으면 인덱스를 타지 않음) index full scan * 모든 인덱스를 수평적으로 탐색 * table full scan과 비교시 - 테이블면적이 크면 table full scan이 시간이 많이 걸리므로 index full scan이 유리 - 찾는 개수가 많으면 테이블 엑세스가 많아지므로 애초부터 table full scan이 유리 index unique scan - "=" 조건으로 탐색하는 경우에 작동 index skip scan - 다중 조건에서 첫번째 조건으로 skip할 수 있는 구간을 skip하며 찾는것 - 선두 칼..

DB/SQL 2022.08.08

인덱스 수직적 탐색과 수평적 탐색

수직적 탐색과 수평적 탐색 수직적 탐색 - 정렬된 인덱스 레코드 중 조건을 만족하는 첫 번째 레코드를 찾는 과정 - 즉 인덱스 스캔 시작지점을 찾는 과정 - 루트 노드부터 시작해서 아래로 내려온다 수평적 탐색 - 수직적 탐색 후 찾고자 하는 데이터가 더 나타나지 않을 때 까지 인덱스 리프 블록을 수평적으로 스캔 - 인덱스 리프 블록끼리는 서로 앞뒤 블록에 대한 주소값을 갖음 (double linked list 구조) - 인덱스 스킨을 끝낸 후 테이블 스캔을 하기 위해 ROWID를 얻는다.

DB/SQL 2022.08.08

파이썬 argparse 사용법

argparse 파이썬 실행시 옵션을 추가할 수 있게 해주는 argparse의 사용법을 알아본다. argparse 구현 import argparse def main(): # args 선언 args = argparse.ArgumentParser() # arg 추가 args.add_argument('--arg1', type=str, default='default1', help='이것은 default1입니다.') args.add_argument('--arg2', type=str, default='default2', help='이것은 default2입니다.') args.add_argument('--arg3', type=int, default=3, help='이것은 default3입니다.') # 파싱 conf..

파이썬 라이브러리 설치, 버전확인, 삭제

1. 라이브러리 설치 pip install [라이브러리이름]==[버전] 버전을 적지 않으면 최신 버전으로 설치 2. 라이브러리 버전 확인 2.1 콘솔창에서 확인 pip show [라이브러리이름] 2.2 코드에서 확인(파이썬 3.8이하) from importlib_metadata import version print(version('라이브러리')) 2.3 코드에서 확인(파이썬 3.8이상) import pkg_resources print(pkg_resources.get_distribution('pywin32').version) 3. 라이브러리 삭제 pip uninstall [라이브러리]

PyAutoGUI 실행시 pyautogui.FailSafeException 에러

1. 문제, 원인 PyAutoGUI로 파일 실행시 다음의 에러가 발생하는경우가 있다. pyautogui.FailSafeException: PyAutoGUI fail-safe triggered from mouse moving to a corner of the screen. To disable this fail-safe, set pyautogui.FAILSAFE to False. DISABLING FAIL-SAFE IS NOT RECOMMENDED. 이는 파일이 실행중, 마우스가 모니터 사각형 모서리에 가는 경우 발생하는 에러이다 2. 해결 pyautogui.FAILSAFE = False 위의 코드를 추가하는 것으로 해당 에러를 방지할 수 있다.

파이참 모듈 설치후에도 ModuleNotFoundError: No module named 에러발생시 해결법

특정 모듈 설치 후에도 ModuleNotFoundError: No module named 에러가 발생하는 경우가 있다. 이런 경우 모듈이 설치된 파이선인터프리터와, 현재 실행되고있는 파이썬 인터프리터가 다른 경우가 원인일 때가 있다. 즉 모듈이 설치된 파이선 인터프리터를 현재 파일의 인터프리터로 설정하면 문제가 해결된다. 따라서 1. 모듈이 설치된 파이썬 인터프리터 2. 현재실행되고있는 파이썬 인터프리터 위 1,2를 일치시키면 문제가 해결된다.