Allocation de ressources garantie (GRA)

Vous pouvez utiliser des règles d'ordonnancement ou des affectations de groupes de ressources pour classer les plans en différents groupes, puis utiliser l'allocation de ressources garantie (GRA) pour faire en sorte que chaque groupe reçoive une part différente des ressources du système.

Les ressources système nettes sont les ressources système disponibles pour traiter les travaux des utilisateurs (y compris les administrateurs), c'est-à-dire les ressources système totales moins les ressources nécessaires pour traiter les travaux système spéciaux et prioritaires.

Un groupe de ressources est un groupe de Netezza Performance Server dont les paramètres de ressources (c'est-à-dire son minimum de ressources, son maximum de ressources et son maximum de tâches) déterminent quelle portion des ressources du système net doit être allouée aux plans associés à ce groupe. Par exemple, vous pouvez créer trois groupes de ressources différents pour les plans des analystes de données, des utilisateurs qui produisent des rapports de requête et de tous les autres utilisateurs, puis faire en sorte que chacun de ces groupes reçoive une fraction différente des ressources nettes du système.

Chaque système Netezza Performance Server possède au moins un groupe de ressources. Ce groupe porte le nom de Public et ne peut pas être supprimé. Lors de la création d'un utilisateur, si celui-ci n'est pas explicitement affecté à un groupe de ressources, il est affecté par défaut au groupe Public. Vous pouvez modifier l'affectation d'un utilisateur à un groupe de ressources.

Chaque plan traité par un système Netezza Performance Server est associé à un seul groupe de ressources. Si aucun autre groupe de ressources n'est créé pour un système, tous les plans sont associés au groupe Public. Toutefois, vous pouvez créer des groupes de ressources supplémentaires et associer des plans à ces groupes sur la base de n'importe quelle combinaison des critères suivants :
Quel utilisateur a soumis le travail correspondant
Chaque utilisateur est affecté à un seul groupe de ressources. Chaque fois qu'un utilisateur soumet un travail, les plans de ce travail sont automatiquement associés au groupe de ressources de l'utilisateur.
Vous pouvez utiliser les règles du planificateur pour remplacer l'association de groupes de ressources d'un plan en fonction de l'utilisateur qui le soumet. Par exemple, la règle d'ordonnancement suivante associe tous les plans des travaux soumis par l'utilisateur bob au groupe de ressources rsg42, quel que soit le groupe de ressources auquel bob est affecté :
IF USER IS bob THEN EXECUTE AS RESOURCEGROUP rsg42
Le contenu des champs d'information du client
Un administrateur ou un programme d'application peut définir les champs d'information client suivants dans une requête :
ID utilisateur
L'identifiant de l'utilisateur sous lequel le client s'exécute.
Nom de l'application
Le nom du client.
Nom du poste de travail
Le nom d'hôte du poste de travail sur lequel le client s'exécute.
Identifiant comptable
La valeur de la chaîne de comptabilité des informations client spécifiées pour la session.
Vous pouvez utiliser les règles du planificateur pour associer les plans à différents groupes de ressources en fonction du contenu de ces champs (voir Informations sur le client). Par exemple, la règle d'ordonnancement suivante associe tous les plans des travaux soumis par l'application Cognos au groupe de ressources rsg12::
IF CLIENT_APPLICATION_NAME IS Cognos THEN EXECUTE AS RESOURCEGROUP rsg12
Estimation des coûts
Pour chaque plan, l'optimiseur calcule le coût attendu du traitement de ce plan. Vous pouvez utiliser des règles de planification pour associer des plans à différents groupes de ressources sur la base de leurs estimations de coûts calculées. Par exemple, les règles d'ordonnancement suivantes associent des plans aux groupes de ressources portant les noms "court", "moyen" et "long" sur la base des estimations de coûts des plans :
IF ESTIMATE < 4 THEN EXECUTE AS RESOURCEGROUP short
IF ESTIMATE >= 4 ESTIMATE < 30 THEN EXECUTE AS RESOURCEGROUP medium
IF ESTIMATE >= 30 THEN EXECUTE AS RESOURCEGROUP long
La base de données à laquelle il faut accéder
Vous pouvez utiliser les règles du planificateur pour associer les plans à différents groupes de ressources en fonction des bases de données auxquelles les plans accèdent. Si des locataires différents accèdent exclusivement à des bases de données différentes, vous pouvez utiliser cette fonction pour gérer l'allocation des ressources en fonction des locataires. Par exemple, les règles d'ordonnancement suivantes associent des plans à différents groupes de ressources en fonction de la base de données à laquelle ils accèdent :
IF DATABASE IS dbx1 THEN EXECUTE AS RESOURCEGROUP x1
IF DATABASE IS dbx2 THEN EXECUTE AS RESOURCEGROUP x2
Le tableau auquel il faut accéder
Vous pouvez utiliser des règles d'ordonnancement pour associer des plans à différents groupes de ressources en fonction des tables auxquelles les plans accèdent. De cette manière, un administrateur de base de données peut influencer l'allocation des ressources aux applications sans modifier les applications elles-mêmes. Par exemple, la règle d'ordonnancement suivante associe un plan au groupe de ressources x2 s'il accède à la table tab1 ou tab2::
IF TABLE IN (tab1,tab2) THEN EXECUTE AS RESOURCEGROUP x2
Balises personnalisées
Vous pouvez ajouter un nombre illimité de balises aux sessions (voir Balises). Tous les plans entrant dans le cadre de cette session reçoivent la même étiquette. Vous pouvez également créer des règles d'ordonnancement qui ajoutent des balises directement à tous les plans qui remplissent les conditions spécifiées par la règle. Vous pouvez ensuite utiliser les règles du planificateur pour associer les plans à différents groupes de ressources en fonction de ces balises. Par exemple, la règle d'ordonnancement suivante associe un plan à un groupe de ressources selon qu'une ou plusieurs des balises spécifiées ont été définies pour le plan ou sa session :
IF TAG IN (eod,eom,eoy) THEN EXECUTE AS RESOURCEGROUP endjobs