|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Jean-Philippe SARASY Inscription : mars 2007 Messages : 131 ![]() |
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 |
|
00
|
|
|
#2 | ||
![]() ![]() |
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 :
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 |
||
|
|
00
|
|
|
#3 | ||
![]() ![]() |
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 :
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 |
||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Jean-Philippe SARASY Inscription : mars 2007 Messages : 131 ![]() |
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 |
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Jean-Philippe SARASY Inscription : mars 2007 Messages : 131 ![]() |
ca marche ... désolé
Merci encore de l'info jeeps64 |
|
00
|
Copyright © 2000-2012 - www.developpez.com