딕셔너리 정렬하는거 복습은 개뿔 낼하기~
https://dogsavestheworld.tistory.com/110
def solution(x, n):
ans=[]
y=x
while len(ans) != n:
ans.append(y)
y+=x
return ans
def solution(x, n):
return [x+(i)*x for i in range(n)]
리스트 축약식으로 풀려고 하면 생각이 확실히 좀 다르게 되는 것 같다. 오늘도 range(len()) 안써서 뿌듯하당ㅋㅅㅋ
레코드 수가 적은 테이블이 먼저 엑세스 되어야 스캔횟수가 적어져 수행 속도가 보다 빨라짐
→ 옵티마이저의 유형에 의해 결정됨
관계형 데이터베이스에서 사용자가 작성한 SQL 질의문에 대한 최적화된 실행방법(실행계획)을 찾아냄
규칙기반 옵티마이저 RBO(Rule-Based Optimizer)
실행계획을 생성하는 규칙의 우선순위에 따라 실행 계획을 세움 → 인덱스 유무와 종류, 연산자의 종류, 참조 객체의 종류
비용기반 옵티마이저 CBO(Cost-Based Optimizer)
쿼리를 수행하는데 소요되는 예상 비용(소요 시간 및 자원 사용량)으로 계획을 세움 → 통계정보를 이용해 비용 예측
실행계획마다 비용사항 예상값이 표시됨(cost, card, bytes)
같은 쿼리문이라도 통계정보, DBMS 버전, DBMS 설정 정보에 따라 실행계획이 서로 다를 수 있음
대부분의 RDBMS는 CBO를 제공한다.
비용기반 옵티마이저의 구성
- 질의 변환기: 사용자가 작성한 SQL문을 처리하기에 보다 용이한 형태로 변환하는 모듈
- 대안 계획 생성기: 가능한 모든 대안 계획을 생성해야 보다 나은 최적화를 수행할 수 있지만 생성이 너무 많아지면 최적화를 수행하는 시간이 많이 소요되므로 대부분의 상용 옵티마이저들은 대안 계획의 수를 제약하는 다양한 방법을 사용한다. 이러한 현실적인 제약으로 인해 생성된 대안 계획들 중에서 최적의 대안 계획이 포함되지 않을 수도 있다.
- 비용 예측기: 대안 계획의 비용 예측
https://devuna.tistory.com/36
https://dataonair.or.kr/db-tech-reference/d-guide/sql/?mod=document&uid=354