Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/03/2007, 12h59   #1
Nouveau Membre du Club
 
Jean-Philippe SARASY
Inscription : mars 2007
Messages : 131
Détails du profil
Informations personnelles :
Nom : Jean-Philippe SARASY

Informations forums :
Inscription : mars 2007
Messages : 131
Points : 38
Points : 38
Par défaut [ASE]Gestion base tempdb

Bonjour

Je pense que cette question a deja du etre posée mais je n'ai rien trouvé de rellement interressant sur le sujet.

J'ai un probleme de remplissage de tempdb sur un serveur de production

Par chance, j'ai identifier le process qui poser probleme. Mais comme je dis, ca a été au pif complet.
Y a t il une methode "logique" de gerer un remplissage de tempdb en live.
En fait, j'ai du mal a identifier un process remplissant tempdb a cause d'un tri, d'un regroupement, d'un agregat....tout process autre qu'une simple table temporaire qui grossit (identifiable par son spid).


Pour info, je suis en 12.5.3 et ma requete problematique etait un curseur provenant d'un ETL (genio)


Merci d'avance de vos reponses


jeeps64
jeeps64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 13h30   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
L'identification du ou des spid qui consomment beaucoup de place dans tempdb est assez difficile.

Une technique qui peut marcher est de positionner des "soft limits" via le "resource governor".

Par example:

Code :
1
2
3
 
sp_add_resource_limit NULL, NULL, 'at all times', tempdb_space, 10000, 2, 1, 1
go
ce qui lancerait un warning chaque fois qu'une session utilise plus de 10000 pages dans tempdb.

En 12.5.3 on peut aussi activer le traceflag 3662 qui imprime le text SQL qui cause la violation de la limite.

Je suggère évidemment de mettre en place ce genre de chose dans un environnement de test avant d'aller jouer sur la production...

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 14h00   #3
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Quelques précisions...

On ne peut pas mettre NULL pour le login et l'application - il faut spécifier au moins un des deux.

Ensuite, si la limit est franchie un message d'erreur est envoyer vers le client:
Code :
1
2
3
4
 
Msg 11056, Level 17, State 1
Server 'DBA_SQL', Procedure 'get_daily_table_growth', Line 100
Exceeded tempdb space LIMIT of 1000 pages.
Ce même message est aussi envoyé dans l'error log du dataserver.

Si l'appli n'est pas codée pour traiter le message correctement il pourrait évidemment y avoir des problèmes pour les utilisateurs - donc à utiliser avec prudence...

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 16h21   #4
Nouveau Membre du Club
 
Jean-Philippe SARASY
Inscription : mars 2007
Messages : 131
Détails du profil
Informations personnelles :
Nom : Jean-Philippe SARASY

Informations forums :
Inscription : mars 2007
Messages : 131
Points : 38
Points : 38
Voici ce que j'ai mis en place :
1>
2> sp_configure 'allow resource'
3> go
Parameter Name Default Memory Used Config Value Run Value Unit Type
------------------------------ ----------- ----------- ------------ ----------- -------------------- ----------
allow resource limits 0 #1128 1 1 switch static


avec un reboot du server


1> sp_help_resource_limit
2> go
name appname rangename rangeid limitid limitvalue enforced action scope
------------------------------ ------------------------------ ------------------------------ ------- ------- ----------- -------- ------ -----
monlogin NULL at all times 1 3 100 2 1 1

rangeid 3 = row count


C:\>isql -Umonlogin -SD_NAM -w500
Password:
1> set rowcount 300
2> go
1> select * into #tt from Base..ma _table
2> go
(300 rows affected)


et la, rien !!!
J'ai oublié quelque chose ?

Merci

jeeps64
jeeps64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 17h34   #5
Nouveau Membre du Club
 
Jean-Philippe SARASY
Inscription : mars 2007
Messages : 131
Détails du profil
Informations personnelles :
Nom : Jean-Philippe SARASY

Informations forums :
Inscription : mars 2007
Messages : 131
Points : 38
Points : 38
ca marche ... désolé

Merci encore de l'info

jeeps64
jeeps64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h47.


 
 
 
 
Partenaires

Hébergement Web