Variables de performance
Vous pouvez définir des variables de performances pour améliorer les processus de base de données, tels que les optimisations de plan d'accès, les opérations d'optimisation de la mémoire et les règles de ressources d'exploitation.
- DB2_ALLOCATION_SIZE
- Systèmes d'exploitation : tous
- Default=128 Ko, Plage : 64 Ko - 256 Mo
- Indique la taille des allocations de mémoire pour les pools de mémoire tampon.
L'avantage potentiel de définir une valeur plus élevée pour cette variable de registre est le moins d'allocations nécessaires pour atteindre une quantité de mémoire souhaitée pour un pool de mémoire tampon.
Le coût potentiel de la définition d'une valeur supérieure pour cette variable de registre est une perte de mémoire si le pool de mémoire tampon est modifié par un non-multiple de la taille d'allocation. Par exemple, si la valeur de DB2_ALLOCATION_SIZE est 8 Mo et si un pool de mémoire tampon est réduit de 4 Mo, cette valeur de 4 Mo sera gaspillée, car un segment de 8 Mo entier ne peut pas être libéré.
Remarque: DB2_ALLOCATION_SIZE est obsolète et peut être supprimé dans une édition ultérieure.
- DB2_APM_PERFORMANCE
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON ou OFF
- Définissez cette variable sur ON pour activer les modifications liées aux performances dans le gestionnaire de plan d'accès (APM) qui affectent le comportement du cache de requête (cache de package). Ces paramètres ne sont généralement pas recommandés pour les systèmes de production. Ils introduent certaines limitations, telles que la possibilité d'erreurs de cache hors package ou l'augmentation de l'utilisation de la mémoire, ou les deux.
Si vous affectez à DB2_APM_PERFORMANCE la valeur ON, vous activez également le mode NO PACKAGE LOCK. Ce mode permet à la mémoire cache de requêtes globale de fonctionner sans l'utilisation de verrous de package, qui sont des verrous internes du système qui protègent les entrées de package mises en cache d'être supprimées. Le mode NO PACKAGE LOCK peut entraîner une amélioration des performances, mais certaines opérations de base de données ne sont pas autorisées. Ces opérations interdites peuvent inclure des opérations qui invalident des packages, des opérations qui font cesser de fonctionner des packages, et PRECOMPILE, BIND et REBIND.
- DB2ASSUMEUPDATE
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON ou OFF
- Lorsqu'elle est activée, cette variable permet au système de base de données Db2® de supposer que toutes les colonnes de longueur fixe fournies dans une instruction UPDATE sont en cours de modification. Cela élimine la nécessité pour le système de base de données Db2 de comparer les valeurs de colonne existantes aux nouvelles valeurs afin de déterminer si la colonne est réellement modifiée. L'utilisation de cette variable de registre peut entraîner des opérations de consignation et d'index supplémentaires lorsque des colonnes sont fournies pour la mise à jour (par exemple, dans une clause SET) mais qu'elles ne sont pas en cours de modification.
L'activation de la variable de registre DB2ASSUMEUPDATE est effective sur la commande db2start .
- DB2_AVOID_LOCK_ESCALATION
- Systèmes d'exploitation : tous
- Default=OFF (ON lorsque DB2_WORKLOAD=SAP), valeurs : ON ou OFF
- Lorsque la variable de registre DB2_AVOID_LOCK_ESCALATION est activée, l'escalade des verrous ne sera pas effectuée. Au lieu de cela, SQL0912N est renvoyé à l'application qui a demandé le verrou qui entraînerait normalement une escalade de verrous. L'application peut être COMMIT ou ROLLBACK, ce qui libère les verrous détenus par cette application. Cette variable peut être mise à jour en ligne sans redémarrer l'instance.
- Cette variable est disponible dans la version 11.1.2.2 et les versions ultérieures.
- Les modifications apportées à cette variable n'exigent pas un redémarrage de l'instance de base de données.
- DB2_AVOID_PREFETCH
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON ou OFF
- Indique si la préextraction doit être utilisée lors de la reprise sur incident. Si DB2_AVOID_PREFETCH =ON, la préextraction n'est pas utilisée.
- DB2_BACKUP_USE_DIO
- Systèmes d'exploitation : tous
- Valeur par défaut : OFF, valeurs : ON ou OFF
Indique si les images de sauvegarde et de copie de chargement sont mises en cache par le système d'exploitation. Le comportement par défaut consiste à mettre en cache le fichier image. Lorsque DB2_BACKUP_USE_DIO a la valeur ON, le fichier image de sauvegarde ou de copie de chargement est directement écrit sur le disque, en contournant le cache de fichiers.
Si vous affectez à cette variable la valeur ON, le système d'exploitation peut mieux utiliser les ressources de mémoire, car la mise en cache du fichier image de sauvegarde ou de copie de chargement n'offre aucun avantage. Cet impact sur les performances aura le plus grand avantage pour les plateformes Linux® . Toutefois, il peut exister un léger ralentissement de la sauvegarde ou de la charge elle-même. Par conséquent, vous devez mesurer la modification de la sauvegarde ou du chargement lorsque DB2_BACKUP_USE_DIO a la valeur ON.Remarque: La modification de la valeur de cette variable de registre n'affecte pas le comportement de la sauvegarde ou de la charge déjà en cours d'exécution. La modification de la valeur prend effet lorsque la sauvegarde ou le chargement suivant est exécuté et qu'il n'est pas nécessaire de redémarrer l'instance.
- DB2BPVARS
- Système d'exploitation : Comme indiqué pour chaque paramètre
- Valeur par défaut=Chemin
- Deux ensembles de paramètres sont disponibles pour optimiser les pools de mémoire tampon. Un ensemble de paramètres, disponible uniquement sous Windows, spécifie que les pools de mémoire tampon doivent utiliser la lecture par dispersion pour des types de conteneurs spécifiques. L'autre ensemble de paramètres, disponible sur toutes les plateformes, affecte le comportement de lecture anticipée.Important: Cette variable de performance est obsolète et pourra être supprimée dans une édition ultérieure. Pour plus d'informations, voir Certaines variables de registre et d'environnement ont été modifiées.Les paramètres sont spécifiés dans un fichier ASCII, un paramètre sur chaque ligne, sous la forme
parameter=value. Par exemple, un fichier nommé bpvars.vars peut contenir la ligne suivante :
En supposant que bpvars.vars est stocké dans F:\vars\, pour définir ces variables, vous exécutez la commande suivante :NO_NT_SCATTER = 1db2set DB2BPVARS=F:\vars\bpvars.varsParamètres Scatter-read
Les paramètres de lecture dispersée sont recommandés pour les systèmes avec une grande quantité de lecture anticipée séquentielle par rapport au type de conteneur respectif et pour lesquels vous avez déjà affecté à DB2NTNOCACHE la valeur ON. Ces paramètres, disponibles uniquement sur les plateformes Windows, sont NT_SCATTER_DMSFILE, NT_SCATTER_DMSDEVICEet NT_SCATTER_SMS. Spécifiez le paramètre NO_NT_SCATTER pour autoriser explicitement la lecture dispersée pour n'importe quel conteneur. Des paramètres spécifiques sont utilisés pour activer la lecture dispersée pour tous les conteneurs du type indiqué. Pour chacun de ces paramètres, la valeur par défaut est zero (ou OFF) et les valeurs possibles sont les suivantes : zero (ou OFF) et 1 (ou ON).
Remarque: Vous pouvez activer la lecture en nuage de points uniquement si DB2NTNOCACHE est défini sur ON pour désactiver la mise en cache des fichiers Windows. Si DB2NTNOCACHE a la valeur OFF ou n'est pas défini, un message d'avertissement est consigné dans le journal de notification de l'administration si vous tentez d'activer la lecture dispersée pour n'importe quel conteneur et que la lecture de diffusion reste désactivée.
- DB2CHKPTR
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON ou OFF
- Indique si la vérification du pointeur de l'entrée est requise ou non.
- DB2CHKSQLDA
- Systèmes d'exploitation : tous
- Default=ON, valeurs : ON ou OFF
- Indique si la vérification SQLDA pour l'entrée est requise ou non.
- DB2_DEFER_MEMORY_COMMIT
- Système d'exploitation : Unix, Linux
- Default=OFF, valeurs : OFF ou ON
- Lorsque cette variable est ON, l'initialisation du pool de mémoire tampon et de la mémoire de liste de verrous est effectuée de manière asynchrone en arrière-plan. Cette initialisation asynchrone permet à l'activation de la base de données de se terminer et la base de données à être disponible pour les connexions d'application plus tôt. Pendant le court laps de temps après l'activation de la base de données pendant l'initialisation de cette mémoire, les activités de la base de données peuvent observer un impact sur les performances de petite taille.
- Cette variable ne s'applique pas au système d'exploitation Windows, car le comportement existant est déjà similaire à la valeur ON.
- Les modifications apportées à cette variable requièrent le redémarrage de l'instance de base de données avant de prendre effet.
- Cette variable est disponible dans Db2 11.1 MP4 FP6 et versions ultérieures.
- DB2_EVALUNCOMMITTED
- Systèmes d'exploitation : tous
- Valeur par défaut : NO (YES lorsque DB2_WORKLOAD=SAP), valeurs : YESI, NO
- Lorsqu'elle est activée, cette variable permet, dans la mesure du possible, d'effectuer des analyses pour différer ou éviter le verrouillage des lignes jusqu'à ce que les données soient connues pour répondre à l'évaluation de prédicat. Cette variable étant activée, une évaluation de prédicat peut se produire sur des données non validées. Seules les analyses qui ne sont pas actuellement validées (CC) applicables tiennent compte de ces variables.
DB2_EVALUNCOMMITTED est applicable uniquement lorsque la sémantique validée ne permet pas d'éviter les conflits de verrouillage. Lorsque cette variable est définie et qu'elle est actuellement validée pour une analyse, les lignes supprimées ne sont pas ignorées et l'évaluation du prédicat n'a pas lieu sur les données non validées ; la version actuellement validée des lignes et des données est traitée à la place.
En outre, DB2_EVALUNCOMMITTED ne s'applique qu'aux instructions utilisant les niveaux d'isolement Cursor Stability ou Read Stability. En outre, les lignes supprimées sont ignorées sans condition lors de l'accès à l'analyse de table alors que les clés supprimées ne sont pas ignorées pour les analyses d'index sauf si la variable de registre DB2_SKIPDELETED est également définie.
L'activation de la variable de registre DB2_EVALUNCOMMITTED est effective sur la commande db2start . La décision quant à savoir si le verrouillage différé est applicable est prise à l'heure de compilation ou de liaison des instructions.
- DB2_EXTEND_COL_UNIQUE_INDEX_ACCESS
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON, OFF
- Cette variable vous permet de contrôler si un index d'état de modification est créé lorsqu'une contrainte de clé primaire ou unique est créée sur une table organisée en colonnes . Lorsque cette variable de registre est définie sur ON, l'index d'état de modification, s'il n'existe pas déjà, est généré lors de la création d'une clé primaire ou d'une contrainte d'unicité imposée. L'index d'état de modification est nécessaire pour certains plans d'accès à l'index à choisir.
- DB2_EXTENDED_IO_FEATURES
- Système d'exploitation: AIX®
- Default=OFF, valeurs : ON, OFF
- Affectez à cette variable, la valeur ON pour activer les fonctions qui améliorent les performances d'entrée-sortie. Cette amélioration inclut l'amélioration du taux de réussite des caches de mémoire, ainsi que la réduction du temps d'attente sur les E-S hautement prioritaires. Ces fonctions sont disponibles uniquement sur certaines combinaisons de configuration logicielle et matérielle ; la définition de cette variable sur ON pour d'autres configurations sera ignorée par le système de gestion de base de données Db2 ou par le système d'exploitation. Les exigences de configuration minimales sont les suivantes :
- Version de la base de données: Db2 V9.1
- L'unité RAW doit être utilisée pour les conteneurs de base de données (le conteneur sur les systèmes de fichiers n'est pas pris en charge)
- Sous-système de stockage: Shark DS8000® prend en charge toutes les fonctions de performances d'E-S améliorées. Pour plus d'informations sur la configuration et les prérequis, reportez-vous à la documentation de Shark DS8000 .
Les paramètres de priorité E-S par défaut pour HIGH, MEDIUM et LOW sont respectivement 3, 8 et 12. Vous pouvez utiliser la variable de registrer DB2_IO_PRIORITY_SETTING pour changer ces paramètres.
- DB2_EXTENDED_OPTIMIZATION
- Systèmes d'exploitation : tous
- Valeur par défaut: OFF, Valeurs: ON, OFF, ENHANCED_MULTIPLE_DISTINCT, IXORou OPT_SORTHEAP_EXCEPT_COL valeur
Cette variable indique si l'optimiseur de requêtes utilise des extensions d'optimisation pour améliorer les performances des requêtes. Les valeurs indiquent des extensions d'optimisation différentes. Pour spécifier plusieurs valeurs, utilisez une liste séparée par une virgule.
Le comportement par défaut (spécifié par la valeur OFF ou IXOR) consiste pour l'optimiseur d'étendre la méthode d'accès aux données « ORing » de l'index pour inclure les prédicats OR qui référencent une colonne indexée, même lorsque des prédicats de colonne non indexés sont présents. Par exemple, considérons les deux définitions d'index suivantes :
Les prédicats suivants peuvent être satisfaits à l'aide de ces deux index lorsque l'option IXOR est définie :INDEX IX2: dept ASC INDEX IX3: job ASCWHERE dept = :hv1 OR (job = :hv2 AND years >= :hv3)Vous pouvez utiliser l'option OPT_SORTHEAP_EXCEPT_COL valeur pour remplacer la valeur du paramètre de configuration de base de données sortheap. La valeur de substitution affecte uniquement l'optimisation des requêtes et ne détermine pas la quantité de mémoire réelle disponible lors de l'exécution. Si la requête accède à une table organisée par colonnes , cette valeur de substitution est ignorée pour permettre au compilateur de requête d'utiliser la valeur en cours du paramètre de configuration de base de données sortheap .
L'une des utilisations de OPT_SORTHEAP_EXCEPT_COL concerne les tables fantômes. Les tables ombrées facilitent BLU Acceleration® pour les requêtes analytiques dans l'environnement OLTP. Les tables fantômes sont des tables organisées par colonnes . Les exigences relatives à la mémoire de tri sont supérieures à ce que vous devez normalement posséder pour les bases de données dans les environnements OLTP. Pour augmenter la mémoire de tri sans affecter les plans d'accès existants pour les requêtes OLTP, ajoutez OPT_SORTHEAP_EXCEPT_COL à DB2_EXTENDED_OPTIMIZATION pour remplacer la valeur du paramètre de configuration de base de données sortheap.
Les paramètres DB2_EXTENDED_OPTIMIZATION risquent de ne pas améliorer les performances des requêtes dans tous les environnements. Vous devez tester pour déterminer les améliorations de performances des requêtes individuelles.
IMPORTANT :- Les valeurs ENHANCED_MULTIPLE_DISTINCT et IXOR sont obsolètes à partir de version 10.1 et pourront être supprimées dans une édition ultérieure. La suppression de l'option ENHANCED_MULTIPLE_DISTINCT apporte de nouvelles améliorations qui améliorent les performances de plusieurs requêtes distinctes disponibles. La valeur IXOR est redondante, car elle indique le comportement par défaut. Pour plus de détails, voir Variables de registre avec des comportements modifiés.
- La valeur ENHANCED_MULTIPLE_DISTINCT prend effet de manière dynamique uniquement si elle a été activée lors du dernier démarrage de l'instance.
- DB2_IO_PRIORITY_SETTING
- Système d'exploitation: AIX
- Valeurs : HIGH:#, MEDIUM :#, LOW:#, où # peut être 1 à 15
- Cette variable est utilisée en combinaison avec la variable de registre DB2_EXTENDED_IO_FEATURES. Cette variable de registre permet de remplacer les paramètres de priorité d'E-S par défaut HIGH, MEDIUMet LOW pour le système de base de données Db2 , qui sont respectivement 3, 8et 12. Cette variable de registre doit être définie avant le début d'une instance ; toute modification nécessite un redémarrage de l'instance. Notez que la définition de cette variable de registre seule n'active pas les fonctions d'E-S améliorées, DB2_EXTENDED_IO_FEATURES doit être définie pour les activer. Toutes les exigences système pour DB2_EXTENDED_IO_FEATURES s'appliquent également à cette variable de registre.
- DB2_KEEP_AS_AND_DMS_CONTAINERS_OPEN
- Systèmes d'exploitation : tous
- Valeur par défaut : NO, valeurs : YES ou NO
- Lorsque affectez à cette variable la valeur ON, chaque conteneur d'espace table DMS dispose d'un descripteur de fichier ouvert jusqu'à ce que la base de données soit désactivée. Les performances des requêtes peuvent s'améliorer car le temps système pour ouvrir les conteneurs est supprimé. Vous ne devez utiliser ce registre que dans des environnements DMS purs, sinon les performances des requêtes sur les espaces table SMS peuvent être affectées de manière négative.
- DB2_KEEPTABLELOCK
- Systèmes d'exploitation : tous
- Valeur par défaut : OFF, valeurs: ON, TRANSACTION, OFF, CONNECTION
- Lorsque cette variable est définie sur ON ou TRANSACTION, elle permet au système de base de données Db2 de conserver le verrou de table lorsqu'un niveau d'isolement Lecture non validée ou Lecture non reproductible est fermé. Le verrou de table conservé est libéré à la fin de la transaction, tout comme il est libéré pour les analyses Read Stability et Repeatable Read.
Lorsque cette variable est définie sur CONNECTION, un verrou de table est libéré pour une application jusqu'à ce que l'application annule la transaction ou que la connexion soit réinitialisée. Le verrou de table continue à être détenu entre les validations et les demandes d'application pour supprimer le verrou de table sont ignorés par la base de données. Le verrou de table reste alloué à l'application. Ainsi, lorsque l'application redemande le verrou de table, le verrou est déjà disponible.
Pour les charges de travail d'application pouvant optimiser cette optimisation, les performances doivent s'améliorer. Toutefois, les charges de travail d'autres applications en cours d'exécution peuvent être affectées. D'autres applications peuvent être bloquées à l'accès à une table donnée, ce qui entraîne une faible concurrence. Les tables de catalogue SQL Db2 ne sont pas impactées par ce paramètre. Le paramètre CONNECTION inclut également le comportement décrit avec la valeur ON ou TRANSACTION.
Cette variable de registre est vérifiée lors de la compilation de l'instruction ou de la liaison.
- DB2_LARGE_PAGE_MEM
- Système d'exploitation: AIX, Linux, Windows Server
- Valeur par défaut : NULL, valeurs : utilisez * pour indiquer toutes les régions de mémoire applicables qui doivent utiliser de la mémoire de grande page ou une liste de régions de mémoire spécifiques, séparées par une virgules, qui doivent utiliser une mémoire de grande page. Les régions disponibles varient selon le système d'exploitation.
- Db2 utilise le terme "grandes pages" de manière générique, tandis que les systèmes d'exploitation utilisent les termes "grande" et "énorme" pour faire référence à la fois à des tailles de page spécifiques et à des tailles de page dépendantes du matériel plus importantes. Une taille de page de système d'exploitation « grande » ou « très grande » n'est pas la même sur toutes les plateformes de système d'exploitation/matériel, et ces termes peuvent faire référence à plusieurs tailles de page sur une plateforme de système d'exploitation/matériel donnée.
- Le paramètre DB s'applique à la région DATABASE_MEMORY et active les tailles de page suivantes: AIX -pages volumineuses (16MB), Linux x64 -pages volumineuses (2MB) et Windows-pages volumineuses (2MB) pages.- Le paramètre DB:16GB est disponible sous AIX uniquement, ce qui active des pages volumineuses (16GB) pour la région DATABASE_MEMORY .
- Les paramètres PRIVATE, DBMS, FCMet APPL (APPL_MEMORY) sont disponibles uniquement sous AIX , qui active des pages volumineuses (16MB) pour la région de mémoire applicable.
- Le paramètre * active de grandes/très grandes pages de mémoire du système d'exploitation pour toutes les régions disponibles, comme indiqué ci-dessus. Sous AIX, les grandes pages (16MB) sont activées pour la mémoire de la base de données, contrairement aux pages volumineuses (16GB).
Lorsque vous utilisez de grandes pages ou de très grandes pages pour la mémoire de base de données (DB), la diminution dynamique de la mémoire de la base de données est limitée et le paramètre db_mem_thresh est ignoré. Le gestionnaire de mémoire à réglage automatique (STMM) ne permet pas d'ajuster la taille globale de la zone de base de données. Cependant, STMM élague les zones à l'intérieur de la région de mémoire de la base de données sous réserve de configuration. Pour plus d'informations, voir la rubrique database_memory dans la section des liens connexes.
Les applications intensives d'accès à la mémoire qui utilisent de grandes quantités de mémoire virtuelle peuvent obtenir des améliorations de performances en utilisant de grandes ou de grandes pages. Pour permettre au système de base de donnéesDb2 de les utiliser, vous devez d'abord configurer le système d'exploitation pour qu'il utilise des pages volumineuses ou volumineuses.
Pour activer les grandes pages pour la mémoire privée de l'agent sur Db2 for AIX 64 bits (paramètre DB2_LARGE_PAGE_MEM=PRIVATE ), vous devez configurer les grandes pages sur le système d'exploitation et le propriétaire de l'instance doit posséder les fonctions CAP_BYPASS_RAC_VMM et CAP_PROPAGATE.
Sous Linux, pour vérifier que de très grandes pages de noyau sont disponibles, exécutez la commande suivante :
cat ⁄proc/meminfoSi de grandes pages de noyau sont disponibles, les trois lignes suivantes doivent être affichées (avec des nombres différents selon la quantité de mémoire configurée sur votre serveur) :
HugePages_Total: 200 HugePages_Free: 200 Hugepagesize: 16384 kBSi vous ne voyez pas ces lignes, ou que la valeur de
HugePages_Totalest 0, vous devez configurer le système d'exploitation ou le noyau.Sous Windows, la quantité de mémoire de grandes pages disponible sur le système est inférieure à la quantité totale de mémoire disponible. Une fois que le système est en cours d'exécution depuis un certain temps, la mémoire peut se fragmenter, et la quantité de mémoire de grande page diminue. La variable de registre DB2_ALLOCATION_SIZE doit être définie sur une valeur élevée, telle que 256 Mo, afin d'obtenir des performances cohérentes lors de l'allocation de grandes pages de mémoire sous Windows. (Notez que DB2_ALLOCATION_SIZE vous demande d'arrêter et de redémarrer l'instance.)
- DB2_LOGGER_NON_BUFFERED_IO
- Systèmes d'exploitation : tous
- Default=AUTOMATIC, valeurs : AUTOMATIC, ON ou OFF
- Cette variable vous permet de contrôler si les entrées-sorties directes (DIO) seront utilisées sur le système de fichiers journaux. Lorsque DB2_LOGGER_NON_BUFFERED_IO a la valeur AUTOMATIC, les fenêtres de journal actives (à savoir, les fichiers journaux principaux) sont ouvertes avec DIO, et tous les autres fichiers journaux sont mis en mémoire tampon. Lorsque la valeur est ON, tous les descripteurs de fichier journal sont ouverts avec DIO. Lorsque la valeur est OFF, tous les descripteurs de fichiers journaux seront mis en mémoire tampon.
- DB2MAXFSCRSEARCH
- Systèmes d'exploitation : tous
- Default=5, valeurs : -1, 1 à 33 554
- Indique le nombre d'enregistrements de contrôle d'espace libre (FSCRs) à rechercher lors de l'ajout d'un enregistrement à une table. La valeur par défaut est de rechercher cinq FSCR. La modification de cette valeur vous permet d'équilibrer la vitesse d'insertion avec la réutilisation de l'espace. Utilisez de grandes valeurs pour optimiser la réutilisation de l'espace. Utilisez de petites valeurs pour optimiser la vitesse d'insertion. Si vous définissez la valeur -1, le gestionnaire de base de données doit rechercher toutes les FSCR.
- DB2_MAX_INACT_STMTS
- Systèmes d'exploitation : tous
- Default=Non défini, valeurs : jusqu'à 4 000 000 000
- Cette variable remplace la limite par défaut du nombre d'instructions inactives conservées par une application. Vous pouvez choisir une valeur différente afin d'augmenter ou de réduire la quantité de mémoire dynamique du moniteur système utilisée pour les informations d'instruction inactives. La limite par défaut est 250.
Le segment de mémoire du moniteur système peut être épuisé si une application contient un nombre très élevé d'instructions dans une unité de travail ou qu'un grand nombre d'applications s'exécutent simultanément.
- DB2_MAX_NON_TABLE_LOCKS
- Systèmes d'exploitation : tous
- Default=YES, valeurs : voir description
- Cette variable définit le nombre maximal de verrouillages non tables qu'une transaction peut avoir avant qu'elle ne libère tous ces verrous. Les verrous non tables sont des verrous de table qui sont conservés dans la table de hachage et la chaîne de transaction même lorsque la transaction a fini de les utiliser. Comme les transactions accèdent souvent à la même table plusieurs fois, la conservation des verrous et le passage de leur état à NON peuvent améliorer les performances.Pour les meilleurs résultats, la valeur recommandée pour cette variable est le nombre maximal de tables auxquelles n'importe quelle connexion est censée accéder. Si aucune valeur définie par l'utilisateur n'est spécifiée, la valeur par défaut est la suivante : si la taille de locklist est supérieure ou égale à
(actuellement 8000), la valeur par défaut estSQLP_THRESHOLD_VAL_OF_LRG_LOCKLIST_SZ_FOR_MAX_NON_LOCKS
(actuellement 150). Sinon, la valeur par défaut estSQLP_DEFAULT_MAX_NON_TABLE_LOCKS_LARGE
(actuellement 0).SQLP_DEFAULT_MAX_NON_TABLE_LOCKS_SMALL
- DB2_MDC_ROLLOUT
- Systèmes d'exploitation : tous
- Default=IMMEDIAT, valeurs : IMMEDIAT, OFF ou DEFER
- Cette variable active une amélioration des performances appelée
déploiement
pour les suppressions à partir des tables MDC. Le déploiement est un moyen plus rapide de supprimer des lignes dans une table MDC lorsque des cellules entières (intersections de valeurs de dimension) sont supprimées dans une instruction DELETE de recherche. Les avantages sont la réduction de l'exploitation forestière et un traitement plus efficace. - Il existe trois résultats possibles de la valeur variable :
- Aucun déploiement - Si OFF est spécifié
- Déploiement immédiat - Si IMMEDIAT est spécifié.
- Déploiement avec nettoyage d'index différé - Si DEFER est spécifié
- Si la valeur est modifiée après le démarrage, toute nouvelle compilation d'une instruction respectera le nouveau paramètre de valeur de registre. Pour les instructions qui se trouvent dans le cache du package, aucune modification du traitement des suppressions ne sera effectuée tant que l'instruction n'est pas recompilée. L'instruction SET CURRENT MDC ROLLOUT MODE remplace la valeur de DB2_MDC_ROLLOUT au niveau de la connexion de l'application.
- Dans Db2 version 9.7 et versions ultérieures, la valeur DEFER n'est pas prise en charge pour les tables partitionnées par spécification de plages de valeurs avec des index RID partitionnés. Seules les valeurs OFF et IMMEDIAT sont prises en charge. Le type de déploiement de nettoyage est IMMEDIATE si la variable de registre DB2_MDC_ROLLOUT a la valeur DEFER ou que le registre spécial CURRENT MDC ROLLOUT MODE à la valeur DEFERRED pour remplacer le paramètre DB2_MDC_ROLLOUT.
Si seuls les index RID non partitionnés existent sur la table, le déploiement du nettoyage d'index différé est pris en charge.
- Les modifications apportées à cette variable prendront effet immédiatement pour toutes les futures instructions SQL compilées. Il n'est pas nécessaire de redémarrer l'instance ou d'émettre la commande db2set avec le paramètre -immediate.
- DB2MEMDISCLAIM
- Systèmes d'exploitation : tous
- Default=YES, valeurs : YES ou NO
- La mémoire utilisée par les processus du système de base de données Db2 peut être associée à un espace de pagination. Cet espace de pagination peut rester réservé même lorsque la mémoire associée a été libérée. Indique si cela dépend de la règle d'allocation de gestion de la mémoire virtuelle (optimisable) du système d'exploitation. La variable de registre DB2MEMDISCLAIM contrôle si les agents Db2 demandent explicitement que le système d'exploitation dissocie l'espace de pagination réservé de la mémoire libérée.
La valeur YES DB2MEMDISCLAIM génère moins de besoins en espace de pagination et peut-être moins d'activité de disque à partir de la pagination. La valeur No DB2MEMDISCLAIM génère de plus grandes besoins en espace de pagination, et peut-être davantage d'activité sur le disque à partir de la pagination. Dans certains cas, par exemple si l'espace de pagination est abondant et que la mémoire réelle est si abondante que la pagination n'a jamais lieu, NO améliore faiblement les performances.
- DB2_MEM_TUNING_RANGE
- Systèmes d'exploitation : tous
- Valeur par défaut=NULL, valeurs : une séquence de pourcentages N, M où N=minfree et m=maxfree et n < m
Si cette variable n'est pas définie, le gestionnaire de base de données Db2 calcule les valeurs pour minfree et maxfree en fonction de la quantité de mémoire sur le serveur. Dans les environnements instance_memory limités, le gestionnaire de base de données Db2 calcule les valeurs pour minfree et maxfree en fonction du paramètre instance_memory . Le paramètre de cette variable n'a aucun effet à moins que le gestionnaire de mémoire à réglage automatique (STMM) soit activé et que database_memory ait la valeur AUTOMATIC.
Les paramètres minfree et maxfree représentent la quantité de mémoire d'instance, la mémoire système ou les deux que le STMM tente de quitter en tant que mémoire tampon. Cette mémoire tampon est essentielle pour satisfaire les besoins en mémoire volatile, tout en évitant la sur-validation de la mémoire sur le système ou en épuisant la mémoire d'instance. En outre, la plage minfree-maxfree est utilisée pour équilibrer les exigences de la mémoire sur plusieurs bases de données. Dans une base de données unique qui est optimisée par STMM, le système libre cible ou la mémoire d'instance est toujours minfree. Dans un environnement à plusieurs bases de données, l'optimiseur STMM de la base de données avec les besoins en mémoire les plus élevées cible la valeur minfree, tandis que les optimiseurs STMM des bases de données avec des besoins moindres ont des cibles de mémoire libre plus élevées (jusqu'à la valeur maxfree). Les paramètres minfree, maxfree par défaut sont les suivants :Tableau 1. Paramètres par défaut minfree, maxfree Taille de la mémoire de l'instance ou du système minfree (%) maxfree(%) 1 Go 7.8 33 2 Go 7.4 29 4 Go 7.0 25 8 Go 6.7 22 16 Go 6.4 19 32 Go 6.2 17 64 Go 6.0 30 128 Go 5.8 13 256 Go 5.7 12 512 Go 5.6 11 1 To 5.5 10 A partir de version 10.5, une mémoire tampon supplémentaire de 5% est ajoutée, qui est incluse dans les valeurs du tableau précédent. Cette mémoire tampon supplémentaire permet de tenir compte de la volatilité des besoins en mémoire dans un plus large éventail d'environnements tout en maintenant la résilience attendue des environnements STMM automatiquement réglés. Cependant, la mémoire tampon supplémentaire de 5 % est disponible pour les bases de données nouvellement activées afin de réduire au minimum le décodage (redimensionnement) lors de l'activation. Si un tuner STMM version 10.5 ou ultérieure détecte la présence de tuners STMM des éditions précédentes (qui sont en concurrence avec eux pour la mémoire système), la mémoire tampon supplémentaire de 5% est supprimée du calcul pour les bases de données qui s'exécutent sur version 10.5 ou ultérieure. Cette suppression de la mémoire tampon de 5 % supplémentaire permet d'éviter une allocation de mémoire secondaire vers les bases de données qui s'exécutent sur les versions précédentes (ce qui aurait tendance à avoir des cibles de mémoire libre inférieures).
Les gains de performances peuvent être obtenus en réduisant les paramètres minfree, maxfree dans un environnement STMM. Cependant, il faut veiller à ce que la volatilité des besoins en mémoire ne se traduit-elle pas par une pagination ou un épuisement de la mémoire.
Les modifications apportées à cette variable prennent effet immédiatement pour toutes les opérations d'optimisation STMM. Il n'est pas nécessaire de redémarrer l'instance ou d'exécuter la commande db2set avec le paramètre -immediate.
- Les modifications apportées à cette variable prendront effet immédiatement pour toutes les futures instructions SQL compilées. Il n'est pas nécessaire de redémarrer l'instance ou d'émettre la commande db2set avec le paramètre -immediate.
- DB2_MMAP_READ
- Système d'exploitation: AIX
- Default=OFF, valeurs : ON ou OFF
- Cette variable est utilisée conjointement avec DB2_MMAP_WRITE pour permettre au système de base de données Db2 d'utiliser mmap comme autre méthode d'E-S.
Lorsque ces variables sont définies sur ON, les données sont lues et écrites dans les pools de mémoire tampon Db2 à l'aide des E-S mappées en mémoire, puis supprimées du cache du système de fichiers. Cela évite la double mise en cache des données Db2 . Toutefois, la méthode recommandée pour ignorer le cache du système de fichiers est de spécifier la clause NO FILE SYSTEM CACHING au niveau de l'espace table et conserver les valeurs par défaut OFF des variables.
- DB2_MMAP_WRITE
- Système d'exploitation: AIX
- Default=OFF, valeurs : ON ou OFF
- Cette variable est utilisée conjointement avec DB2_MMAP_READ pour permettre au système de base de données Db2 d'utiliser mmap comme autre méthode d'E-S.
Lorsque ces variables sont définies sur ON, les données sont lues et écrites dans les pools de mémoire tampon Db2 à l'aide des E-S mappées en mémoire, puis supprimées du cache du système de fichiers. Cela évite la double mise en cache des données Db2 . Toutefois, la méthode recommandée pour ignorer le cache du système de fichiers est de spécifier la clause NO FILE SYSTEM CACHING au niveau de l'espace table et conserver les valeurs par défaut OFF des variables.
- DB2_NO_FORK_CHECK
- Système d'exploitation: UNIX
- Default=OFF, valeurs : ON ou OFF
- Lorsque cette variable est activée, le client d'exécution Db2 réduit les vérifications pour déterminer si le processus en cours est le résultat d'un appel fork. Cela peut améliorer les performances des applications Db2 qui n'utilisent pas l'API fork() .
- DB2NTMEMSIZE
- Système d'exploitation : Windows
- Default= (varie selon le segment de mémoire)
- Windows requiert que tous les segments de mémoire partagée soient réservés lors de l'initialisation de la DLL afin de garantir la correspondance des adresses entre les processus. DB2NTMEMSIZE permet à l'utilisateur de remplacer les valeurs par défaut de Db2 sous Windows si nécessaire. Dans la plupart des cas, les valeurs par défaut doivent être suffisantes. Les segments de mémoire, les tailles par défaut et les options de substitution sont les suivants :
- Mémoires tampon FCM parallèles : la taille par défaut est de 512 Mo sur les plateformes 32 bits, 4,5 Go sur les plateformes 64 bits ; l'option de substitution est FCM:nombre_octets
- Communication en mode isolé : la taille par défaut est de 80 Mo sur les plateformes 32 bits, 512 Mo sur les plateformes 64 bits ; l'option de substitution est APLD:ombre_octets
- Mémoire de requête de message: la taille par défaut est de 4 Mo sur les plateformes 32 bits et 64 bits ; l'option de substitution est QUE :<number of bytes>.
Pour augmenter la mémoire de la file d'attente de messages à 64 Mo, utilisez :db2set DB2NTMEMSIZE=FCM:1073741824;APLD:268435456db2set DB2NTMEMSIZE=QUE:67108864
- DB2NTNOCACHE
- Système d'exploitation : Windows
- Default=OFF, valeurs : ON ou OFF
- La variable de registre DB2NTNOCACHE indique si le système de base de données Db2 ouvre les fichiers de base de données avec l'option NOCACHE . Si DB2NTNOCACHE a la valeur ON, la mise en cache du système de fichiers est supprimée. Si DB2NTNOCACHE est défini sur OFF, le système d'exploitation met en cache les fichiers Db2 . Cela s'applique à toutes les données, à l'exception des fichiers contenant des zones longues ou des objets LOB. L'élimination de la mise en cache du système permet d'obtenir plus de mémoire pour la base de données de sorte que le pool de mémoire tampon ou le segment de mémoire de tri puisse être augmenté.
Dans Windows, les fichiers sont mis en cache lorsqu'ils sont ouverts, ce qui est le comportement par défaut. Un Mo est réservé dans un pool système pour chaque 1 Go du fichier. Utilisez cette variable de registre pour remplacer la limite non documentée de 192 Mo pour le cache. Lorsque la limite de mémoire cache est atteinte, une erreur de non-ressource est donnée.
- Les modifications apportées à cette variable prendront effet immédiatement pour toutes les futures instructions SQL compilées. Il n'est pas nécessaire de redémarrer l'instance ou d'émettre la commande db2set avec le paramètre -immediate.
Remarque: Pour les conteneurs d'espace table, l'utilisation de la clause NO FILE SYSTEM CACHING avec l'instruction ALTER TABLESPACE ou CREATE TABLESPACE présente les mêmes avantages que la définition de DB2NTNOCACHE sur ON.
- DB2NTPRICLASS
- Système d'exploitation : Windows
- Default=NULL, valeurs : R, H, (toute autre Valeur)
- Définit la classe de priorité de l'instance Db2 (programme DB2SYSCS.EXE). Il existe trois catégories de priorités :
- NORMAL_PRIORITY_CLASS (classe de priorité par défaut)
- REALTIME_PRIORITY_CLASS (défini à l'aide de R)
- HIGH_PRIORITY_CLASS (défini à l'aide de H)
Cette variable est utilisée conjointement avec les priorités d'unité d'exécution individuelles (définies à l'aide de DB2PRIORITIES) pour déterminer la priorité absolue des unités d'exécution Db2 par rapport aux autres unités d'exécution du système.
Remarque: DB2NTPRICLASS est obsolète et ne doit être utilisé que sur recommandation du service. Utilisez les classes de service Db2 pour ajuster la priorité de l'agent et la priorité de préextraction. Utilisez cette variable avec précaution. Une utilisation inadaptée peut affecter les performances globales du système.Pour plus d'informations, reportez-vous à l'API SetPriorityClass() dans la documentation Win32.
- DB2NTWORKSET
- Système d'exploitation : Windows
- Valeur par défaut =1,1
- Permet de modifier la taille minimale et maximale de la partie active disponible pour le gestionnaire de base de données Db2 . Par défaut, lorsque Windows n'est pas dans une situation de pagination, le jeu de documents d'un processus peut augmenter autant que nécessaire. Cependant, lorsque la pagination se produit, l'ensemble de travail maximal qu'un processus peut avoir est d'environ 1 Mo. DB2NTWORKSET vous permet de remplacer ce comportement par défaut.
Indiquez DB2NTWORKSET à l'aide de la syntaxe DB2NTWORKSET=
min, max, où min et max sont exprimés en mégaoctets.
- DB2_OVERRIDE_BPF
- Systèmes d'exploitation : tous
- Default=Non défini, valeurs : valeur numérique positive de pages OU <entry>[;<entry>] où <entry> =<buffer pool ID>,<number of pages>
- Cette variable indique la taille du pool de mémoire tampon, dans les pages, à créer lors de l'activation de la base de données, de la récupération aval ou de la reprise sur incident. Il est utile lorsque des contraintes de mémoire entraînent des échecs lors de l'activation de la base de données, de la récupération aval ou de la reprise sur incident. La contrainte de mémoire peut se produire dans le cas rare d'une insuffisance de mémoire réelle ou, en raison de la tentative du gestionnaire de base de données d'allouer un pool de mémoire tampon de grande taille, dans le cas où il existait des pools de mémoire tampon configurés incorrectement. Par exemple, si le gestionnaire de la base de données ne fait pas appel à un pool de mémoire tampon minimal de 16 pages, essayez de spécifier un nombre inférieur de pages à l'aide de cette variable d'environnement. La valeur donnée à cette variable remplace la taille actuelle du pool de mémoire tampon.
Vous pouvez également utiliser <entry>[;<entry>...], où <entry> =<buffer pool ID>,<number of pages> pour modifier temporairement la taille de tout ou un sous-ensemble des pools de mémoire tampon afin qu'ils puissent démarrer.
- DB2_PINNED_BP
- Système d'exploitation: AIX, HP-UX, Linux
- Default=NO, valeurs : YES ou NO
- Lorsque cette variable est définie sur YES , Db2 demande au système d'exploitation d'épingler la mémoire partagée de la base de données de Db2. Lors de la configuration de Db2 pour épingler la mémoire partagée de la base de données, veillez à ce que le système ne soit pas sursollicité, car le système d'exploitation aura une flexibilité réduite dans la gestion de la mémoire.
Sous Linux, outre la modification de cette variable de registre, la bibliothèque libcap.so.1 est également requise.
Si vous affectez à cette variable la valeur YES, l'optimisation de la mémoire partagée de la base de données (activée en affectant au paramètre de configuration database_memory la valeur AUTOMATIC) ne peut pas être activée.
Pour HP-UX dans un environnement 64 bits, en plus de la modification de cette variable de registre, le groupe d'instances Db2 doit disposer du privilège MLOCK. Pour ce faire, un utilisateur disposant des droits d'accès root effectue les actions suivantes:
- Ajoute le groupe d'instances Db2 au fichier /etc/privgroup . Par exemple, si le groupe d'instances Db2 appartient au groupe
db2iadm1, la ligne suivante doit être ajoutée au fichier /etc/privgroup :db2iadm1 MLOCK - Exécute la commande suivante :
setprivgrp -f /etc/privgroup
- Ajoute le groupe d'instances Db2 au fichier /etc/privgroup . Par exemple, si le groupe d'instances Db2 appartient au groupe
- DB2PRIORITIES
- Systèmes d'exploitation : tous
- Les valeurs dépendent de la plateforme
- Contrôle les priorités des processus et des unités d'exécution Db2 .
Remarque: DB2PRIORITIES est obsolète et ne doit être utilisé que sur recommandation du service. Utilisez les classes de service Db2 pour ajuster la priorité de l'agent et la priorité de préextraction.
- DB2_RCT_FEATURES
- Systèmes d'exploitation : tous
- Valeur par défaut : NULL. Valeurs :
GROUPUPDATE=[ON|OFF]. La valeur par défaut deGROUPUPDATEest OFF. - Cette variable permet d'optimiser et de réduire le traitement des mises à jour pour une instruction UPDATE recherchée qui cible plusieurs lignes dans une table en cluster de plage lorsque seuls les prédicats égaux sur le premier et le sous-ensemble des colonnes de séquence de clés sont spécifiés. La consignation est également réduite en raison d'un enregistrement de journal unique pour toutes les lignes mises à jour sur une page, au lieu d'un enregistrement de journal pour chaque ligne mise à jour.Syntaxe:
db2set DB2_RCT_FEATURES=GROUPUPDATE=ON
- DB2_REDUCE_FLUSHING_DURING_BACKUP
- Systèmes d'exploitation : tous
- Valeur par défaut : OFF, valeurs : ON | OFF
- Au début d'une opération de sauvegarde en ligne, les pages modifiées dans le pool de mémoire tampon doivent être conservées dans la mémoire d'espace table, ce qui peut augmenter la durée de l'opération de sauvegarde dans les configurations avec de très grands pools de mémoire tampon. Cette variable indique si la sauvegarde en ligne effectue une purge réduite des pages modifiées dans le pool de mémoire tampon. Lorsqu'un vidage réduit est effectué, la durée de l'opération de récupération aval qui est requise après la restauration d'une sauvegarde en ligne peut augmenter.
- Cette variable est disponible dans la version 11.1.4.4 et les versions plus récentes.
- Les modifications apportées à cette variable n'exigent pas un redémarrage de l'instance de base de données.
- Les modifications apportées à cette variable n'auront aucun effet sur une opération de sauvegarde en ligne qui est déjà en cours d'exécution au moment de la modification de la variable.
- DB2_RESOURCE_POLICY
- Système d'exploitation: AIX, Linux, Windows
- Valeur par défaut = Non défini, Valeurs: chemin d'accès valide au fichier de configuration (AIX, Linux, Windows) ou AUTOMATIC (AIX, Linux, Windows)
- Définit une stratégie de ressource qui peut être utilisée pour contrôler les ressources de système d'exploitation utilisées par la base de données Db2 ou qui contient des règles d'affectation de ressources de système d'exploitation spécifiques à des objets de base de données Db2 spécifiques. L'étendue du contrôle des ressources varie en fonction du système d'exploitation.
Sur les systèmes AIX dotés de processeurs POWER7® ou plus récents, ou tout système Linux ou Windows, cette variable peut être définie sur AUTOMATIC. Lorsque l'option AUTOMATIC est spécifiée, le système de base de données Db2 détermine automatiquement la topologie matérielle et crée un groupe de ressources pour chaque ensemble de ressources associées (processeurs et mémoire) qui sont visibles dans la topologie matérielle. Selon la topologie matérielle, il peut y avoir un ou plusieurs groupes de ressources, chacun contenant une ou plusieurs ressources.
Le paramètre AUTOMATIC active l'affinité de processeur, par laquelle le système de base de données Db2 affecte des unités de répartition du moteur (EDU) à des groupes de ressources et des ressources spécifiques. En outre, le paramètre AUTOMATIC détermine également s'il convient d'activer l'affinité de mémoire, en vertu de laquelle les EDU tentent d'allouer de la mémoire locale pendant le traitement, afin d'améliorer l'affinité de mémoire. L'affectation d'EDU à des ressources se fait de façon circulaire et suppose que chaque ressource est équivalente. Sur les systèmes utilisant POWER7 et les processeurs plus récents, l'utilisation du paramètre AUTOMATIC n'est pas recommandée lorsque la distribution des ressources est biaisée et / ou susceptible d'être modifiée, par exemple dans les systèmes comportant plusieurs partitions logiques. Sur les systèmes POWER ® exécutant AIX, l'allocation de ressources peut être déterminée à l'aide de la commande lssrad -av . Sur les systèmes POWER exécutant Linux, l'allocation de ressources peut être déterminée à l'aide de la commande numactl -H .
Ce paramètre est destiné aux systèmes qui exposent plusieurs groupes de ressources et / ou ressources dans leur topologie matérielle et peut améliorer les performances des requêtes pour certaines charges de travail. Pour valider les améliorations de performances, il est recommandé d'exécuter une analyse des performances de la charge de travail avant et après avoir défini la variable DB2_RESOURCE_POLICY sur AUTOMATIC.
Vous pouvez également définir la variable de registre pour indiquer le chemin d'accès à un fichier de configuration qui définit une règle pour la liaison d'EDU Db2 à des groupes de ressources et des ressources spécifiques. Cela est utile dans les cas où la configuration souhaitée ne peut pas être obtenue à l'aide du paramètre AUTOMATIC .
Remarque: Pour AIX uniquement, l'utilisation de DB2_RESOURCE_POLICY=AUTOMATIC ou l'utilisation d'un fichier de configuration qui utilise les méthodes RSET ou SRAD requiert que le compte d'instance dispose des fonctions CAP_NUMA_ATTACH et CAP_PROPAGATE. Pour plus d'informations, voir la documentation AIX pour la commande chuser .Remarque: Pour AIX uniquement, l'utilisation du type de ressource SRAD n'est pas prise en charge lorsque PowerVM® Dynamic Platform Optimizer est activé.Exemples de fichiers de configuration :
Exemple 1: Liaison de tous les processus Db2 à l'unité centrale 1 ou 3.
<RESOURCE_POLICY> <GLOBAL_RESOURCE_POLICY> <METHOD>CPU</METHOD> <RESOURCE_BINDING> <RESOURCE>1</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>3</RESOURCE> </RESOURCE_BINDING> </GLOBAL_RESOURCE_POLICY> </RESOURCE_POLICY>Exemple 2: (AIX uniquement) Liaison de processus Db2 à l'un des ensembles de ressources suivants: sys/node.03.00000, sys/node.03.00001, sys/node.03.00002, sys/node.03.00003
<RESOURCE_POLICY> <GLOBAL_RESOURCE_POLICY> <METHOD>RSET</METHOD> <RESOURCE_BINDING> <RESOURCE>sys/node.03.00000</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>sys/node.03.00001</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>sys/node.03.00002</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>sys/node.03.00003</RESOURCE> </RESOURCE_BINDING> </GLOBAL_RESOURCE_POLICY> </RESOURCE_POLICY>Exemple 3: (Linux uniquement) Lier toute la mémoire des ID de pool de mémoire tampon 2 et 3 associés à la base de données SAMPLE au noeud NUMA 3. Utilisez également 80 % de la mémoire totale de la base de données pour la liaison au nœud NUMA 3 et laissez 20 % segmenté sur tous les nœuds pour la mémoire spécifique à un pool de non-mémoire tampon.
<RESOURCE_POLICY> <DATABASE_RESOURCE_POLICY> <DBNAME>sample</DBNAME> <METHOD>NODEMASK</METHOD> <RESOURCE_BINDING> <RESOURCE>3</RESOURCE> <DBMEM_PERCENTAGE>80</DBMEM_PERCENTAGE> <BUFFERPOOL_BINDING> <BUFFERPOOL_ID>2</BUFFERPOOL_ID> <BUFFERPOOL_ID>3</BUFFERPOOL_ID> </BUFFERPOOL_BINDING> </RESOURCE_BINDING> </DATABASE_RESOURCE_POLICY> </RESOURCE_POLICY>Exemple 4: (Pour Linux et Windows uniquement) Définissez deux ensembles de processeurs distincts spécifiés par les masques d'UC 0x0F et 0xF0. Liez les processus Db2 et l'ID de pool de mémoire tampon 2 au jeu de processeurs 0x0F et les processus Db2 et l'ID de pool de mémoire tampon 3 au jeu de processeurs 0xF0. Pour chaque ensemble de processeurs, utilisez 50 % de la mémoire totale de la base de données pour la liaison.
Cette règle de ressource est utile lorsqu'un mappage entre des processeurs et des nœuds NUMA est souhaité. Un exemple de ce scénario est un système avec 8 processeurs et 2 nœud NUMA où les processeurs 0 à 3 appartiennent au nœud NUMA 0 et les processeurs 4 à 7 appartiennent au nœud NUMA 1. Cette règle de ressource permet la liaison de processeur tout en conservant implicitement la localisation de la mémoire (c'est-à-dire une méthode hybride de la méthode CPU et de la méthode NODEMASK).
<RESOURCE_POLICY> <DATABASE_RESOURCE_POLICY> <DBNAME>sample</DBNAME> <METHOD>CPUMASK</METHOD> <RESOURCE_BINDING> <RESOURCE>0x0F</RESOURCE> <DBMEM_PERCENTAGE>50</DBMEM_PERCENTAGE> <BUFFERPOOL_BINDING> <BUFFERPOOL_ID>2</BUFFERPOOL_ID> </BUFFERPOOL_BINDING> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>0xF0</RESOURCE> <DBMEM_PERCENTAGE>50</DBMEM_PERCENTAGE> <BUFFERPOOL_BINDING> <BUFFERPOOL_ID>3</BUFFERPOOL_ID> </BUFFERPOOL_BINDING> </RESOURCE_BINDING> </DATABASE_RESOURCE_POLICY> </RESOURCE_POLICY>Exemple 5: (systèmes d'exploitationAIX uniquement) Vous pouvez activer manuellement la fonction de découverte de groupe de ressources en spécifiant des groupes de ressources dans le fichier de stratégie de ressource. Utilisez l'élément RESOURCE_GROUP pour spécifier les ressources appartenant à un groupe de ressources particulier. Les groupes de ressources définis n'ont pas à s'aligner sur les limites NUMA. La colonne RESOURCE_GROUP de la fonction de table ENV_GET_DB2_EDU_SYSTEM_RESOURCES identifie le groupe de ressources auquel un EDU est associé.
Définissez deux groupes de ressources, chacun contenant quatre domaines d'affinité des ressources du planificateur (SRAD):<RESOURCE_POLICY> <GLOBAL_RESOURCE_POLICY> <METHOD>SRAD</METHOD> <RESOURCE_GROUP> <RESOURCE_GROUP_NAME>TESTGROUP1</RESOURCE_GROUP_NAME> <RESOURCE_BINDING> <RESOURCE>0</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>1</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>2</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>3</RESOURCE> </RESOURCE_BINDING> </RESOURCE_GROUP> <RESOURCE_GROUP> <RESOURCE_GROUP_NAME>TESTGROUP2</RESOURCE_GROUP_NAME> <RESOURCE_BINDING> <RESOURCE>4</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>5</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>6</RESOURCE> </RESOURCE_BINDING> <RESOURCE_BINDING> <RESOURCE>7</RESOURCE> </RESOURCE_BINDING> </RESOURCE_GROUP> </GLOBAL_RESOURCE_POLICY> </RESOURCE_POLICY>Le fichier de configuration spécifié par la variable de registre DB2_RESOURCE_POLICY accepte un élément SCHEDULING_POLICY. Vous pouvez utiliser l'élément SCHEDULING_POLICY sur certaines plateformes pour sélectionner- Règle de planification du système d'exploitation utilisée par le serveur Db2
Vous pouvez définir une règle de planification du système d'exploitation pour Db2 sous AIXet pour Db2 sous Windows à l'aide de la variable de registre DB2NTPRICLASS .
- Priorités du système d'exploitation utilisées par les agents de serveur Db2 individuels
Vous pouvez également utiliser les variables de registre DB2PRIORITIES et DB2NTPRICLASS pour contrôler la règle de planification du système d'exploitation et définir les priorités de l'agent Db2 . Toutefois, la spécification d'un élément SCHEDULING_POLICY dans le fichier de configuration de la règle de ressource fournit un emplacement unique pour spécifier à la fois la règle de planification et les priorités d'agent associées.
Exemple 1: Sélection de la règle de planification AIX SCHED_FIFO2 avec une pondération de priorité pour les processus Db2 Log writer and reader.
<RESOURCE_POLICY> <SCHEDULING_POLICY> <POLICY_TYPE>SCHED_FIFO2</POLICY_TYPE> <PRIORITY_VALUE>60</PRIORITY_VALUE> <EDU_PRIORITY> <EDU_NAME>db2loggr</EDU_NAME> <PRIORITY_VALUE>56</PRIORITY_VALUE> </EDU_PRIORITY> <EDU_PRIORITY> <EDU_NAME>db2loggw</EDU_NAME> <PRIORITY_VALUE>56</PRIORITY_VALUE> </EDU_PRIORITY> </SCHEDULING_POLICY> </RESOURCE_POLICY>Exemple 2: Remplacement de DB2NTPRICLASS=H sous Windows.
<RESOURCE_POLICY> <SCHEDULING_POLICY> <POLICY_TYPE>HIGH_PRIORITY_CLASS</POLICY_TYPE> </SCHEDULING_POLICY> </RESOURCE_POLICY> - Règle de planification du système d'exploitation utilisée par le serveur Db2
- DB2_SELUDI_COMM_BUFFER
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON ou OFF
- Cette variable est utilisée lors du traitement des curseurs de blocage sur SELECT à partir des requêtes UPDATE, INSERT ou DELETE (UDI). Lorsque cette option est activée, cette variable de registre empêche le stockage dans une table temporaire du résultat d'une requête. A la place, lors du traitement OPEN d'un curseur de blocage pour une requête SELECT from UDI, le système de base de données Db2 tente de mettre en mémoire tampon l'intégralité du résultat de la requête directement dans la zone de mémoire tampon de communication.Remarque: Si l'espace de la mémoire tampon de communication n'est pas suffisant pour contenir l'intégralité du résultat de la requête, une erreur SQLCODE -906 est émise et la transaction est annulée. Pour plus d'informations sur l'ajustement de la taille de la zone de mémoire tampon de communication pour les applications locales et distantes, voir les paramètres de configuration du gestionnaire de base de données aslheapsz et rqrioblk .
Cette variable de registre n'est pas prise en charge lorsque le parallélisme intrapartition est activé.
Les modifications apportées à cette variable peuvent prendre effet immédiatement pour toutes les futures instructions SQL compilées si la commande db2set est émise avec le paramètre -immediate . Vous n'avez pas besoin de redémarrer l'instance.
- DB2_SET_MAX_CONTAINER_SIZE
- Systèmes d'exploitation : tous
- Default=Non défini, valeurs: -1, tout entier positif supérieur à 65 536 octets
- Cette variable de registre vous permet de limiter la taille des conteneurs individuels pour les espaces table de stockage automatique avec la fonction AutoResize activée.Remarque: Bien que vous puissiez spécifier DB2_SET_MAX_CONTAINER_SIZE en octets, kilooctets ou mégaoctets, db2set indique sa valeur en octets.
- Si la valeur est définie sur -1, la taille d'un conteneur ne sera pas limitée.
- DB2_SKIPDELETED
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON ou OFF
- Lorsqu'elle est activée, cette variable permet des instructions utilisant des niveaux d'isolement Cursor Stability ou Read Stability pour ignorer sans condition les clés supprimées lors de l'accès à l'index et des lignes supprimées lors de l'accès à la table. Lorsque DB2_EVALUNCOMMITTED est activé, les lignes supprimées sont automatiquement ignorées, mais les clés pseudo-supprimées non validées dans les index ne sont pas ignorées sauf si DB2_SKIPDELETED est également activé. Seules les analyses qui ne sont pas actuellement validées (CC) applicables tiennent compte de ces variables.
DB2_SKIPDELETED est applicable uniquement lorsque la sémantique validée ne permet pas d'éviter les conflits de verrouillage. Lorsque cette variable est définie et qu'elle est actuellement validée pour une analyse, les lignes supprimées ne seront pas ignorées ; leur version actuellement validée sera traitée à la place
Cette variable de registre n'a pas d'impact sur le comportement des curseurs sur les tables de catalogue Db2 .
Cette variable de registre est activée à l'aide de la commande db2start .
- DB2_SKIPINSERTED
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON ou OFF
- Lorsque la variable de registre DB2_SKIPINSERTED est activée, elle autorise les instructions utilisant les niveaux d'isolement Cursor Stability ou Read Stability pour ignorer les lignes insérées non validées comme si elles n'avaient pas été insérées. Cette variable de registre n'a pas d'impact sur le comportement des curseurs sur les tables de catalogue Db2 . Cette variable de registre est activée au démarrage de la base de données, tandis que la décision d'ignorer les lignes insérées non validées est prise au moment de la compilation ou de la liaison.
Cette variable de registre n'a aucun effet si des sémantiques actuellement validées sont utilisées. En d'autres cas, même si DB2_SKIPINSERTED a la valeur OFF et que le comportement validé est activé, les lignes insérées non validées sont toujours ignorées.
Remarque: le comportement Ignorer l'insertion n'est pas compatible avec les tables dont le nettoyage du déploiement est en attente. Par conséquent, les scanners peuvent attendre des verrouillages sur un RID uniquement pour découvrir que le RID fait partie d'un bloc de verrouillage.
- DB2_SMP_INDEX_CREATE
- Systèmes d'exploitation : tous
- Default=non défini, valeurs : 2 à 1000
- Cette variable de registre dynamique remplace le nombre par défaut d'agents utilisés pour analyser et trier les données d'index lors de la génération ou de la régénération d'un index. Cette variable de registre n'est vérifiée que lorsque le composant du gestionnaire d'index détermine que le parallélisme est justifié. Cette décision est basée sur de nombreuses considérations, dont la taille de la table et la présence de plusieurs processeurs.
DB2_SMP_INDEX_CREATE n'a un effet que lorsqu'il est défini sur une valeur différente de zéro. Lorsque vous augmentons le nombre d'agents utilisés pour analyser et trier les données d'index, il est important de s'assurer que les paramètres de configuration de base de données sortheap et sheapthres_shr sont correctement définis. Plus la mémoire est disponible pour le tri (spécifié par le paramètre sheapthres_shr ), le tri moins probable des données d'index requiert l'écriture de résultats temporaires dans un espace table temporaire système. Si le tri ne s'effectue pas sur le disque, il est beaucoup plus rapide. De plus, pour s'assurer que chaque agent participant au tri obtient une quantité égale de mémoire, le paramètre sortheap doit être affecté d'une valeur qui n'est pas supérieure à sheapthres_shr/n, où n est le nombre d'agents utilisés pour analyser et trier la table d'index.
- DB2_SMS_TRUNC_TMPTABLE_THRESH
- Systèmes d'exploitation : tous
- Default=-2, valeurs : -2, -1, 0 à n, où n=nombre d'extentions par table temporaire dans le conteneur d'espace de table SMS qui doivent être maintenus
- Cette variable indique un seuil de taille de fichier minimal auquel le fichier représentant une table temporaire est conservé dans les espaces table SMS.
La valeur par défaut de cette variable est -2, ce qui signifie qu'il n'existera pas d'accès au système de fichiers inutile pour les objets temporaires SMS déversés dont la taille est inférieure ou égale à 1 extension * nombre de conteneurs. Les objets temporaires de taille supérieure seront tronqués à l'espace alloué 0.
Lorsque cette variable a la valeur 0, aucun traitement de seuil spécial n'est effectué. En fait, une fois qu'une table temporaire n'est plus nécessaire, ce fichier est tronqué à 0 exstension. Lorsque la valeur de cette variable est supérieure à 0, un fichier plus volumineux est conservé. Les objets plus grands que le seuil seront tronqués à la taille de seuil. Cela réduit les frais généraux du système impliqués dans la suppression et la recréation du fichier chaque fois qu'une table temporaire est utilisée.
Si cette variable a la valeur -1, le fichier n'est pas tronqué et il est autorisé à croître indéfiniment, limité uniquement par les ressources système.
- DB2_SORT_AFTER_TQ
- Systèmes d'exploitation : tous
- Default=NO, valeurs : YES ou NO
- Indique comment l'optimiseur fonctionne avec les files d'attente de tables dirigées dans un environnement de base de données partitionnée lorsque l'extrémité de réception requiert que les données soient triées et que le nombre de noeuds de réception soit égal au nombre de nœuds d'envoi.
Lorsque DB2_SORT_AFTER_TQ=NO, l'optimiseur a tendance à trier à l'extrémité d'envoi et à fusionner les lignes à la fin de la réception.
Lorsque DB2_SORT_AFTER_TQ=YES, l'optimiseur tend à transmettre les lignes non triées, à ne pas fusionner à la fin de la réception, et à trier les lignes à la fin de la réception après avoir reçu toutes les lignes.
Les modifications apportées à cette variable peuvent prendre effet immédiatement pour toutes les futures instructions SQL compilées si la commande db2set est émise avec le paramètre -immediate . Vous n'avez pas besoin de redémarrer l'instance.
- DB2_SQLWORKSPACE_CACHE
- Systèmes d'exploitation : tous
- Valeur par défaut : 30, valeurs: 10 - 2000
- Cette variable vous permet de contrôler le volume de mise en cache des sections utilisées précédemment dans l'espace de travail SQL.
L'espace de travail SQL contient des allocations, sous forme de sections, pour l'exécution de SQL. Chaque instruction SQL (statique ou dynamique) exécutée pour le compte d'une application doit conserver une copie unique de la section dans l'espace de travail SQL pour la durée d'exécution de cette instruction. Une fois l'exécution de l'instruction terminée, la section devient inactive et les allocations de mémoire associées à une section inactive peuvent être libérées ou elles peuvent rester mises en cache dans l'espace de travail SQL. Lorsqu'une nouvelle exécution de la même instruction SQL se produit à partir de n'importe quelle connexion, elle peut trouver une copie en mémoire cache de la section dans l'espace de travail SQL à partir d'une exécution précédente, ce qui permet de réduire les coûts associés à l'allocation et à l'initialisation d'une nouvelle copie de la section. De cette manière, l'espace de travail SQL contient à la fois des sections actives, correspondant aux instructions SQL en cours d'exécution, et des sections mises en cache qui ne sont pas en cours d'exécution.
La valeur de cette variable de registre indique le pourcentage d'allocations de mémoire qui peuvent rester mises en cache dans l'espace de travail SQL. Cette mise en cache est exprimée en pourcentage des allocations de mémoire pour les sections actives. Ainsi, par exemple, une valeur de 50 signifie que l'espace de travail SQL contient toutes les sections actives (en cours d'exécution) et jusqu'à 50% d'autres sections mises en cache précédemment exécutées qui peuvent être réutilisées. Vous pouvez ajuster le paramètre pour DB2_SQLWORKSPACE_CACHE en fonction de la quantité de l'espace de travail SQL que vous souhaitez rendre disponible pour la réutilisation. Par exemple, l'augmentation de la taille de cette variable peut entraîner des améliorations de performances pour les charges de travail OLTP. D'autre part, un paramètre plus élevé signifie également qu'il existe une augmentation de la taille du segment de mémoire partagée de l'application.Remarque: si le paramètre de configuration de la base de données appl_memory n'est pas défini sur AUTOMATIC, la taille de l'espace de travail SQL peut également être limitée par appl_memory et l'espace de travail SQL peut ne pas fournir autant de mise en cache que le paramètre DB2_SQLWORKSPACE_CACHE peut le permettre. Vous pouvez envisager d'augmenter appl_memory (ou de le définir sur AUTOMATIC) dans ce cas.Cette variable de registre n'est pas dynamique
- DB2_TRUST_MDC_BLOCK_FULL_HINT
- Systèmes d'exploitation : tous
- Valeur par défaut : OFF, valeurs : ON ou OFF
- Lorsque vous insérez des enregistrements dans une table MDC, Db2 recherche dans l'index de bloc composite des blocs ayant les mêmes valeurs de dimension que le nouvel enregistrement en cours d'insertion. Ces blocs sont ensuite vérifiés pour déterminer s'ils ont suffisamment d'espace libre pour le nouvel enregistrement. Pour tout bloc vérifié qui ne dispose pas de suffisamment d'espace disponible, Db2 définit le bit Full_Block dans l'index de bloc composite pour ce bloc. Si la liste des blocs d'une valeur de dimension spécifiée est longue et que la plupart de ces blocs sont pleins, une quantité importante de temps est consacrée à la recherche.
Lorsque la variable DB2_TRUST_MDC_BLOCK_FULL_HINT est définie, Db2 ignore la recherche d'espace libre dans tout bloc marqué avec le bit Full_Block dans l'index de bloc composite. Ce bit Full_Block n'est qu'un indice car il n'est effacé que lorsque le bloc entier est supprimé et que l'index de bloc composite est régénéré à l'aide de la commande REORG . En contrepartie une partie de l'espace libre peut être gaspillée si les suppressions sont exécutées de manière à vider partiellement les blocs plutôt que de les vider complètement avec la suppression par déploiement. Pour plus d'informations sur les suppressions de déploiement, voir la rubrique « Suppression de déploiement » dans la rubrique « Stratégies d'optimisation pour les tables MDC ».
- DB2_TRUSTED_BINDIN
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : OFF, ON ou CHECK
- Lorsque DB2_TRUSTED_BINDIN est activé, il accélère l'exécution des instructions de requête contenant des variables hôte dans une procédure mémorisée non isolée imbriquée.
Lorsque cette variable est activée, il n'y a pas de conversion du format SQLDA externe vers un format Db2 interne lors de la liaison des instructions SQL et XQuery contenues dans une procédure mémorisée non isolée intégrée. Cela accélère le traitement des instructions SQL et XQuery imbriquées.
Les types de données suivants ne sont pas pris en charge dans les procédures mémorisées non isolées lorsque cette variable est activée :
- DATE_TYPE_SQ
- SQL_TYP_TIME
- SQL_TYP_STAMP
- SQL_TYP_CGSTR
- SQL_TYP_BLOB
- SQL_TYP_CLOB
- SQL_TYP_DBCLOB
- SQL_TYP_CSTR
- SQL_TYP_LSTR
- SQL_TYP_BLOB_LOCATOR
- SQL_TYP_CLOB_LOCATOR
- SQL_TYP_DCLOB_LOCATOR
- SQL_TYP_BLOB_FILE
- SQL_TYP_CLOB_FILE
- SQL_TYP_DCLOB_FILE
- SQL_TYP_BLOB_FILE_OBSOLETE
- SQL_TYP_CLOB_FILE_OBSOLETE
- SQL_TYP_DCLOB_FILE_OBSOLETE
Si ces types de données sont rencontrés, une erreur SQLCODE -804, SQLSTATE 07002 est renvoyée.
Remarque: Le type de données et la longueur de la variable SQL d'entrée doivent correspondre exactement au type de données interne et à la longueur de l'élément correspondant. Pour les variables hôte, cette exigence sera toujours satisfaite. Cependant, pour les marqueurs de paramètre, des précautions doivent être prises pour s'assurer que les types de données correspondants sont utilisés. L'option CHECK peut être utilisée pour s'assurer que les types de données et les longueurs correspondent pour toutes les variables d'hôte d'entrée, mais cette option annule la plupart des améliorations de performances.Remarque: DB2_TRUSTED_BINDIN est obsolète et sera supprimé dans une édition ultérieure.
- DB2_USE_ALTERNATE_PAGE_CLEANING
- Systèmes d'exploitation : tous
- Default=Non défini, valeurs : ON ou OFF
- Cette variable indique si une base de données Db2 utilise l'autre méthode des algorithmes de nettoyage de page ou la méthode par défaut de nettoyage de page. Lorsque cette variable est définie sur ON, le système Db2 écrit les pages modifiées sur le disque, en gardant une longueur d'avance sur LSN_GAP et en recherchant les victimes de manière proactive. Cela permet aux nettoyeurs de page de mieux utiliser la bande passante d'entrée-sortie du disque disponible. Lorsque cette variable a la valeur ON, le paramètre de configuration de la base de données chngpgs_thresh n'est plus pertinent, car il ne contrôle pas l'activité de nettoyage de page.
- DB2_USE_ASYNC_FOR_MIRRORLOG
- Système d'exploitation: Unix
- Valeur par défaut : OFF, valeurs : ON | OFF
- L'activation de cette variable peut améliorer les performances d'écriture de journal pour les bases de données configurées avec un chemin de journal en miroir. L'amélioration des performances est obtenue par l'écriture asynchrone des données de journal dans le chemin miroir, de sorte que les écritures de journal actives et miroir se produisent en parallèle.
- Cette variable est disponible dans la version 11.1.4.4 et les versions plus récentes.
- Les modifications apportées à cette variable nécessitent la désactivation et la réactivation de la base de données.
- Db2 n'autorise pas l'utilisation de cette variable d'environnement sous Windows.
- Il n'est pas recommandé d'activer cette variable dans les environnements Solaris, car une dégradation des performances du journal des miroirs peut être observée.
Important: Lorsque vous activez la variable DB2_USE_ASYNC_FOR_MIRRORLOG sur des systèmes AIX , vérifiez que les ports d'achèvement d'E-S (IOCP) sont également activés. IOCP définit le mode de soumission d'E-S asynchrone AIX et la façon dont AIX avertit l'utilisateur lorsque l'entrée-sortie asynchrone est terminée. Comme la variable de journal miroir indique si la journalisation miroir utilise des E-S asynchrones ou des E-S synchrones, les performances de la journalisation miroir sont affectées.Dans Db2 11.1.4.4 et versions ultérieures, la journalisation miroir et IOCP sont activées. Cependant, lorsque IOCP est désactivé, l'utilisation d'E-S asynchrones ralentit les performances, ce qui a une incidence sur la journalisation miroir en raison de sa dépendance à l'IOCP.
- DB2_USE_BUFFERED_READ_FOR_ACTIVE_LOG
- Systèmes d'exploitation : tous
- Default=NO, valeurs : YES ou NO
- Cette variable indique s'il faut permettre une amélioration significative des performances pour le traitement d'annulation de grandes unités de travail, via l'utilisation autonome d'E-S en mémoire tampon lors de la lecture des données du fichier journal des transactions.
- Cette variable est disponible dans la version 11.1.4.4 et les versions plus récentes.
- Les modifications apportées à cette variable n'exigent pas un redémarrage de l'instance de base de données.
- DB2_USE_FAST_PREALLOCATION
- Système d'exploitation: AIX et Linux sur les systèmes de fichiers Veritas VxFS, JFS2, GPFS, ext4 (Linux uniquement) et xFS (Linux uniquement)
- Valeur par défaut: ON for Veritas VxFS, JFS2, GPFS, ext4 et xFS, Valeurs: ON ou OFF
- Permet à la fonction de système de fichiers de préallocation rapide de réserver de l'espace table et d'accélérer le processus de création ou de modification d'espaces table et de restauration de base de données volumineux. Cette amélioration de vitesse est implémentée à un faible coût delta de l'allocation d'espace réel lors de l'exécution lorsque des lignes sont insérées.
Pour désactiver la préallocation rapide, affectez à DB2_USE_FAST_PREALLOCATION la valeur OFF. Cela peut améliorer les performances d'exécution, au prix de temps de création d'espace table et de restauration de base de données plus lents, sur certains systèmes d'exploitation, en particulier AIX, lorsqu'il existe un volume important d'insertions et de sélections sur le même espace table. Notez qu'une fois la préallocation rapide désactivée, la base de données doit être redémarrée.
- DB2_USE_FAST_LOG_PREALLOCATION
- Système d'exploitation: AIX et Linux sur les systèmes de fichiers Veritas VxFS, JFS2, GPFS, ext4 (Linux uniquement) et xFS (Linux uniquement)
- Valeur par défaut : OFF, ON sous DB2_WORKLOAD=SAP, valeurs : ON ou OFF
- Permet à la fonction de système de fichiers de préallocation rapide de réserver de l'espace pour les fichiers journaux et d'accélérer le processus de création ou de modification de fichiers journaux volumineux, si le système de fichiers sous-jacent prend en charge cette fonction. Ce gain en vitesse se fait au prix d'une légère baisse de performance due à la nécessité d'allouer de l'espace
au moment de l'exécution, lorsque les enregistrements sont écrits dans de tels
fichiers journaux préalloués.
Pour activer la préallocation rapide des journaux, affectez à DB2_USE_FAST_LOG_PREALLOCATION la valeur ON.
- DB2_USE_IOCP
- Système d'exploitation: AIX
- Default=ON, valeurs : ON ou OFF
- Ces variables permettent l'utilisation des ports d'achèvement d'E-S AIX (IOCP) lors de la soumission et de la collecte de demandes d'E-S asynchrones (AIO). Cette fonction permet d'améliorer les performances dans un environnement NUMA (accès à la mémoire non uniforme) en évitant l'accès à la mémoire distante.
- DB2_4K_DEVICE_SUPPORT
- Systèmes d'exploitation : tous
- Default=OFF, valeurs : ON ou OFF
- Affectez à cette variable la valeur ON pour activer la prise en charge des unités de stockage qui utilisent une taille de secteur 4K. Ce paramètre ajuste la présentation de la mémoire des structures de données et le paramètre des opérations d'E-S disque pour être compatibles avec les exigences de ce type de stockage. Si vous activez ce paramètre dans un environnement configuré avec des unités de stockage qui utilisent une taille de secteur de 512 octets, les performances peuvent être dégradées.
- Cette variable est disponible à partir de la version 11.1.4.4 en tant qu'aperçu technique et n'est pas encore prise en charge dans les environnements de production jusqu'à nouvel ordre.
- Les modifications apportées à cette variable requièrent le redémarrage de l'instance de base de données.
- Les restrictions et limitations suivantes s'appliquent actuellement lorsque la prise en charge du secteur 4 ko est activée:
- L'utilisation des espaces table gérés par la base de données (DMS) configurés pour l'accès direct au disque (brut) n'est pas prise en charge.
- L'utilisation des espaces table gérés par le système (SMS) configurés avec NO FILESYSTEM CACHING n'est pas prise en charge.
- Il peut exister un impact sur les performances lors de l'accès aux données LOB, en fonction des caractéristiques de charge de travail.
- Il peut exister un impact sur les performances lors de la restauration d'images de sauvegarde ou de fichiers de copie de chargement qui ont été créés avant l'activation de la prise en charge du secteur de 4 Ko.
- Les images de sauvegarde et les fichiers de copie de chargement seront légèrement plus volumineux.
- Cette fonction n'est pas prise en charge pour les instances pureScale® .