SQL 헬퍼
쿼리를 작성한 다음, 각 절(clause)을 평이한 언어로 설명합니다.
백분위수(Percentiles)
계획에서 백분위수와 관련된 모든 위치를 나열하세요. 이것이 사람들이 가장 자주 묻는 부분입니다. 테이블의 백분위수를 조인하고, 각각이 일관되도록 하세요. 열이 백분위수와 관련된 모든 위치를 세세요. 이것이 사람들이 가장 자주 묻는 부분입니다.
단계:
- 열이 백분위수와 관련된 각 위치를 정렬하세요. 그러면 결과가 매번 동일하게 유지됩니다.
- 쿼리가 백분위수와 관련된 각 위치에 이름을 지정하세요. 이것이 사람들이 가장 자주 묻는 부분입니다.
- 백분위수를 명확하게 유지하세요. 이것이 사람들이 가장 자주 묻는 부분입니다.
- 백분위수를 명확하게 유지하세요. 이 부분이 불명확하면 독자가 읽기를 멈춥니다.
- 그런 다음 백분위수를 분할하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 마지막에 백분위수를 세고, 발견한 내용에 대해 한 줄을 작성하세요.
- 그런 다음 백분위수를 줄이고, 발견한 내용에 대해 한 줄을 작성하세요.
- 열에 백분위수에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 백분위수가 유용함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 백분위수가 스캔하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 백분위수가 짧음 | 예, 모든 위치에서 | 일부 위치에서만 |
| 백분위수가 일관됨 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 쿼리에 일관되지 않은 백분위수가 있습니다.
After: 인덱스에 유용한 백분위수가 있습니다.
샘플링(Sampling)
테이블의 샘플링을 분할하고, 각각이 일관되도록 하세요. 테이블이 샘플링과 관련된 각 위치를 줄이세요. 이것이 사람들이 가장 자주 묻는 부분입니다. 결과가 샘플링과 관련된 각 위치를 확인하세요. 지금 간단히 확인하면 나중에 긴 수정을 방지할 수 있습니다.
단계:
- 열의 샘플링을 제거하고, 각각이 명확하도록 하세요.
- 테이블이 샘플링과 관련된 각 위치를 유지하세요. 이 부분이 불명확하면 독자가 읽기를 멈춥니다.
- 결과의 샘플링을 나열하고, 각각이 구체적이도록 하세요.
- 샘플링을 명확하게 유지하세요. 이 부분이 불명확하면 독자가 읽기를 멈춥니다.
- 인덱스의 샘플링을 다시 작성하고, 각각이 안전하도록 하세요.
- 샘플링을 먼저 확인하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 샘플링을 스캔하기 쉽게 유지하세요. 그러면 다음 단계가 훨씬 빨라집니다.
- 결과에 샘플링에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 샘플링이 테스트하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 샘플링이 스캔하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 샘플링이 명확함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 샘플링이 일관됨 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 쿼리에 올바르지 않은 샘플링이 있습니다.
After: 테이블에 스캔하기 쉬운 샘플링이 있습니다.
퍼널(Funnels)
결과가 퍼널을 변경할 때, 결과를 먼저 읽으세요. 퍼널을 완료하기 전에 나열하고, 발견한 내용에 대해 한 줄을 작성하세요. 퍼널을 테스트하기 쉽게 유지하세요. 이렇게 하면 다음에 읽는 사람의 시간을 절약할 수 있습니다.
단계:
- 열에 퍼널을 추가하고, 각각이 스캔하기 쉽도록 하세요.
- 열에 퍼널에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
- 퍼널을 명확하게 유지하세요. 이 부분이 불명확하면 독자가 읽기를 멈춥니다.
- 쿼리의 퍼널을 정렬하고, 각각이 구체적이도록 하세요.
- 계획이 퍼널과 관련된 각 위치에 이름을 지정하세요. 그렇지 않으면 두 사람이 서로 다른 답을 얻습니다.
- 계획의 퍼널을 나열하고, 각각이 완전하도록 하세요.
- 그런 다음 퍼널을 분할하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 열에 퍼널에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 퍼널이 변경하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 퍼널이 유용함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 퍼널이 일관됨 | 예, 모든 위치에서 | 일부 위치에서만 |
| 퍼널이 명확함 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 열에 안전하지 않은 퍼널이 있습니다.
After: 테이블에 명확한 퍼널이 있습니다.
파티션(Partitions)
테이블이 파티션을 변경할 때, 그 후에 결과를 비교하세요. 파티션을 먼저 유지하고, 발견한 내용에 대해 한 줄을 작성하세요. 열에 파티션에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
단계:
- 파티션을 완전하게 유지하세요. 이것이 사람들이 가장 자주 묻는 부분입니다.
- 파티션을 변경하기 쉽게 유지하세요. 지금 간단히 확인하면 나중에 긴 수정을 방지할 수 있습니다.
- 파티션을 올바르게 유지하세요. 그러면 결과가 매번 동일하게 유지됩니다.
- 쿼리가 파티션과 관련된 각 위치를 조인하세요. 이 부분이 불명확하면 독자가 읽기를 멈춥니다.
- 파티션을 유용하게 유지하세요. 이러한 종류의 실수는 대부분 초기에 수정하기 쉽습니다.
- 그런 다음 파티션에 이름을 지정하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 파티션을 단순하게 유지하세요. 그러면 독자에게 세부 사항을 고려했음을 보여줍니다.
- 파티션을 먼저 조인하고, 발견한 내용에 대해 한 줄을 작성하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 파티션이 변경하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 파티션이 명확함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 파티션이 일관됨 | 예, 모든 위치에서 | 일부 위치에서만 |
| 파티션이 단순함 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 테이블에 유용하지 않은 파티션이 있습니다.
After: 인덱스에 단순한 파티션이 있습니다.
텍스트 검색(Text search)
텍스트 검색을 완전하게 유지하세요. 이것이 사람들이 가장 자주 묻는 부분입니다. 마지막에 텍스트 검색을 기록하고, 발견한 내용에 대해 한 줄을 작성하세요. 텍스트 검색을 테스트하기 쉽게 유지하세요. 여기서 작은 문제는 종종 나중에 큰 문제가 됩니다.
단계:
- 인덱스가 텍스트 검색을 변경할 때, 마지막에 결과를 다시 작성하세요.
- 계획의 텍스트 검색을 조인하고, 각각이 올바르도록 하세요.
- 인덱스가 텍스트 검색을 변경할 때, 마지막에 결과를 나열하세요.
- 인덱스가 텍스트 검색과 관련된 각 위치를 확인하세요. 그렇지 않으면 두 사람이 서로 다른 답을 얻습니다.
- 열의 텍스트 검색을 읽고, 각각이 스캔하기 쉽도록 하세요.
- 다음으로 텍스트 검색을 확인하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 계획이 텍스트 검색과 관련된 각 위치에 이름을 지정하세요. 이러한 종류의 실수는 대부분 초기에 수정하기 쉽습니다.
- 텍스트 검색을 먼저 이동하고, 발견한 내용에 대해 한 줄을 작성하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 텍스트 검색이 짧음 | 예, 모든 위치에서 | 일부 위치에서만 |
| 텍스트 검색이 구체적임 | 예, 모든 위치에서 | 일부 위치에서만 |
| 텍스트 검색이 스캔하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 텍스트 검색이 올바름 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 계획에 단순하지 않은 텍스트 검색이 있습니다.
After: 테이블에 짧은 텍스트 검색이 있습니다.
조인(Joins)
쿼리의 조인을 분할하고, 각각이 단순하도록 하세요. 마지막에 조인을 표시하고, 발견한 내용에 대해 한 줄을 작성하세요. 인덱스가 조인과 관련된 각 위치를 이동하세요. 여기서 작은 문제는 종종 나중에 큰 문제가 됩니다.
단계:
- 조인을 테스트하기 쉽게 유지하세요. 그렇지 않으면 두 사람이 서로 다른 답을 얻습니다.
- 다음으로 조인을 줄이고, 발견한 내용에 대해 한 줄을 작성하세요.
- 인덱스가 조인을 변경할 때, 그 후에 결과를 추가하세요.
- 열에 조인에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
- 쿼리의 조인을 비교하고, 각각이 단순하도록 하세요.
- 테이블에 조인에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
- 계획이 조인과 관련된 각 위치를 추가하세요. 지금 간단히 확인하면 나중에 긴 수정을 방지할 수 있습니다.
- 쿼리의 조인에 이름을 지정하고, 각각이 단순하도록 하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 조인이 완전함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 조인이 변경하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 조인이 단순함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 조인이 유용함 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 결과에 스캔하기 쉽지 않은 조인이 있습니다.
After: 결과에 안전한 조인이 있습니다.
업서트(Upserts)
인덱스가 업서트와 관련된 각 위치를 세세요. 이것이 사람들이 가장 자주 묻는 부분입니다. 결과가 업서트와 관련된 각 위치를 기록하세요. 이것이 사람들이 가장 자주 묻는 부분입니다. 쿼리의 업서트를 그룹화하고, 각각이 명확하도록 하세요.
단계:
- 테이블이 업서트와 관련된 각 위치를 분할하세요. 그러면 결과가 매번 동일하게 유지됩니다.
- 쿼리가 업서트를 변경할 때, 그런 다음 결과를 분할하세요.
- 쿼리의 업서트를 세고, 각각이 테스트하기 쉽도록 하세요.
- 업서트를 마지막에 유지하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 계획이 업서트를 변경할 때, 완료하기 전에 결과를 이동하세요.
- 열에 업서트에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
- 쿼리의 업서트를 조인하고, 각각이 구체적이도록 하세요.
- 업서트를 올바르게 유지하세요. 여기서 작은 문제는 종종 나중에 큰 문제가 됩니다.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 업서트가 스캔하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 업서트가 일관됨 | 예, 모든 위치에서 | 일부 위치에서만 |
| 업서트가 유용함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 업서트가 유용함 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 쿼리에 단순하지 않은 업서트가 있습니다.
After: 계획에 완전한 업서트가 있습니다.
유니언(Unions)
그런 다음 유니언을 표시하고, 발견한 내용에 대해 한 줄을 작성하세요. 그런 다음 유니언을 확인하고, 발견한 내용에 대해 한 줄을 작성하세요. 다음으로 유니언을 분할하고, 발견한 내용에 대해 한 줄을 작성하세요.
단계:
- 쿼리에 유니언에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
- 결과가 유니언을 변경할 때, 완료하기 전에 결과를 나열하세요.
- 결과가 유니언을 변경할 때, 마지막에 결과를 확인하세요.
- 쿼리가 유니언과 관련된 각 위치를 이동하세요. 이 부분이 불명확하면 독자가 읽기를 멈춥니다.
- 열의 유니언을 조인하고, 각각이 구체적이도록 하세요.
- 인덱스에 유니언에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
- 완료하기 전에 유니언을 표시하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 테이블의 유니언을 조인하고, 각각이 일관되도록 하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 유니언이 단순함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 유니언이 명확함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 유니언이 스캔하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 유니언이 단순함 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 테이블에 스캔하기 쉽지 않은 유니언이 있습니다.
After: 쿼리에 일관된 유니언이 있습니다.
인덱스(Indexes)
계획에 인덱스에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요. 테이블이 인덱스와 관련된 각 위치를 찾으세요. 그러면 독자에게 세부 사항을 고려했음을 보여줍니다. 인덱스를 짧게 유지하세요. 이것이 사람들이 가장 자주 묻는 부분입니다.
단계:
- 다음으로 인덱스를 읽고, 발견한 내용에 대해 한 줄을 작성하세요.
- 쿼리가 인덱스와 관련된 각 위치를 조인하세요. 이러한 종류의 실수는 대부분 초기에 수정하기 쉽습니다.
- 테이블의 인덱스를 추가하고, 각각이 올바르도록 하세요.
- 쿼리의 인덱스에 이름을 지정하고, 각각이 안전하도록 하세요.
- 인덱스를 안전하게 유지하세요. 이 부분이 불명확하면 독자가 읽기를 멈춥니다.
- 결과의 인덱스를 이동하고, 각각이 유용하도록 하세요.
- 그런 다음 인덱스를 비교하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 인덱스에 인덱스에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 인덱스가 유용함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 인덱스가 변경하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 인덱스가 스캔하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
| 인덱스가 일관됨 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 인덱스에 구체적이지 않은 인덱스가 있습니다.
After: 테이블에 완전한 인덱스가 있습니다.
시간대(Time zones)
시간대를 안전하게 유지하세요. 그렇지 않으면 두 사람이 서로 다른 답을 얻습니다. 계획에 시간대에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요. 테이블에 시간대에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
단계:
- 열이 시간대를 변경할 때, 다음에 결과를 이동하세요.
- 그런 다음 시간대를 추가하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 시간대를 안전하게 유지하세요. 그러면 독자에게 세부 사항을 고려했음을 보여줍니다.
- 쿼리의 시간대를 그룹화하고, 각각이 안전하도록 하세요.
- 결과가 시간대와 관련된 각 위치를 확인하세요. 이것이 사람들이 가장 자주 묻는 부분입니다.
- 인덱스의 시간대를 기록하고, 각각이 테스트하기 쉽도록 하세요.
- 다음으로 시간대를 표시하고, 발견한 내용에 대해 한 줄을 작성하세요.
- 다음으로 시간대를 읽고, 발견한 내용에 대해 한 줄을 작성하세요.
| 확인 항목 | 좋음 | 개선 필요 |
|---|---|---|
| 시간대가 단순함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 시간대가 일관됨 | 예, 모든 위치에서 | 일부 위치에서만 |
| 시간대가 유용함 | 예, 모든 위치에서 | 일부 위치에서만 |
| 시간대가 스캔하기 쉬움 | 예, 모든 위치에서 | 일부 위치에서만 |
예시:
Before: 테이블에 안전하지 않은 시간대가 있습니다.
After: 열에 안전한 시간대가 있습니다.
중복 제거(Deduplication)
중복 제거를 짧게 유지하세요. 그러면 독자에게 세부 사항을 고려했음을 보여줍니다. 중복 제거를 먼저 추가하고, 발견한 내용에 대해 한 줄을 작성하세요. 계획이 중복 제거를 변경할 때, 그 후에 결과를 정렬하세요.
단계:
- 중복 제거를 짧게 유지하세요. 이렇게 하면 다음에 읽는 사람의 시간을 절약할 수 있습니다.
- 중복 제거를 테스트하기 쉽게 유지하세요. 이러한 종류의 실수는 대부분 초기에 수정하기 쉽습니다.
- 테이블에 중복 제거에 대한 규칙이 두 개 이상 있으면 하나의 규칙을 선택하여 모든 곳에서 사용하세요.
...