Problème
Des transactions lentes ou des blocages apparents lors des opérations multi-utilisateurs dans Maximo peuvent survenir si le verrouillage des pages n’est pas désactivé sur les tables et index.
Cause
- Lors de l’installation ou de la mise à niveau de Maximo (version 6 ou supérieure) sur SQL Server, le verrouillage des pages n’est pas désactivé par défaut.
- Le verrouillage des pages peut provoquer des problèmes de performances dans un environnement multi-utilisateurs.
Environnement
- Base de données : Microsoft SQL Server.
- Application : IBM Maximo.
Solution
Étape 1 : Connectez-vous à la base de données Maximo
- Utilisez SQL Server Management Studio (SSMS) pour vous connecter à la base de données Maximo.
Étape 2 : Génération des commandes pour désactiver le verrouillage des pages
- Redirigez la sortie de la requête vers un fichier :
- Dans SSMS, accédez à Query > Results To > Results to File.
- Exécutez la requête suivante : SELECT ‘sp_indexoption »’ + tablename + »’, »AllowPageLocks », »false » go’ FROM maxtable ORDER BY tablename;
- Cette requête génère une série de commandes sp_indexoption pour chaque table dans la base de données.
Étape 3 : Modifiez le fichier généré
- Ouvrez le fichier généré :
- Accédez à File > Open dans SSMS pour ouvrir le fichier.
- Nettoyez le fichier :
- Supprimez les lignes d’en-tête et les lignes de comptage des lignes (row count) au début et à la fin du fichier.
- Exemple d’une commande générée :
- La commande pour désactiver le verrouillage des pages pour une table ressemble à ceci : sp_indexoption ‘tablename’, ‘AllowPageLocks’, ‘false’ go
Étape 4 : Exécutez les commandes générées
- Sélectionnez toutes les commandes :
- Dans SSMS, accédez à Edit > Select All.
- Exécutez les commandes :
- Appuyez sur F5 pour exécuter toutes les commandes dans le fichier.
Résultat attendu
- Le verrouillage des pages est désactivé pour toutes les tables et leurs index dans la base de données Maximo.
- Une fois désactivé, le verrouillage des pages restera désactivé.
- Si la configuration de la base de données Maximo (Maximo Database Configuration) recrée une table ou un index, elle maintiendra le verrouillage des pages désactivé.
Remarque importante
- Cette opération doit être effectuée dans un environnement de test avant une mise en œuvre en production.
- Assurez-vous que vous disposez d’une sauvegarde récente de la base de données avant d’effectuer ces modifications.
Bonus : Automatisation via Script SQL
Si vous gérez régulièrement plusieurs bases de données Maximo, vous pouvez automatiser ce processus à l’aide d’un script SQL ou d’un script PowerShell pour générer et exécuter les commandes sp_indexoption. N’hésitez pas à demander de l’aide pour créer un tel script.