부분범위처리 부분범위 처리 - SQL 수행 후 전체 쿼리 결과 집합을 쉼 없이 연속적으로 전송하지 않고 사용자로 부터 "Fectch Call"이 있을 때 마다 나누어 전송하는 것 - 전체 결과 집합 중 아직 전송하지 않은 분량이 남아 있더라도 서버 프로세스는 CPU를 OS에 반환하고 대기 큐에서 잠을 잠 - Array Size : 한번 전송할 때 데이터의 양 - array size 쿼리 show arraysize DB/SQL 2022.08.11
인덱스 손익 분기점 인덱스 손익 분기점이란 - index range scan이 table full scan보다 느려지는 시점 - table full scan은 추출 건수와 상관없이 어차피 테이블을 전체 스캔하는 것이기 때문에 소요 시간이 항상 같다 - index range scan은 추출 건수가 많아짐에 따라 소요시간이 늘어난다.(인덱스 스캔 + 테이블 랜덤 엑세스, 테이블 랜덤엑세스로 인한 시간 소요가 주요원인) - 이때 CF(clustering factor)가 나쁘면 손익분기점이 빨리 오고, 좋으면 손익분기점이 늦게 온다 DB/SQL 2022.08.10
인덱스 클러스터링 팩터 인덱스 클러스터링 팩터 - 클러스터링 팩터(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
자동형변환 자동 형변환 - SQL에서 형이 다른 두 변수를 비교할 때 자동으로 한 변수의 형태를 다른 변수에 맞게 변환해 주는 것 - 숫자와 문자를 비교하면 숫자가 된다(LIKE와 같이 문자를 비교하는 연산자를 사용하면 숫자가 문자가 된다) - 문자와 날짜를 비교하면 날짜가 된다 - 자동 형 변환에 의지하는 것 보다, 정확한 형태를 명시해 주는것이 좋음 DB/SQL 2022.08.08
인덱스 수직적 탐색과 수평적 탐색 수직적 탐색과 수평적 탐색 수직적 탐색 - 정렬된 인덱스 레코드 중 조건을 만족하는 첫 번째 레코드를 찾는 과정 - 즉 인덱스 스캔 시작지점을 찾는 과정 - 루트 노드부터 시작해서 아래로 내려온다 수평적 탐색 - 수직적 탐색 후 찾고자 하는 데이터가 더 나타나지 않을 때 까지 인덱스 리프 블록을 수평적으로 스캔 - 인덱스 리프 블록끼리는 서로 앞뒤 블록에 대한 주소값을 갖음 (double linked list 구조) - 인덱스 스킨을 끝낸 후 테이블 스캔을 하기 위해 ROWID를 얻는다. DB/SQL 2022.08.08
테이블스페이스 테이블스페이스 - 데이터베이스의 구조. 데이터를 저장하기 위해 생성해야 함 - 테이블스페이스 : 세그먼트를 담는 콘테이너 - 세그먼트 : 데이터 저장공간이 필요한 오브젝트(테이블, 인덱스, 파티션, LOB) - 익스텐드 : 공간을 확장하는 단위, 연속된 블록의 집합 - 블록 : 데이터를 읽고 쓰는 단위 DB/SQL 2022.08.07
데이터프레임 문자열 쪼개서 여러 컬럼으로 만들기 1. 데이터프레임에서 값이 문자열로 되어 있는 컬럼을 쪼개서 여러 컬럼으로 만든다. 2. 코드 pat : 나누는 기준이 되는 문자열 expand : True면 return값이 데이터프레임으로 나오고, False면 return 값이 series형태로 나옴 df_1 = self.df["ymdhm"].str.split(pat="나눌문자열",expand=True) display(df_1) 데이터분석/전처리 2022.08.06
파이썬 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.. 프로그래밍 문법/python 2022.07.23
jupyter에 python 버전추가 1. jupyter에 python 버전 추가 1.1 추가할 버전이 있는 파이썬 디렉토리로 이동 1.2 다음 명령어 입력 python -m pip install ipykernel python -m ipykernel install --user --name="이름" 2. kernel/change kernel/에서 추가된 버전 확인 프로그래밍 문법/python 2022.07.13
파이썬 라이브러리 설치, 버전확인, 삭제 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 [라이브러리] 프로그래밍 문법/python 2022.07.13
pip install시에 PermissionError: [WinError 5] 액세스가 거부되었습니다: 에러해결법 1. 에러 명 PermissionError: [WinError 5] 액세스가 거부되었습니다: 2. 해결 python -m pip install --upgrade pip 프로그래밍 문법/python 2022.07.13
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 위의 코드를 추가하는 것으로 해당 에러를 방지할 수 있다. 프로그래밍 문법/python 2022.07.12
파이참 모듈 설치후에도 ModuleNotFoundError: No module named 에러발생시 해결법 특정 모듈 설치 후에도 ModuleNotFoundError: No module named 에러가 발생하는 경우가 있다. 이런 경우 모듈이 설치된 파이선인터프리터와, 현재 실행되고있는 파이썬 인터프리터가 다른 경우가 원인일 때가 있다. 즉 모듈이 설치된 파이선 인터프리터를 현재 파일의 인터프리터로 설정하면 문제가 해결된다. 따라서 1. 모듈이 설치된 파이썬 인터프리터 2. 현재실행되고있는 파이썬 인터프리터 위 1,2를 일치시키면 문제가 해결된다. 프로그래밍 문법/python 2022.07.12
[태블로] 날짜의 연속적, 비연속적 표현 날짜 칼럼이 있을 때, 이를 연속적, 비연속적으로 표현하는 법을 알아본다. 1. 연속적 표현 실제 데이터의 전체기간을 선택한 단위(년,분기,월)로 보여준다. 2. 비연속적 표현 데이터의 전체기한을 group by하여 선택한 단위로 보여준다. 데이터분석/시각화 2022.07.05
[태블로] 차원과 측정값 1. 태블로 좌측에 있는 차원과 측정값을 알아본다 2. 차원 정성적 데이터, 분석 기준이 되는 값, 불연속형 데이터로 측정값을 쪼개어 보는 관점 3. 측정값 정량적 수치, 연속형 데이터로 집계되는 데이터 * 집계 : 합계, 평군, 중앙값, 카운트, 최솟값, 최댓값, 백분위수, 표준편차, 분산 등 데이터분석/시각화 2022.07.05
파이썬으로 파일 수정한 날짜 확인하기 1. 코드 * 코드 실행시 아래의 사진과 같이 str타입으로 반환됨 import os os.path.getctime(file_path) 프로그래밍 문법/python 2022.06.20
파이썬으로 프로그램 실행하기 1. 파이썬으로 프로그램 실행하기 실행시 파이썬이 동작하며 파일이 실행된다. 2. 코드 path = folder\\test.txt os.startfile(path) * 하위 파일경로는 역슬러시(\\)로 들어가는 것 주의 프로그래밍 문법/python 2022.06.20