J'ai un produit de reporting fournisseur exécutant des requêtes pour extraire des données de rapport, pas d'insertions, pas de mises à jour simplement en lisant des données.Une validation est-elle nécessaire pour une requête de sélection dans DB2?
Nous avons double notre taille de tas 3 fois et sommes maintenant à 1024 pages 4k, L'application fonctionnera bien pendant une semaine, puis nous commencerons à voir l'erreur DB2 SQL: SQLCODE: -954, SQLSTATE: 57011 indiquant le journal des transactions n'est pas en mesure d'accueillir la demande.
Ce n'est pas la taille des rapports car ils fonctionnent correctement après un recyclage. J'ai parlé avec un autre DBA à ce sujet. Il croit que le problème était dans une différence entre ORACLE et DB2 en ce que le code du fournisseur est merdique et ne pas émettre des validations sur les sélections. Cela provoque le nettoyage des références et s'accumule lentement comme une poubelle dans le tas.
Je voulais savoir si c'est exact car je pensais que seuls les insertions et les mises à jour nécessaires pour inclure des commits. Existe-t-il une documentation IBM sur ce sujet?
Nous recyclons actuellement sur une base hebdomadaire pour atténuer le problème, mais je voudrais avoir une bonne idée sur le problème avant de retourner au fournisseur leur demandant de modifier leur code.
merci alex, pas un DBA moi-même d'où la pensée seulement insère/met à jour les commits nécessaires. Merci pour l'exemple détaillé c'est beaucoup plus facile à voir maintenant. – Keibosh
Cela n'implique-t-il pas que les sélections sont exécutées dans une transaction? Si ce n'est pas le cas (et bien sûr, cela dépend beaucoup de choses qui n'ont pas été spécifiées), cela ne s'applique pas. –
@Harper, oui, chaque requête DB2 (selon la théorie générale de DB) s'exécute de manière transactionnelle (vous pouvez définir un mode où chaque transaction est auto-validée après chaque requête, mais choisir une terminaison explicite présente des avantages). –