Tester et optimiser votre schéma et les performances de votre application
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'optimisation des performances est un processus itératif dans lequel vous évaluez des métriques telles que l'utilisation du processeur et la latence, ajustez votre schéma et votre application pour améliorer les performances, puis effectuez un nouveau test.
Par exemple, dans votre schéma, vous pouvez ajouter ou modifier un index, ou modifier une clé primaire. Dans votre application, vous pouvez regrouper les écritures par lots, ou fusionner ou modifier vos requêtes.
Pour le trafic de production en particulier, le réglage des performances est important pour éviter les surprises. L'ajustement des performances est d'autant plus efficace que la configuration est proche du débit et de la taille des données du trafic de production en direct.
Pour tester et ajuster les performances de votre schéma et de votre application, procédez comme suit :
Vérifiez la cohérence de la base de données en recherchant les flux de base.
Vérifiez que les performances répondent à vos attentes en effectuant des tests de charge sur votre application. Pour obtenir de l'aide afin d'identifier et d'optimiser vos requêtes les plus coûteuses, consultez Détecter les problèmes de performances des requêtes avec Query Insights.
Les facteurs suivants peuvent notamment contribuer à des performances de requête non optimales :
Requêtes inefficaces : pour savoir comment écrire des requêtes SQL efficaces, consultez les bonnes pratiques SQL.
Conception de schéma inefficace : si le schéma n'est pas bien conçu, l'optimisation des requêtes n'est pas très utile. Pour en savoir plus sur la conception de bons schémas, consultez Bonnes pratiques liées à la conception de schémas.
Points chauds : les points chauds dans Spanner limitent le débit d'écriture, en particulier pour les applications à RPS élevé. Pour identifier les points chauds ou les problèmes de conception de schéma, consultez les statistiques de Key Visualizer dans la console Google Cloud . Pour en savoir plus sur la façon d'éviter les hotspots, consultez Choisir une clé primaire en évitant de créer des hotspots.
Si vous modifiez le schéma ou les index, répétez les tests de cohérence et de performances de la base de données jusqu'à obtenir des résultats satisfaisants.
Pour en savoir plus sur l'optimisation des performances de votre base de données, contactez l'assistance Spanner.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/05 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/05 (UTC)."],[],[],null,["# Test and tune your schema and application performance\n\nPerformance tuning is an iterative process in which you evaluate metrics like\nCPU utilization and latency, adjust your schema\nand application to improve performance, and test again.\n\nFor example, in your schema, you might add or change an index, or change a\nprimary key. In your application, you might batch writes, or you might merge or\nmodify your queries.\n\nFor production traffic in particular, performance tuning is important to help\navoid surprises. Performance tuning is more effective the closer the setup is to\nlive production traffic throughput and data sizes.\n\nTo test and tune your schema and application performance, follow these steps:\n\n1. Upload a subset of your data into a Spanner database. You can use the [BigQuery reverse ETL workflow](/bigquery/docs/export-to-spanner) to load the sample data. For more information, see [Load sample data](/spanner/docs/load-sample-data).\n2. Point the application to Spanner.\n3. Verify the database consistency by checking for basic flows.\n4. Verify that performance meets your expectations by performing load tests on your application. For help identifying and optimizing your most expensive queries, see [Detect query performance issues with query insights](/spanner/docs/using-query-insights). In particular, the following factors can contribute to suboptimal query performance:\n 1. **Inefficient queries** : For information about writing efficient SQL queries, see [SQL best practices](/spanner/docs/sql-best-practices).\n 2. **High CPU utilization** : For more information, see [Investigate high CPU utilization](/spanner/docs/introspection/investigate-cpu-utilization).\n 3. **Locking** : To reduce bottlenecks caused by transaction locking, see [Identify transactions that might cause high latencies](/spanner/docs/use-lock-and-transaction-insights).\n 4. **Inefficient schema design** : If the schema isn't designed well, query optimization isn't very useful. For more information about designing good schemas, see [Schema design best practices](/spanner/docs/schema-design).\n 5. **Hotspots** : Hotspots in Spanner limit write throughput, especially for high-QPS applications. To identify hotspots or schema design issues, check the [Key\n Visualizer](/spanner/docs/key-visualizer) statistics from the Google Cloud console. For more information about avoiding hotspots, see [Choose a primary key to prevent hotspots](/spanner/docs/schema-design#primary-key-prevent-hotspots).\n5. If you modify schema or indexes, repeat database consistency and performance testing until you achieve satisfactory results.\n\nFor more information about fine-tuning your database performance, contact\n[Spanner support](/spanner/docs/getting-support)."]]