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 16/09/2008, 16h12   #1
Futur Membre du Club
 
Inscription : mai 2007
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 25
Points : 19
Points : 19
Par défaut [ASE 15.0.2] Taille allouée et libre par devices

Bonjour,

Je suis actuellement sous Sybase ASE 15.0.2 et je dois trouver un équivalent à cette requête fonctionnant sous ASE 12.5.X

Récupération des noms logiques, physiques des bases de données, en indiquant la place Totale, allouée et libre.

Sous ASE 12.5.X
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
 
SELECT 
nom_logique=substring(d.name,1,25), 
nom_physique=substring(d.phyname,1,40), 
vdevno=substring(convert(char(3),d.low/power(2,24)),1,3), 
taille=convert(varchar(5),(d.high - d.low +1)*2/1024)+ ' Mo', 
alloue=convert(varchar(5),isnull((sum(u.size) /(1048576./sv.low)),0))+ ' Mo', 
libre=convert(varchar(5),(d.high - d.low +1)*2/1024 
- isnull((sum(u.size)/(1048576./sv.low)),0))+' Mo' 
 
FROM master.dbo.sysdevices d, master.dbo.sysusages u, master.dbo.spt_values sv 
 
WHERE STATUS & 2 =2 
AND u.vstart/power(2,24)=*d.low/power(2,24) 
AND sv.number = 1 
AND sv.type = 'E' 
 
GROUP BY substring(d.name,1,12), 
substring(d.phyname,1,17), 
d.low/power(2,24), 
sv.low, 
(d.high - d.low +1) * 2/1024 
 
ORDER BY vdevno
 
go
Citation:
nom_logique nom_physique vdevno taille alloue libre
------------------------- ---------------------------------------- ------ -------- -------- --------
master /dev/vx/dsk/datadg/lv_sql40ddx_master 0 30 Mo 13.00 Mo 17.00 Mo
sysprocsdev /dev/vx/dsk/datadg/lv_sql40ddx_sysprocs 1 160 Mo 160.0 Mo 0.000 Mo
dv_dbccdb_dat_01 /dev/vx/rdsk/datadg/lv_dbccdb_dat_12-5_0 2 300 Mo 300.0 Mo 0.000 Mo
dv_dbccdb_log_01 /dev/vx/rdsk/datadg/lv_dbccdb_log_12-5_0 3 100 Mo 100.0 Mo 0.000 Mo
dv_lk_refbo_aa_dat_01 /dev/vx/rdsk/datadg/lv_lk_12_5_refbo_dat 7 500 Mo 500.0 Mo 0.000 Mo
dv_lk_refbo_aa_log_01 /dev/vx/rdsk/datadg/lv_lk_12_5_refbo_log 8 100 Mo 100.0 Mo 0.000 Mo
Avec la même requête sous ASE 15.0.2

Le résultat est le suivant :

Citation:
nom_logique nom_physique vdevno taille alloue libre
------------------------- ---------------------------------------- ------ -------- -------- --------
systemdbdev /sybase/sql01ase_systemdb/sybsystemdb.da 0 3 Mo 1063. Mo -1060 Mo
master /sybase/s1502_1/data/master.dat 0 30 Mo 1063. Mo -1033 Mo
dv_ihmic_log_01 /sybase/ihmic_log_01/dv_ihmic_log_01.dat 0 80 Mo 1063. Mo -983. Mo
dv_dbccdb_log_01 /sybase/dv_dbccdb_log_01/dv_dbccdb_log01 0 80 Mo 1063. Mo -983. Mo
dv_bb_ihmic_aa_log_01 /sybase/ihmic_log_01/ihmic_log_01.dat 0 85 Mo 1063. Mo -978. Mo
sysprocsdev /sybase/s1502_1/data/sysprocs.dat 0 132 Mo 1063. Mo -931. Mo
dv_dbccdb_dat_01 /sybase/dv_dbccdb_dat_01/dv_dbccdb_dat_0 0 150 Mo 1063. Mo -913. Mo
dv_ihmic_dat_01 /sybase/ihmic_dat_01/dv_ihmic_dat_01.dat 0 595 Mo 1063. Mo -468. Mo
On remarque très nettement que les valeurs Taille, Alloué et Libre sont incorrectes.

A travers mes différents tests et documentation, je remarque bien que les tables sysdevices et sysusages ont subi une modification concernant les low et high, remplacé par vdevno.

Une première ébauche me permet d'écrire ceci en ASE 15

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SELECT 
	Nom_Logique=convert(char(40),db_name(u.dbid)),
	Taille=convert(char(10),sum(size / (power(2,20)/@@maxpagesize))) + ' Mo'
FROM
	sysusages u,
	sysdevices s
WHERE
	s.STATUS & 2 = 2
	AND s.vdevno = u.vdevno
GROUP BY db_name(u.dbid)
ORDER BY
	db_name(u.dbid)
go
Ce qui me ressort :

Citation:
Nom_Logique Taille
---------------------------------------- -------------
bb_ihmic_aa 675 Mo
dbccdb 230 Mo
master 13 Mo
model 3 Mo
sybsystemdb 6 Mo
sybsystemprocs 132 Mo
tempdb 4 Mo
Concernant la table spt_values, je ne trouve vraiment pas beaucoup de documentation sur internet.

Pouvez-vous m'éclairer sur low, high vdevno et spt_values ? ;-)

Cordialement,

Mickaël.
Gamez29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2008, 11h36   #2
Futur Membre du Club
 
Inscription : mai 2007
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 25
Points : 19
Points : 19
Après investigation, la colonne LOW est toujours à zéro et c'est tout à fait normal.

La requête sous ASE 15.x est la suivante :

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
 
SELECT
nom_logique=substring(d.name,1,25),
nom_physique=substring(d.phyname,1,40),
 
taille=convert(varchar(5),(d.high - d.low +1)*2/1024)+ ' Mo',
 
alloue=convert(varchar(5),isnull((sum(u.size) /(1048576./sv.low)),0))+ ' Mo',
 
 
libre=convert(varchar(5),(d.high - d.low +1)*2/1024 - isnull((sum(u.size)/(1048576./sv.low)),0))+' Mo'
 
FROM master.dbo.sysdevices d, master.dbo.sysusages u, master.dbo.spt_values sv
 
WHERE STATUS & 2 =2
AND u.vdevno=*d.vdevno
AND sv.number = 1
AND sv.type = 'E'
 
GROUP BY substring(d.name,1,12), substring(d.phyname,1,17), d.low/power(2,24), sv.low,
 
(d.high - d.low +1) * 2/1024
 
go
La jointure externe est modifiée afin de faire correspondre le vdevno de sysusages et de sysdevices.

La sortie est la suivate :
Citation:
nom_logique nom_physique taille alloue libre
------------------------- ---------------------------------------- -------- -------- --------
master /sybase/s1502_1/data/master.dat 30 Mo 23.00 Mo 7.000 Mo
sysprocsdev /sybase/s1502_1/data/sysprocs.dat 132 Mo 132.0 Mo 0.000 Mo
systemdbdev /sybase/sql01ase_systemdb/sybsystemdb.da 3 Mo 3.000 Mo 0.000 Mo
dv_ihmic_dat_01 /sybase/ihmic_dat_01/dv_ihmic_dat_01.dat 595 Mo 595.0 Mo 0.000 Mo
dv_bb_ihmic_aa_log_01 /sybase/ihmic_log_01/ihmic_log_01.dat 85 Mo 0.000 Mo 85.00 Mo
dv_ihmic_log_01 /sybase/ihmic_log_01/dv_ihmic_log_01.dat 80 Mo 80.00 Mo 0.000 Mo
dv_dbccdb_dat_01 /sybase/dv_dbccdb_dat_01/dv_dbccdb_dat_0 150 Mo 150.0 Mo 0.000 Mo
dv_dbccdb_log_01 /sybase/dv_dbccdb_log_01/dv_dbccdb_log01 80 Mo 80.00 Mo 0.000 Mo
Gamez29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h52.


 
 
 
 
Partenaires

Hébergement Web