je dois traiter le rendu d'un dbcc showcontig SQL.
Le rendu est de ce genre:
Table : 'table3' (2686); index ID =3D 3, base de donn=E9es ID =3D 7
Analyse du niveau LEAF effectu=E9e.
- Pages analys=E9es................................: 1
- extensions analys=E9es...........................: 1
- extensions commut=E9es..........................: 0
- Moy des pages par extension...............: 1.0
- Densit=E9 d'analyse [meilleure valeur du compte r=E9el].......: 100.00%
[1:1]
- Fragmentation d'analyse logique..: 0.00%
- Fragmentation d'analyse d'extension..: 0.00%
- Moy octets libres par page.....................: 8094.0
- Densit=E9 de page moy (pleine)...........: 0.00%
Je souhaite avoir le nom de la table lorsque la Densit=E9 d'analyse est
inf=E9rieure =E0 90%
J'ai essay=E9 avec grep et =E7a me semble =EAtre la mauvaise piste.
J'ai essay=E9 avec awk, et =E7a semble mieux convenir, mais il me manque
quelques chose.
cat dbcc_showcontig | awk ' $1=3D=3D"Table" {table =3D $3;} $2=3D=3D"Densit=
=E9"
AND $3=3D=3D"d'analyse" AND $9<90% { print table; }'
Mais:
-je ne sais pas si awk accepte "AND"
-je ne sais pas si je compte bien les champs
-je ne sais pas comment accepter l'apostrophe de "d'analyse"
-je ne sais pas comment g=E9rer le "plus petit que" avec awk
en entree d'awk, le sed te ramene : Table : 'table1' (2686); index ID = 3, base de données ID = 7- Densité d'analyse [meilleure valeur du compte réel] : 60 00%
Bonjour,
je dois traiter le rendu d'un dbcc showcontig SQL.
Le rendu est de ce genre: Table : 'table3' (2686); index ID = 3, base de données ID = 7 Analyse du niveau LEAF effectuée. - Pages analysées................................: 1 - extensions analysées...........................: 1 - extensions commutées..........................: 0 - Moy des pages par extension...............: 1.0 - Densité d'analyse [meilleure valeur du compte réel].......: 100.00% [1:1] - Fragmentation d'analyse logique..: 0.00% - Fragmentation d'analyse d'extension..: 0.00% - Moy octets libres par page.....................: 8094.0 - Densité de page moy (pleine)...........: 0.00%
Je souhaite avoir le nom de la table lorsque la Densité d'analyse est inférieure à 90%
J'ai essayé avec grep et ça me semble être la mauvaise piste.
J'ai essayé avec awk, et ça semble mieux convenir, mais il me manque quelques chose. cat dbcc_showcontig | awk ' $1=="Table" {table = $3;} $2=="Densité" AND $3=="d'analyse" AND $9<90% { print table; }'
Mais: -je ne sais pas si awk accepte "AND" -je ne sais pas si je compte bien les champs -je ne sais pas comment accepter l'apostrophe de "d'analyse" -je ne sais pas comment gérer le "plus petit que" avec awk
en entree d'awk, le sed te ramene :
Table : 'table1' (2686); index ID = 3, base de données ID = 7- Densité
d'analyse [meilleure valeur du compte réel] : 60 00%
Bonjour,
je dois traiter le rendu d'un dbcc showcontig SQL.
Le rendu est de ce genre:
Table : 'table3' (2686); index ID = 3, base de données ID = 7
Analyse du niveau LEAF effectuée.
- Pages analysées................................: 1
- extensions analysées...........................: 1
- extensions commutées..........................: 0
- Moy des pages par extension...............: 1.0
- Densité d'analyse [meilleure valeur du compte réel].......: 100.00%
[1:1]
- Fragmentation d'analyse logique..: 0.00%
- Fragmentation d'analyse d'extension..: 0.00%
- Moy octets libres par page.....................: 8094.0
- Densité de page moy (pleine)...........: 0.00%
Je souhaite avoir le nom de la table lorsque la Densité d'analyse est
inférieure à 90%
J'ai essayé avec grep et ça me semble être la mauvaise piste.
J'ai essayé avec awk, et ça semble mieux convenir, mais il me manque
quelques chose.
cat dbcc_showcontig | awk ' $1=="Table" {table = $3;} $2=="Densité"
AND $3=="d'analyse" AND $9<90% { print table; }'
Mais:
-je ne sais pas si awk accepte "AND"
-je ne sais pas si je compte bien les champs
-je ne sais pas comment accepter l'apostrophe de "d'analyse"
-je ne sais pas comment gérer le "plus petit que" avec awk
en entree d'awk, le sed te ramene : Table : 'table1' (2686); index ID = 3, base de données ID = 7- Densité d'analyse [meilleure valeur du compte réel] : 60 00%
Bonjour,
je dois traiter le rendu d'un dbcc showcontig SQL.
Le rendu est de ce genre: Table : 'table3' (2686); index ID = 3, base de données ID = 7 Analyse du niveau LEAF effectuée. - Pages analysées................................: 1 - extensions analysées...........................: 1 - extensions commutées..........................: 0 - Moy des pages par extension...............: 1.0 - Densité d'analyse [meilleure valeur du compte réel].......: 100.00% [1:1] - Fragmentation d'analyse logique..: 0.00% - Fragmentation d'analyse d'extension..: 0.00% - Moy octets libres par page.....................: 8094.0 - Densité de page moy (pleine)...........: 0.00%
Je souhaite avoir le nom de la table lorsque la Densité d'analyse est inférieure à 90%
J'ai essayé avec grep et ça me semble être la mauvaise piste.
J'ai essayé avec awk, et ça semble mieux convenir, mais il me manque quelques chose. cat dbcc_showcontig | awk ' $1=="Table" {table = $3;} $2=="Densité" AND $3=="d'analyse" AND $9<90% { print table; }'
Mais: -je ne sais pas si awk accepte "AND" -je ne sais pas si je compte bien les champs -je ne sais pas comment accepter l'apostrophe de "d'analyse" -je ne sais pas comment gérer le "plus petit que" avec awk
Avez vous des solutions pour tout ça?
Merci
Cyrille Lefevre
J'ai essayé avec awk, et ça semble mieux convenir, mais il me manque quelques chose. cat dbcc_showcontig | awk ' $1=="Table" {table = $3;} $2=="Densité" AND $3=="d'analyse" AND $9<90% { print table; }'
tu n'étais pas loin...
Mais: -je ne sais pas si awk accepte "AND"
=> &&
-je ne sais pas si je compte bien les champs
on compte bien à partir de 1 $0 => toute la ligne une alternative est $NF pour le dernier champ, $(NF - 1) pour l'avant dernier, etc.
-je ne sais pas comment accepter l'apostrophe de "d'analyse"
n'en met pas :) ou bien utilise ~ /d.analyse/ au lieu de == /.../
-je ne sais pas comment gérer le "plus petit que" avec awk
le pb est surtout le % qu'il faut virer, sinon, comparaison de type chaine au lieu de numerique
PS : le LANG=C devant awk, c'est pour être sur que le séparateur de flottant est bien '.' et non ',' (comme en francais si LANG vaut qqc comme fr_FR, etc.)
Regards, Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.
J'ai essayé avec awk, et ça semble mieux convenir, mais il me manque
quelques chose.
cat dbcc_showcontig | awk ' $1=="Table" {table = $3;} $2=="Densité"
AND $3=="d'analyse" AND $9<90% { print table; }'
tu n'étais pas loin...
Mais:
-je ne sais pas si awk accepte "AND"
=> &&
-je ne sais pas si je compte bien les champs
on compte bien à partir de 1
$0 => toute la ligne
une alternative est $NF pour le dernier champ, $(NF - 1) pour
l'avant dernier, etc.
-je ne sais pas comment accepter l'apostrophe de "d'analyse"
n'en met pas :) ou bien utilise ~ /d.analyse/ au lieu de == /.../
-je ne sais pas comment gérer le "plus petit que" avec awk
le pb est surtout le % qu'il faut virer, sinon, comparaison
de type chaine au lieu de numerique
PS : le LANG=C devant awk, c'est pour être sur que le séparateur
de flottant est bien '.' et non ',' (comme en francais si LANG
vaut qqc comme fr_FR, etc.)
Regards, Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
J'ai essayé avec awk, et ça semble mieux convenir, mais il me manque quelques chose. cat dbcc_showcontig | awk ' $1=="Table" {table = $3;} $2=="Densité" AND $3=="d'analyse" AND $9<90% { print table; }'
tu n'étais pas loin...
Mais: -je ne sais pas si awk accepte "AND"
=> &&
-je ne sais pas si je compte bien les champs
on compte bien à partir de 1 $0 => toute la ligne une alternative est $NF pour le dernier champ, $(NF - 1) pour l'avant dernier, etc.
-je ne sais pas comment accepter l'apostrophe de "d'analyse"
n'en met pas :) ou bien utilise ~ /d.analyse/ au lieu de == /.../
-je ne sais pas comment gérer le "plus petit que" avec awk
le pb est surtout le % qu'il faut virer, sinon, comparaison de type chaine au lieu de numerique
PS : le LANG=C devant awk, c'est pour être sur que le séparateur de flottant est bien '.' et non ',' (comme en francais si LANG vaut qqc comme fr_FR, etc.)
Regards, Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.