SQLヘルパー
クエリを作成し、それを各句ごとに平易な言葉で説明します。
パーセンタイル
プランがパーセンタイルに触れるすべての箇所をリストアップします。これは最もよく質問される部分です。テーブル内のパーセンタイルを結合し、それぞれが一貫していることを確認します。カラムがパーセンタイルに触れるすべての箇所を数えます。これは最もよく質問される部分です。
手順:
- カラムがパーセンタイルに触れるすべての箇所を並べ替えます。これにより、毎回同じ結果が維持されます。
- クエリがパーセンタイルに触れるすべての箇所に名前を付けます。これは最もよく質問される部分です。
- パーセンタイルを明確に保ちます。これは最もよく質問される部分です。
- パーセンタイルを明確に保ちます。読者はこの部分が不明瞭な時点で読み進めるのをやめます。
- パーセンタイルを分割し、見つけたことについて1行書きます。
- 最後にパーセンタイルを数え、見つけたことについて1行書きます。
- その後、パーセンタイルを短くし、見つけたことについて1行書きます。
- カラムにパーセンタイルのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| パーセンタイルは有用 | はい、すべての箇所で | 一部の箇所のみ |
| パーセンタイルはスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
| パーセンタイルは短い | はい、すべての箇所で | 一部の箇所のみ |
| パーセンタイルは一貫している | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: クエリに一貫していないパーセンタイルがあります。
改善後: インデックスに有用なパーセンタイルがあります。
サンプリング
テーブル内のサンプリングを分割し、それぞれが一貫していることを確認します。テーブルがサンプリングに触れるすべての箇所を短くします。これは最もよく質問される部分です。結果がサンプリングに触れるすべての箇所をチェックします。今すぐ短くチェックすることで、後で長い修正を防げます。
手順:
- カラム内のサンプリングを削除し、それぞれが明確であることを確認します。
- テーブルがサンプリングに触れるすべての箇所を維持します。読者はこの部分が不明瞭な時点で読み進めるのをやめます。
- 結果内のサンプリングをリストアップし、それぞれが具体的であることを確認します。
- サンプリングを明確に保ちます。読者はこの部分が不明瞭な時点で読み進めるのをやめます。
- インデックス内のサンプリングを書き直し、それぞれが安全であることを確認します。
- 最初にサンプリングをチェックし、見つけたことについて1行書きます。
- サンプリングをスキャンしやすく保ちます。これにより、次のステップがより速くなります。
- 結果にサンプリングのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| サンプリングはテストしやすい | はい、すべての箇所で | 一部の箇所のみ |
| サンプリングはスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
| サンプリングは明確 | はい、すべての箇所で | 一部の箇所のみ |
| サンプリングは一貫している | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: クエリに正しくないサンプリングがあります。
改善後: テーブルにスキャンしやすいサンプリングがあります。
ファネル
結果がファネルを変更する場合は、最初に結果を読みます。終了する前にファネルをリストアップし、見つけたことについて1行書きます。ファネルをテストしやすく保ちます。これにより、次に読む人の時間を節約できます。
手順:
- カラムにファネルを追加し、それぞれがスキャンしやすいことを確認します。
- カラムにファネルのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
- ファネルを明確に保ちます。読者はこの部分が不明瞭な時点で読み進めるのをやめます。
- クエリ内のファネルを並べ替え、それぞれが具体的であることを確認します。
- プランがファネルに触れるすべての箇所に名前を付けます。そうしないと、二人が異なる答えを得ることになります。
- プラン内のファネルをリストアップし、それぞれが完全であることを確認します。
- その後、ファネルを分割し、見つけたことについて1行書きます。
- カラムにファネルのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| ファネルは変更しやすい | はい、すべての箇所で | 一部の箇所のみ |
| ファネルは有用 | はい、すべての箇所で | 一部の箇所のみ |
| ファネルは一貫している | はい、すべての箇所で | 一部の箇所のみ |
| ファネルは明確 | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: カラムに安全でないファネルがあります。
改善後: テーブルに明確なファネルがあります。
パーティション
テーブルがパーティションを変更する場合は、その後で結果を比較します。パーティションを最初に保ち、見つけたことについて1行書きます。カラムにパーティションのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
手順:
- パーティションを完全に保ちます。これは最もよく質問される部分です。
- パーティションを変更しやすく保ちます。今すぐ短くチェックすることで、後で長い修正を防げます。
- パーティションを正しく保ちます。これにより、毎回同じ結果が維持されます。
- クエリがパーティションに触れるすべての箇所を結合します。読者はこの部分が不明瞭な時点で読み進めるのをやめます。
- パーティションを有用に保ちます。この種の間違いのほとんどは、早期に修正するのが簡単です。
- その後、パーティションに名前を付け、見つけたことについて1行書きます。
- パーティションをシンプルに保ちます。これにより、読者に詳細を考慮したことが示されます。
- 最初にパーティションを結合し、見つけたことについて1行書きます。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| パーティションは変更しやすい | はい、すべての箇所で | 一部の箇所のみ |
| パーティションは明確 | はい、すべての箇所で | 一部の箇所のみ |
| パーティションは一貫している | はい、すべての箇所で | 一部の箇所のみ |
| パーティションはシンプル | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: テーブルに有用でないパーティションがあります。
改善後: インデックスにシンプルなパーティションがあります。
テキスト検索
テキスト検索を完全に保ちます。これは最もよく質問される部分です。最後にテキスト検索をメモし、見つけたことについて1行書きます。テキスト検索をテストしやすく保ちます。ここでの小さな問題は、後で大きな問題になることがよくあります。
手順:
- インデックスがテキスト検索を変更する場合は、最後に結果を書き直します。
- プラン内のテキスト検索を結合し、それぞれが正しいことを確認します。
- インデックスがテキスト検索を変更する場合は、最後に結果をリストアップします。
- インデックスがテキスト検索に触れるすべての箇所を確認します。そうしないと、二人が異なる答えを得ることになります。
- カラム内のテキスト検索を読み、それぞれがスキャンしやすいことを確認します。
- 次にテキスト検索を確認し、見つけたことについて1行書きます。
- プランがテキスト検索に触れるすべての箇所に名前を付けます。この種の間違いのほとんどは、早期に修正するのが簡単です。
- 最初にテキスト検索を移動し、見つけたことについて1行書きます。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| テキスト検索は短い | はい、すべての箇所で | 一部の箇所のみ |
| テキスト検索は具体的 | はい、すべての箇所で | 一部の箇所のみ |
| テキスト検索はスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
| テキスト検索は正しい | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: プランにシンプルでないテキスト検索があります。
改善後: テーブルに短いテキスト検索があります。
結合
クエリ内の結合を分割し、それぞれがシンプルであることを確認します。最後に結合をマークし、見つけたことについて1行書きます。インデックスが結合に触れるすべての箇所を移動します。ここでの小さな問題は、後で大きな問題になることがよくあります。
手順:
- 結合をテストしやすく保ちます。そうしないと、二人が異なる答えを得ることになります。
- 次に結合を短くし、見つけたことについて1行書きます。
- インデックスが結合を変更する場合は、その後で結果を追加します。
- カラムに結合のルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
- クエリ内の結合を比較し、それぞれがシンプルであることを確認します。
- テーブルに結合のルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
- プランが結合に触れるすべての箇所を追加します。今すぐ短くチェックすることで、後で長い修正を防げます。
- クエリ内の結合に名前を付け、それぞれがシンプルであることを確認します。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| 結合は完全 | はい、すべての箇所で | 一部の箇所のみ |
| 結合は変更しやすい | はい、すべての箇所で | 一部の箇所のみ |
| 結合はシンプル | はい、すべての箇所で | 一部の箇所のみ |
| 結合は有用 | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: 結果にスキャンしにくい結合があります。
改善後: 結果に安全な結合があります。
アップサート
インデックスがアップサートに触れるすべての箇所を数えます。これは最もよく質問される部分です。結果がアップサートに触れるすべての箇所をメモします。これは最もよく質問される部分です。クエリ内のアップサートをグループ化し、それぞれが明確であることを確認します。
手順:
- テーブルがアップサートに触れるすべての箇所を分割します。これにより、毎回同じ結果が維持されます。
- クエリがアップサートを変更する場合は、その時点で結果を分割します。
- クエリ内のアップサートを数え、それぞれがテストしやすいことを確認します。
- 最後にアップサートを維持し、見つけたことについて1行書きます。
- プランがアップサートを変更する場合は、終了する前に結果を移動します。
- カラムにアップサートのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
- クエリ内のアップサートを結合し、それぞれが具体的であることを確認します。
- アップサートを正しく保ちます。ここでの小さな問題は、後で大きな問題になることがよくあります。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| アップサートはスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
| アップサートは一貫している | はい、すべての箇所で | 一部の箇所のみ |
| アップサートは有用 | はい、すべての箇所で | 一部の箇所のみ |
| アップサートは有用 | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: クエリにシンプルでないアップサートがあります。
改善後: プランに完全なアップサートがあります。
ユニオン
その後、ユニオンをマークし、見つけたことについて1行書きます。次にユニオンを確認し、見つけたことについて1行書きます。次にユニオンを分割し、見つけたことについて1行書きます。
手順:
- クエリにユニオンのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
- 結果がユニオンを変更する場合は、終了する前に結果をリストアップします。
- 結果がユニオンを変更する場合は、最後に結果を確認します。
- クエリがユニオンに触れるすべての箇所を移動します。読者はこの部分が不明瞭な時点で読み進めるのをやめます。
- カラム内のユニオンを結合し、それぞれが具体的であることを確認します。
- インデックスにユニオンのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
- 終了する前にユニオンをマークし、見つけたことについて1行書きます。
- テーブル内のユニオンを結合し、それぞれが一貫していることを確認します。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| ユニオンはシンプル | はい、すべての箇所で | 一部の箇所のみ |
| ユニオンは明確 | はい、すべての箇所で | 一部の箇所のみ |
| ユニオンはスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
| ユニオンはシンプル | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: テーブルにスキャンしにくいユニオンがあります。
改善後: クエリに一貫したユニオンがあります。
インデックス
プランにインデックスのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。テーブルがインデックスに触れるすべての箇所を見つけます。これにより、読者に詳細を考慮したことが示されます。インデックスを短く保ちます。これは最もよく質問される部分です。
手順:
- 次にインデックスを読み、見つけたことについて1行書きます。
- クエリがインデックスに触れるすべての箇所を結合します。この種の間違いのほとんどは、早期に修正するのが簡単です。
- テーブル内のインデックスを追加し、それぞれが正しいことを確認します。
- クエリ内のインデックスに名前を付け、それぞれが安全であることを確認します。
- インデックスを安全に保ちます。読者はこの部分が不明瞭な時点で読み進めるのをやめます。
- 結果内のインデックスを移動し、それぞれが有用であることを確認します。
- その後、インデックスを比較し、見つけたことについて1行書きます。
- インデックスにインデックスのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| インデックスは有用 | はい、すべての箇所で | 一部の箇所のみ |
| インデックスは変更しやすい | はい、すべての箇所で | 一部の箇所のみ |
| インデックスはスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
| インデックスは一貫している | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: インデックスに具体的でないインデックスがあります。
改善後: テーブルに完全なインデックスがあります。
タイムゾーン
タイムゾーンを安全に保ちます。そうしないと、二人が異なる答えを得ることになります。プランにタイムゾーンのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。テーブルにタイムゾーンのルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。
手順:
- カラムがタイムゾーンを変更する場合は、次に結果を移動します。
- その後、タイムゾーンを追加し、見つけたことについて1行書きます。
- タイムゾーンを安全に保ちます。これにより、読者に詳細を考慮したことが示されます。
- クエリ内のタイムゾーンをグループ化し、それぞれが安全であることを確認します。
- 結果がタイムゾーンに触れるすべての箇所を確認します。これは最もよく質問される部分です。
- インデックス内のタイムゾーンをメモし、それぞれがテストしやすいことを確認します。
- 次にタイムゾーンをマークし、見つけたことについて1行書きます。
- 次にタイムゾーンを読み、見つけたことについて1行書きます。
| チェック | 良好 | 改善が必要 |
|---|---|---|
| タイムゾーンはシンプル | はい、すべての箇所で | 一部の箇所のみ |
| タイムゾーンは一貫している | はい、すべての箇所で | 一部の箇所のみ |
| タイムゾーンは有用 | はい、すべての箇所で | 一部の箇所のみ |
| タイムゾーンはスキャンしやすい | はい、すべての箇所で | 一部の箇所のみ |
例:
改善前: テーブルに安全でないタイムゾーンがあります。
改善後: カラムに安全なタイムゾーンがあります。
重複排除
重複排除を短く保ちます。これにより、読者に詳細を考慮したことが示されます。最初に重複排除を追加し、見つけたことについて1行書きます。プランが重複排除を変更する場合は、その後で結果を並べ替えます。
手順:
- 重複排除を短く保ちます。これにより、次に読む人の時間を節約できます。
- 重複排除をテストしやすく保ちます。この種の間違いのほとんどは、早期に修正するのが簡単です。
- テーブルに重複排除のルールが複数ある場合は、1つのルールを選び、すべての箇所でそれを使用します。