Optimisation des performances de requêtes SQLite

VérifiéSûr

Compétence d'optimisation des performances de requêtes SQLite. Diagnostiquer les requêtes lentes, analyser les plans d'exécution et optimiser les index.

Spar Skills Guide Bot
DeveloppementIntermédiaire
29/07/2026
Claude Code
#sqlite#query-optimization#indexing#explain-query-plan#database-performance

Recommandé pour

Synthèse automatique

Ce skill optimise les requêtes SQLite lentes selon une démarche en trois phases : analyse du plan d'exécution, réécriture et indexation, puis validation par mesure.

Points forts

  • Démarche pilotée par la mesure : analyse EXPLAIN QUERY PLAN avant toute modification, puis comparaison avant/après.
  • Couvre l'indexation, la réécriture de requêtes et la résolution des problèmes N+1.
  • Fournit des références graduées (bases, avancé, expert) et des scripts d'analyse de requêtes lentes.
  • Inclut une phase de validation dédiée avec calcul des taux d'amélioration.

Limites

  • Spécifique à SQLite ; les plans d'exécution et astuces ne s'appliquent pas directement à PostgreSQL ou MySQL.
  • La qualité des résultats dépend de la représentativité des données et des benchmarks fournis par l'utilisateur.
  • L'ajout d'index est présenté avec ses compromis en écriture, mais l'arbitrage final reste à l'utilisateur.
Quand l'utiliser

À utiliser lorsqu'une requête SQLite est identifiée comme lente ou qu'un plan d'exécution doit être revu.

Quand l'éviter

À éviter pour optimiser une base non SQLite ou lorsque aucun accès aux données et aux mesures n'est disponible.

Analyse de sécurité

Sûr
Score qualité90/100

The skill provides legitimate SQLite query performance tuning guidance using Bash for running analysis scripts and database commands. No destructive, exfiltrating, or obfuscated actions are described; the declared scripts are for analysis, logging, and validation.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Diagnose a slow SQLite query
This SQLite query takes about 1.2s on a 500k-row table. Run EXPLAIN QUERY PLAN, identify the bottleneck, and give me the index DDL that would fix it: SELECT * FROM orders WHERE customer_id = ? AND created_at > ? ORDER BY created_at DESC LIMIT 50;
Fix an N+1 pattern
My ORM issues one query per order to load line items (N+1). Here are the schema and the generated SQL; rewrite this as a join or batched query, and measure the improvement before and after.
Review index bloat
We added three indexes and write throughput dropped noticeably. Analyze whether they help our top read queries, run EXPLAIN QUERY PLAN on each, and recommend which indexes to keep or drop.

name: query-performance-tuning description: | SQLiteクエリパフォーマンス最適化を専門とするスキル。EXPLAIN QUERY PLAN分析、インデックス戦略、クエリリライトを通じて、遅いクエリを診断し実行計画を改善します。

Anchors: • High Performance MySQL (Baron Schwartz) / 適用: クエリ分析と診断手法 / 目的: 体系的なパフォーマンス診断 • Use The Index, Luke (Markus Winand) / 適用: インデックス設計原則 / 目的: 効果的なインデックス活用 • Systems Performance (Brendan Gregg) / 適用: 測定駆動のアプローチ / 目的: 定量的な効果検証

Trigger: Use when optimizing slow queries, analyzing execution plans, designing indexes, resolving N+1 problems, or improving database performance systematically. Keywords: slow query, EXPLAIN QUERY PLAN, index optimization, query rewriting, N+1 problem, database performance, SQLite performance allowed-tools:

  • Read
  • Write
  • Edit
  • Bash
  • Glob
  • Grep

Query Performance Tuning

概要

SQLiteクエリパフォーマンスを測定駆動で最適化します。遅いクエリの診断、実行計画の分析、インデックス設計、クエリリライトを段階的に実施し、パフォーマンス改善を実現します。

ワークフロー

Phase 1: Analysis(分析)

目的: 遅いクエリを特定し、実行計画を分析してボトルネックを診断

Task: agents/analysis.md

入力:

  • 対象クエリ(SQL文)
  • パフォーマンス要件(許容レスポンス時間)

出力:

  • EXPLAIN QUERY PLAN 分析結果
  • ボトルネック診断レポート
  • 最適化の優先順位

実行タイミング: クエリが遅いと報告された時、パフォーマンス問題の調査時

Phase 2: Optimization(最適化)

目的: インデックス設計、クエリリライト、N+1問題解決を実施

Task: agents/optimization.md

入力:

  • Phase 1 の分析結果
  • データベーススキーマ
  • クエリパターン

出力:

  • インデックス設計案(DDL含む)
  • 最適化されたクエリ
  • 実装手順書

実行タイミング: 分析後の改善実施、インデックス追加判断時

Phase 3: Validation(検証)

目的: 最適化効果を測定し、パフォーマンス改善を検証

Task: agents/validation.md

入力:

  • 最適化前後のクエリ
  • ベンチマーク条件

出力:

  • パフォーマンス比較レポート
  • 改善率の測定結果
  • 残存課題の特定

実行タイミング: 最適化実施後、効果測定が必要な時

Task仕様

| Task | 起動タイミング | 入力 | 出力 | | ------------ | -------------- | ------------------ | ----------------------- | | analysis | Phase 1開始時 | クエリ・要件 | ボトルネック診断 | | optimization | Phase 2開始時 | 分析結果・スキーマ | インデックス・最適化SQL | | validation | Phase 3開始時 | 最適化前後クエリ | 検証レポート |

詳細仕様: 各Taskの詳細は agents/ ディレクトリを参照

ベストプラクティス

すべきこと

  • 測定から始める(推測による最適化を避ける)
  • EXPLAIN QUERY PLAN で実行計画を必ず確認
  • インデックス追加前にクエリパターンを分析
  • N+1問題は早期に特定して解決
  • 最適化効果を数値で検証
  • 書き込み性能への影響を考慮

避けるべきこと

  • 測定なしの盲目的なインデックス追加
  • 実行計画を見ずにクエリを変更
  • 過度なインデックス(書き込み性能の劣化)
  • 単一クエリのみの最適化(全体像を見失う)
  • 統計的妥当性のない測定

リソース参照

references/(詳細知識)

| リソース | パス | 内容 | | -------------------------- | -------------------------------------------------------------------------- | ------------------ | | 基礎知識 | references/Level1_basics.md | 基礎概念と用語 | | 実務パターン | references/Level2_intermediate.md | 実務での適用 | | 高度な最適化 | references/Level3_advanced.md | 高度な最適化技法 | | 専門トラブルシューティング | references/Level4_expert.md | 専門的な問題解決 | | EXPLAIN解析 | references/explain-analyze-guide.md | 実行計画の読解 | | インデックス戦略 | references/index-strategies.md | インデックス設計 | | クエリパターン | references/query-patterns.md | 最適化パターン | | 監視クエリ | references/monitoring-queries.md | パフォーマンス監視 |

scripts/(決定論的処理)

| スクリプト | 用途 | 使用例 | | -------------------------- | -------------- | ---------------------------------------------------------------------------- | | analyze-slow-queries.mjs | 遅いクエリ分析 | node scripts/analyze-slow-queries.mjs --query "SELECT ..." --threshold 100 | | log_usage.mjs | 使用履歴記録 | node scripts/log_usage.mjs --result success --phase analysis | | validate-skill.mjs | 構造検証 | node scripts/validate-skill.mjs |

assets/(テンプレート)

| テンプレート | 用途 | | -------------------------------- | -------------------------- | | performance-report-template.md | パフォーマンス分析レポート |

変更履歴

| Version | Date | Changes | | ------- | ---------- | ------------------------------------------------------------ | | 3.0.0 | 2026-01-02 | 18-skills.md仕様完全準拠: optimization/validation agents追加 | | 2.1.0 | 2026-01-02 | Task仕様テーブル形式化 | | 2.0.0 | 2025-12-31 | 18-skills.md 仕様に準拠、agents/ Task追加 | | 1.0.0 | 2025-12-24 | 初版 |

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/sqlite-query-performance-tuning-ms5lrggm/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/sqlite-query-performance-tuning-ms5lrggm' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/sqlite-query-performance-tuning-ms5lrggm/download' --output '.skill-downloads/sqlite-query-performance-tuning-ms5lrggm/SKILL.md.part' && mv '.skill-downloads/sqlite-query-performance-tuning-ms5lrggm/SKILL.md.part' '.skill-downloads/sqlite-query-performance-tuning-ms5lrggm/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/sqlite-query-performance-tuning-ms5lrggm/SKILL.md' && test -s '.skill-downloads/sqlite-query-performance-tuning-ms5lrggm/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/query-performance-tuning' && cp -R '.skill-downloads/sqlite-query-performance-tuning-ms5lrggm' '.claude/skills/query-performance-tuning'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/sqlite-query-performance-tuning-ms5lrggm'

openskills read 'sqlite-query-performance-tuning-ms5lrggm'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/sqlite-query-performance-tuning-ms5lrggm/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires