Sybase - La FAQConsultez toutes les FAQ
Nombre d'auteurs : 1, nombre de questions : 77, dernière mise à jour : 8 février 2009 Ajouter une question
Question / réponses à tout ce que vous avez toujours voulu savoir sur Sybase ASE et ses dérivés sans jamais oser le demander
Grâce à l'outil Optdiag
Cas d'école
- Chaque nuit, des insertions de la journée sont faites dans une base décisionnelle via bcp.
- Chaque WE, les stats sont rejouées
- Chaque jour, les utilisateurs accèdent aux dernières données
Problème
- Lorsqu'une requête accède aux données de plus d'une semaine, les performances sont correctes
- Lorsqu'une requête accède aux données de la semaine en cours, les performances sont lamentables
Diagnostique
- Le dernier step de stat est à une date inférieure de la date intéressante => magic number => mauvaises perfs
Solution grâce à Optdiag
- Extraction des stats avec optdiag
- Modification du dernier échelon de date à date = date + 1 an
- Importation des stats
Code : | Sélectionner tout |
optdiag statistics histo..table_size -o /tmp/table_size.diag -Usa -P.... -Sserveur
Code : | Sélectionner tout |
optdiag statistics histo..table_size -i /tmp/table_size.diag -Usa -P.... -Sserveur
Il y a une kyrielle d'information disponible, et trop d'information tue l'information. Il s'agit donc d'activer les traces nécessaires et uniquement celles-ci.
En voici quelques-unes
Commandes | Descriptifs |
SET SHOWPLAN ON | Affiche le plan d'exécution de la requête |
SET STATISTICS IO ON | Affiche le nombre d'E/S nécessaires, que ce soit en mémoire/cache (logical io) ou en disque (physical io) |
SET STATISTICS TIME ON | Affiche le temps qui a été pris sur le serveur pour exécuter la requête |
SET TRACEON(3604) | Permet de retourner les messages envoyées normalement dans l'errorlog à l'écran |
sp_showplan | Permet d'afficher le plan d'exéciution d'une autre session active |
SET NOEXEC ON | Permet d'exécuter une précédure et de visualiser son plan sans qu'un impact ait lieu sur les données (pas d'exécution réelle) |
Pour une base ASE ayant des pages de 2K, il y a possibilité d'avoir des caches nommés de 2,4,8 ou/et 16K.
Des blocs de taille supérieures permettent le prefetch lors d'accès disques (monter plus d'une page avec un accès disque)
Pour débuter votre tuning sur de bonnes bases, commencez par
- 85% de l'espace cache disponible pour le default data cache (de 2K)
- 20% pour un cache nommé de 32K
- 5% pour n cache dédié au journaux de transaction (log, ou table syslogs) de 4K (il ous faudra malgré tout laisser quelques Mo en 2K)
Pour la base de données tempdb, si elle peut bénéficier de son propre cache, c'est tant mieux. Veuillez alors à lui attribuer du 2K et du 32K pour ses données... et ne pas omettre de lier son journal de transactions à votre cache de 4K.
- Monitorer l'activité en cours : via Sybase Monitor Server ou, depuis la version 12.5.0.3, via les tables MDA
- Monitorer l'activité passée : : via Sybase Historical Server ou, depuis la version 12.5.0.3, via les tables MDA
- Monitorer l'activité générale du serveur pour une période donnée : sp_sysmon
- Afficher le plan d'exécution d'une requête en cours : sp_showplan
- Vérifier les verrous en cours : sp_lock
- Information sur les deadlock : sp_configure deadlock, 1 puis édition de l'errorlog
- Cérifier les processus bloqués/bloquants : sp_who ou select * from master..sysprocesses
Oui, mais seulement depuis la version 12.
Attention ! Le OUTER JOIN peut avoir un comportement différent au *= en cas de condition posée sur la partie ouverte de la jointure, conformément à la définition SQL2
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.