Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de 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 08/08/2007, 14h34   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2005
Messages : 35
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : octobre 2005
Messages : 35
Points : 10
Points : 10
Par défaut [ASE]Utilisation d'une temporary database

Bonjour,

afin d'estimer au mieux la taille d'une temporary database, je cherche à déterminer le "pique" de l'espace occupé dans celle-ci pendant un temps donné.
pline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 09h19   #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
C'est quelque chose d'assez difficile, malheureusement.

Tu peux faire du polling sur master..sysusages, ou tu peux mettre en place des proc sp_thresholdaction qui ne font que imprimer le nombre de pages utilisées (ou libre), ou encore utililser le resource governor en mode "warning" pour faire quelque chose de similaire.

Le plus simple est probablement de mettre en place une sp_thersholdaction, qqch du genre (code non testé!):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
USE sybsystemprocs
go
 
 
IF object_id('sp_tmpthresholdaction') != NULL
begin
    print "Dropping proc sp_tmpthresholdaction"
    DROP proc sp_tmpthresholdaction
end
go
 
 
CREATE procedure sp_tmpthresholdaction
    @dbname varchar(30),
    @segmentname varchar(30),
    @free_space int,
    @STATUS int
AS
 
      raiserror 99999 "THRESHOLD WARNING: database '%1!', segment '%2!' at '%3!' pages", @dbname, @segmentname, @free_space
 
 
go
 
-- Mettre des thresholds dans tempdb:
USE tempdb
go
-- le troisième argument (100000) est le nombre de pages restantes
sp_addthreshold tempdb, 'default', 100000, sp_tmpthresholdaction
go
sp_addthreshold tempdb, 'default', 200000, sp_tmpthresholdaction
go
etc...
go
Ensuite lorsqu'un seuil est atteint un message est imprimé dans la log Sybase.

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/08/2007, 13h47   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2005
Messages : 35
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : octobre 2005
Messages : 35
Points : 10
Points : 10
QU'entuends-tu par faire du polling sus sysusages ?
pline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 14h31   #4
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
Quelque chose dans le genre:
Code :
1
2
 
SELECT sum(curunreservedpgs(dbid, lstart, unreservedpgs)) FROM sysusages WHERE dbid=2
ce qui donne l'espace libre (en pages) dans la dbid 2 (tempdb).

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/08/2007, 14h50   #5
Candidat au titre de Membre du Club
 
Inscription : octobre 2005
Messages : 35
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : octobre 2005
Messages : 35
Points : 10
Points : 10
tu veux dire qu'il faudrait que je lance cette requête toutes les secondes par exemple.

mais il n'est pas sûr que je n'ai pas mon pique entre deux lancement de cette reqûete.

je crois que je vais opter pour les seuils car en les multipliant, je pourrais savoir si mon pique se trouve entre deux seuils (entre celui qui s'est déclenché et celui qui ne s'est pas déclenché.)

je teste ça et je te dit mon résultat.
pline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 15h18   #6
Candidat au titre de Membre du Club
 
Inscription : octobre 2005
Messages : 35
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : octobre 2005
Messages : 35
Points : 10
Points : 10
Re bonjour,

j'ai créé la petite procédure stockée suivante pour aider à déterminer l'utilisation d'un segment (qui peut être celui d'une tempdb). Elle permet de créer des seuils dans un intervalle de pages restantes avec un incrément defini dans cet intervalle.
Les résultats d'accès des seuils sont placés dans une table.
Une fois qu'on l'a exécuté, il suffit de vider le segment concerné, d'exécuter son processus, de vérifier dans la table créer les seuils qui ont été atteint pour estimer le besoin qui est entre le dernier seuil atteint et le premier non atteint. On peut ensuite finaliser en relancer toute la procédure sur un intervalle ainsi résuit.
Remarque: la procédure stockée permet également de créer une procédure stockée qui va tout suprrimer (seuils, table résultat, procédure exécutée sur seuil). Elle simplifie bien les choses.

seuil.sql

Je ne définie pas cette discussion comme résolu car si des personnes veulent critiquer la solution ou l'écriture de la procédure stockée, qu'elles n'hésitent pas.
pline 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 10h37.


 
 
 
 
Partenaires

Hébergement Web