SQL Optimizer pour Openclaw

SQL Optimizer transforme les besoins métier ou les requêtes SQL lentes en un SQL correct, lisible et spécifique au dialecte, avec des recommandations de performance exploitables.

petehuax
v1.0.0
Oct 12, 2026
0
128
0

Installer & Télécharger

1. ClawHub CLI

Le moyen le plus rapide d'installer une compétence directement depuis le registre.

npx clawhub@latest install sql-optimizer

2. Installation manuelle

Copiez le dossier de la compétence dans l'un de ces emplacements

Global
~/.openclaw/skills/
Espace de travail
<project>/skills/

Priorité : Espace de travail > Local > Intégré

3. Installation du prompt

Copiez ce prompt dans OpenClaw pour l'installer automatiquement.

Aide-moi à installer sql-optimizer via Clawhub. Si Clawhub n'est pas installé, installe-le d'abord (npm i -g clawhub).

Vous préférez télécharger ?

Obtenez les fichiers bruts de la compétence dans une archive ZIP.

Qu'est-ce que SQL Optimizer ?

SQL Optimizer est une fonctionnalité d'Openclaw Skills permettant de traduire des questions métier en SQL prêt pour la production et d'améliorer systématiquement les requêtes existantes. Il clarifie le résultat attendu, les filtres, le regroupement, le tri, la pagination, les besoins de déduplication, le dialecte de base de données, le schéma, les index et le volume de données avant de générer une solution.

La compétence va au-delà de la réécriture de syntaxe : elle évalue l'utilisation des index, l'ordre des jointures, les fonctions sur les colonnes indexées, les conversions de types implicites, les recherches par caractères génériques (wildcards), la stratégie de pagination et les plans d'exécution. Elle explique également la raison, le bénéfice attendu, l'applicabilité et les compromis de chaque recommandation, tout en ajoutant des gardes-fous de restauration (rollback) et de prévisualisation pour les opérations UPDATE, DELETE et DDL.

Cas d'utilisation de SQL Optimizer

  • Rédiger du SQL de reporting, d'analyse et de récupération de données à partir d'un besoin métier en langage naturel.
  • Diagnostiquer et optimiser une requête lente à l'aide des informations de schéma, d'index, de nombre de lignes et de plan d'exécution.
  • Générer du SQL adapté au dialecte pour MySQL, PostgreSQL, Oracle, SQL Server, Hive ou ClickHouse.
  • Concevoir des index composites et expliquer l'ordre des colonnes recommandé.
  • Réécrire des filtres de date non indexables (non-sargable), des prédicats encapsulés dans des fonctions, des conversions implicites et des jointures inefficaces.
  • Remplacer une pagination OFFSET profonde par une pagination par clés (keyset pagination) le cas échéant.
  • Comparer des alternatives telles que IN versus EXISTS ou OR versus UNION ALL.
  • Examiner en toute sécurité les instructions UPDATE, DELETE et DDL avant l'exécution.

Comment fonctionne SQL Optimizer

  1. Clarifier le besoin : Identifiez le résultat souhaité, les filtres, les dimensions de regroupement, le tri, la pagination, les règles de déduplication et déterminez si la requête est en lecture seule ou modifie des données.
  2. Confirmer l'environnement : Déterminez le dialecte et la version de la base de données, les définitions de tables et de colonnes, les types de données, les index existants, le volume de données approximatif et si la séparation lecture/écriture est utilisée.
  3. Énoncer les hypothèses : Si des détails du schéma manquent, créez un modèle provisoire raisonnable et listez explicitement les hypothèses pour confirmation par l'utilisateur plutôt que d'inventer des champs non divulgués.
  4. Écrire le SQL : Donnez la priorité à l'exactitude et à la lisibilité. Utilisez des CTE pour exprimer une logique complexe en étapes claires plutôt que de produire des requêtes profondément imbriquées.
  5. Exécuter la liste de contrôle d'optimisation : Examinez la projection SELECT, les fonctions sur colonnes indexées, les conversions implicites, les motifs de jokers, les préfixes d'index composites, le filtrage des jointures, les tables motrices (driving tables), la pagination et les choix IN/EXISTS.
  6. Recommander des index et des réécritures : Pour chaque recommandation, expliquez ce qui change, pourquoi elle peut être plus rapide, quand elle s'applique et quels effets secondaires ou coûts de maintenance prendre en compte.
  7. Définir la vérification : Utilisez EXPLAIN ou EXPLAIN ANALYZE pour valider les chemins d'accès, les lignes estimées, la sélection des index, le tri, les tables temporaires et les scans complets (full scans).
  8. Ajouter des contrôles de sécurité : Pour les écritures, fournissez un aperçu SELECT, exigez une clause WHERE, recommandez des transactions ou des sauvegardes, et identifiez les risques de restauration ou de verrouillage avant l'exécution.

Configuration de SQL Optimizer

Aucune installation de package externe n'est requise ; SQL Optimizer est une capacité Openclaw Skills créée par un agent. Fournissez le contexte suivant dans la requête pour obtenir le résultat le plus fiable :

  1. Identifiez le dialecte et la version de la base de données cible.
  2. Incluez le besoin métier ou la requête SQL actuelle.
  3. Fournissez les noms de tables, les colonnes, les types de données, les relations, les index existants et le nombre approximatif de lignes.
  4. Incluez un plan d'exécution lors du diagnostic d'une requête lente.
  5. Déclarez la pagination, la cohérence, la séparation lecture/écriture et les exigences de sécurité de production.

Exemple de requête :

cat <<'REQUEST'
Database: PostgreSQL 16
Goal: List the 20 most recent paid orders for a customer.
Tables: orders(id bigint, customer_id bigint, status text, created_at timestamp)
Indexes: orders_customer_id_status_created_at_idx(customer_id, status, created_at)
Please write the query, review index usage, and explain how to validate it.
REQUEST

Pour la validation, exécutez la requête générée dans un environnement sécurisé avec la commande de plan native de la base de données cible :

# PostgreSQL
EXPLAIN (ANALYZE, BUFFERS) <query>;

# MySQL
EXPLAIN ANALYZE <query>;

N'appliquez jamais d'instructions UPDATE, DELETE ou DDL générées directement en production sans prévisualiser les lignes affectées, vérifier le plan d'exécution, utiliser une transaction ou une sauvegarde appropriée, et examiner le comportement de verrouillage et de restauration.

Schéma de données et taxonomie de SQL Optimizer

SQL Optimizer organise son analyse autour du modèle de données logique suivant :

Section Contenu
Résumé du besoin Sortie souhaitée, règles métier, filtres, regroupement, tri, pagination et exigences de déduplication
Hypothèses Détails de schéma manquants, relations inférées, noms de champs attendus et hypothèses nécessitant une confirmation
Contexte de la base de données Dialecte, version, caractéristiques de stockage ou d'exécution, séparation lecture/écriture et contraintes de compatibilité
Tables et champs Noms de tables, noms de colonnes, types de données, relations et informations de cardinalité pertinentes
Index existants Colonnes d'index, ordre, considérations de sélectivité et utilisabilité d'un préfixe composite le plus à gauche
SQL recommandé Une instruction complète, lisible et spécifique au dialecte avec des commentaires si utile
Points d'optimisation Chaque réécriture avec sa logique, son bénéfice attendu, son applicabilité et ses effets secondaires
Recommandations d'index Instructions CREATE INDEX candidates avec justification de l'ordre des colonnes et implications de maintenance
Plan de vérification Attentes d'EXPLAIN ou EXPLAIN ANALYZE, y compris le type d'accès, la clé, les lignes, le tri de fichiers (filesort) et les indicateurs de table temporaire
Guide de sécurité Aperçus SELECT, exigences WHERE, transactions, sauvegardes, LIMIT, verrouillage et considérations de restauration

La compétence ne nécessite ni ne implique de fichiers générés, de migrations, de connexions de base de données ou de stockage persistant. Sa sortie principale est une réponse structurée contenant du SQL, des hypothèses, des recommandations et des étapes de validation.

Fonctionnalités avancées de SQL Optimizer

  • Prend en charge plusieurs dialectes SQL, notamment MySQL, PostgreSQL, Oracle, SQL Server, Hive et ClickHouse, avec une pagination, des fonctions de date, des opérations sur les chaînes et une syntaxe spécifiques au dialecte.
  • Utilise des CTE pour rendre la logique des requêtes complexes modulaire, lisible et plus facile à examiner.
  • Détecte les problèmes de performance courants tels que SELECT *, les fonctions sur colonnes indexées, la conversion de types implicite, les recherches par caractères génériques en tête, un ordre d'index composite médiocre et les jointures non filtrées.
  • Recommande une pagination par clés (keyset pagination) utilisant l'ID maximum d'une page précédente plutôt que des scans OFFSET profonds et coûteux.
  • Évalue quand OR peut être divisé en UNION ALL et quand EXISTS peut être préférable à IN, tout en notant que la distribution réelle des données détermine le meilleur choix.
  • Encourage la descente de prédicats (predicate pushdown) avant les jointures et la sélection d'une table motrice plus petite pour les jointures de grandes tables.
  • Utilise des diagnostics orientés EXPLAIN, incluant le type d'accès, l'index sélectionné, les lignes estimées, le tri de fichiers et les avertissements de tables temporaires.
  • Fournit des définitions d'index avec une explication de l'ordre des colonnes, de la sélectivité, du comportement du préfixe à gauche et des compromis de maintenance en écriture.
  • Ajoute des guides de sécurité de production pour UPDATE, DELETE et DDL, incluant des aperçus SELECT, des clauses WHERE obligatoires, des transactions, des sauvegardes, des tests basés sur LIMIT et la planification de la restauration.
  • Suit un processus d'auto-vérification pour confirmer la compatibilité des dialectes, la cohérence des schémas, la couverture des optimisations et les risques clairement documentés au sein d'Openclaw Skills.

SKILL.md


Chargement

Compétences Openclaw associées

METADATA

Github Stars: 0
forks: 0

En vedette*