sélectionner /*+ parallèle (5) */
Il semble que le nombre impair pour le degré de parallélisme. Eh bien, 5 est évidemment un nombre impair, et c'est étrange. Les DoP devraient être un multiple de deux (voir ci-dessous pour plus d'informations).
Quoi qu'il en soit, avez-vous une raison d'utiliser une requête parallèle ? Avez-vous au moins cinq processeurs de rechange ? Sinon, il y a de fortes chances que les frais généraux de gestion des esclaves PQ contribuent au moins à la mauvaise performance.
Pourquoi DOP = n*2 ? Il existe une heuristique établie basée sur la théorie des files d'attente selon laquelle l'exécution de plus de deux tâches en lot simultanément entraîne une dégradation des performances. En savoir plus. (Je pense que la théorie des files d'attente recommande en réalité un chiffre de 1,8, mais comme les tâches de base de données sont souvent limitées par l'E/S ou le disque, nous pouvons généralement opter pour 2.)
J'ai dit à l'origine "puissance de 2", mais c'est principalement parce que les serveurs multicœurs ont tendance à avoir un certain nombre de processeurs qui est une puissance de 2, mais un multiple de 2 est plus précis, car certaines boîtes ont 12 processeurs ou un autre nombre.
Alors, si nous avons une boîte à 64 cœurs, un DOP de 5 ou 37 convient, car nous avons suffisamment de processeurs pour exécuter autant de threads simultanément. Mais si nous avons une petite boîte quadricœur, seuls 2, 4 ou 8 ont du sens, car ce sont les seules valeurs qui garantiront une distribution uniforme du travail sur les quatre processeurs. Exécuter cinq threads sur une boîte quadricœur signifie qu'un processeur fera beaucoup plus de travail que les trois autres; il est possible qu'il mette plus de temps à terminer, laissant les trois autres esclaves en attente. Ainsi, DOP=5
peut en réalité entraîner un temps écoulé plus long que DOP=4
.
DOP=n*2
n'est qu'une règle empirique, et non gravée dans le marbre. Cependant, elle repose sur un raisonnement solide, et nous devrions savoir pourquoi nous faisons quelque chose de différent. De toute évidence, nous devrions avoir mené des expériences pour confirmer que nous avons choisi le bon DOP (quelle que soit la valeur sur laquelle nous nous arrêtons).