Maison >base de données >tutoriel mysql >Pourquoi ma requête Oracle 11g ne se parallélise-t-elle pas ?

Pourquoi ma requête Oracle 11g ne se parallélise-t-elle pas ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 06:01:101010parcourir

Why Doesn't My Oracle 11g Query Parallelize?

Pourquoi Oracle 11g ne force pas la parallélisation pour les requêtes SQL uniques

Comprendre les complexités du parallélisme Oracle est crucial. Pour optimiser efficacement le parallélisme, cela nécessite une compréhension approfondie d'Oracle, un examen méticuleux des paramètres, des tests de requêtes prolongées et une bonne dose de scepticisme.

Détermination de l'exécution parallèle

Lors du dépannage des problèmes de parallélisme, trois des questions clés se posent :

  1. Combien de serveurs parallèles ont été demandés ?
  2. Combien de serveurs parallèles ont été demandés ?
  3. Combien des serveurs parallèles ont été alloués ?
Combien de serveurs parallèles ont été utilisés efficacement ?

Utilisation de SQL Monitoring

SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(SQL_ID => 'YOUR_SQL_ID', TYPE => 'ACTIVE') FROM DUAL;
Pour répondre efficacement à ces questions, utilisez SQL Monitoring avec des rapports actifs. Utilisez la requête suivante pour générer un rapport HTML :

Ce rapport fournit des informations détaillées sur le temps consacré à chaque étape du plan d'exécution, y compris l'étendue du parallélisme utilisé.

Évaluer le résultat du plan Explain

Le résultat EXPLAIN PLAN fournit également des informations précieuses. La section Notes peut révéler pourquoi la requête n'a pas demandé de parallélisme. Recherchez les notes indiquant les limitations ou les astuces qui pourraient entraver la parallélisation.

Comprendre les facteurs influençant l'allocation des serveurs parallèles

    Le nombre de serveurs parallèles alloués est influencé par une myriade de facteurs, les plus importants étant :
  • Indice de requête :
  • Utilisez /* PARALLEL */ ou /* PARALLEL(DOP) */ astuces pour forcer le parallélisme.
  • Parallélisme inter-opérations :
  • Les opérations de tri ou de regroupement peuvent doubler le nombre de serveurs parallèles alloués.
  • SQL récursif :
  • Les opérations SQL récursives peuvent sérialiser l'exécution parallèle.
  • Table et index degré :
Des valeurs de degré plus élevées peuvent augmenter le parallélisme.

Autres paramètres de configuration pertinents

    Au-delà des conseils et de l'analyse du plan d'exécution, tenez compte de ces paramètres système qui peuvent avoir un impact sur le parallélisme :
  • PARALLEL_DEGREE_LIMIT et PARALLEL_DEGREE_POLICY définissent les limites et les politiques pour les diplômes parallèles allocation.
  • PARALLEL_AUTOMATIC_TUNING ajuste automatiquement le parallélisme en fonction de la charge du système.
PARALLEL_THREADS_PER_CPU et CPU_COUNT influencent le nombre de serveurs parallèles alloués par CPU.

Conclusion

Le parallélisme Oracle est un outil puissant, mais son optimisation nécessite une prise en compte attentive de nombreux facteurs et une compréhension approfondie du moteur d'exécution d'Oracle. En tirant parti des outils disponibles, en examinant les paramètres du système et en résolvant des problèmes spécifiques de plan d'exécution, vous pouvez utiliser efficacement le parallélisme dans Oracle 11g pour améliorer les performances des requêtes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn