database-performance

Detect N+1 query patterns in Canvas plugin Django ORM code.

2|1|Updated Nov 27, 2025
One-click install
npx skills add https://github.com/canvas-medical/coding-agents --skill database-performance-canvas-medical
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: database-performance
Source: https://github.com/canvas-medical/coding-agents/tree/main/canvas-plugin-assistant/skills/database-performance
Command: npx skills add https://github.com/canvas-medical/coding-agents --skill database-performance-canvas-medical

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill provides guidance to identify and mitigate expensive database access patterns in Canvas plugins by focusing on N+1 query issues and related data loading optimizations.

Core Features & Use Cases

  • N+1 query detection guidance using Django ORM patterns (select_related, prefetch_related)
  • Common Canvas SDK data model patterns and loading optimizations
  • Practical use cases and pre-deployment checklists for performance auditing

Quick Start

Run the performance review checklist during code reviews to identify N+1 patterns and apply select_related and prefetch_related where appropriate.

Frequently Asked Questions about database-performance

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix N+1 query patterns in Django ORM Canvas plugins?

To fix N+1 query patterns in Django ORM Canvas plugins, apply select_related for foreign keys and prefetch_related for reverse relations to optimize data access in plugin handlers during code reviews.

What is the difference between select_related and prefetch_related for query profiling?

Query profiling optimizations use select_related for foreign key relations via SQL joins, while prefetch_related handles reverse relations with separate queries to mitigate N+1 patterns in Canvas plugin data loading.

How do I run a pre-deployment performance audit for Canvas SDK data access?

Run a pre-deployment performance audit checklist during code reviews to identify N+1 patterns in Canvas SDK data models, applying select_related and prefetch_related where appropriate to guide optimization decisions.

Does this performance optimization skill work with standard Django ORM models?

Yes, this performance optimization skill works with standard Django ORM patterns in Canvas plugins, enforcing best practices for select_related and prefetch_related using reference guidance from performance_context.txt.

What is the best way to eliminate N+1 queries in Canvas plugin handlers?

The best way to eliminate N+1 queries in Canvas plugin handlers is profiling data access and using Django ORM methods like select_related for foreign keys and prefetch_related for reverse relations.

When should I not use select_related to optimize Django ORM queries?

You should not use select_related for reverse relations or many-to-many fields; use prefetch_related instead to execute separate queries and avoid expensive database joins in Canvas plugin performance auditing.