Lorsque vous utilisez Data Gateway ou Remote Data Connector avec Oracle Analytics Cloud, un léger temps système s'ajoute à la durée de chaque exécution de requête.
Vous ne vous rendrez pas compte de cette durée supplémentaire lorsque vous exécuterez un rapport car elle est inférieure à 0,3 seconde. En revanche, vous pouvez rencontrer des problèmes de performances si vous exécutez de nombreux blocs d'initialisation (le nombre dépend de vos exigences de performances) dès qu'un utilisateur se connecte car les requêtes de bloc d'initialisation sont exécutées en série. L'utilisation de l'option de différé pour les blocs d'initialisation ne règle pas le problème car ceux-ci sont exécutés lorsque vous ouvrez la première page de tableau de bord.
Le problème se pose lorsque vous utilisez les applications Oracle BI Applications car elles exécutent plus de 200 blocs d'initialisation. Pour Oracle Analytics Cloud, le meilleur moyen d'éviter ces problèmes de performances est de réduire le nombre de blocs d'initialisation.
Nos recommandations sur la façon de réduire le nombre de blocs d'initialisation de session sont les suivantes :
Par exemple, dans Oracle BI Applications, désactivez les blocs d'initialisation qui font référence à des modules Oracle BI Applications que vous n'utilisez plus.
row_wise
qui utilisent le même pool de connexions et renvoient le même type de données en plaçant UNION ALL
entre les requêtes correspondantes.
Par exemple :
Init block 1: query1 Init block 2: query2 Merged init block: query1 union all query2
dual
ou W_DUAL_G
, et placez la valeur codée en dur dans l'initialiseur par défaut de la variable correspondante.select
.HR xxx Attribute yyy
row_wise
et qui utilisent le même pool de connexions. Par exemple :
Le bloc d'initialisation 1 est basé sur query1 : select colA from tableA where…
.
Le bloc d'initialisation 2 est basé sur query2 : select colB from tableB where…
.
Vous pouvez les fusionner dans un seul bloc d'initialisation à l'aide d'une requête telle que la suivante :
Select MAX(colA), MAX(colB) from ( select cola as cola, null as colB from tableA where…. Union all Select null, colB from tableB where…) tmp
Vous pouvez exécuter autant d'unions que nécessaire pour extraire toutes les variables d'un même pool de connexions dans une seule requête.
L'implémentation ou la maintenance de ce processus n'est pas simple. Vous risquez de commettre des erreurs en créant les requêtes et en affectant toutes les variables à un bloc d'initialisation unique. Si vous procédez à l'implémentation et à la maintenance des variables et requêtes de bloc d'initialisation avec attention, vous pouvez réduire significativement le temps nécessaire à la connexion et à l'affichage de la première page de tableau de bord.