Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 10-03-2010 14:07:35

DrHouse  
Membre
Lieu: Sophia-Antipolis
Date d'inscription: 04-09-2008
Messages: 7
Pépites: 11,046
Banque: 0

[ASTUCES] SYBASE 12.5 : petites requetes magiques

SYBASE 12.5

1 ) Procédure stockée en cours d'exécution par un user

-> récupérer le spid par un sp_who
-> exécuter la requete suivante :

Code: mssql

select name from master..sysprocesses s1,sysobjects s2
where spid= <spid>
and s1.id = s2.id


2 ) Tables temporaires en cours d'utilisation par un utilisateur

-> récupérer le spid par un sp_who
-> exécuter la requete suivante :

Code: mssql

  select name,s.id from tempdb..sysobjects s,master..syslocks m
  where s.id=m.id
  and m.spid=<spid>


3 ) Pour savoir sur quelles tables (non temporaires) un user est en train de travailler

-> récupérer le spid par un sp_who
-> exécuter la requete suivante

Code: mssql

  select name,s.id from sysobjects s,master..syslocks m
  where s.id=m.id
  and m.spid=<spid>


4) Pour savoir quel est le volume d'une table temporaire utilisée par un process à un instant t (pratique pour deceller des pb de volumetrie sur les batchs)

Exemple d'utilisation :
le process A bloque sur la procédure P on veut connaitre le nombre de lignes dans les tables tempos utilisées par le process

a) on récupère le spid_id par un sp_who

Code: mssql

sp_who "login_qui _a_lancé_le_porcess_A"


b) On recherche sur quelle tempdb le process  A travaille

Code: mssql

sp_tempdb 'who',tempdb


c) Quand on a trouvé le tempdb utilisé par le process A on tape

Code: mssql

use tempdb  (avec le tempsdb trouvé trouvé en 2 )


d) on passe la requete suivante :

Code: mssql

select u.name, o.name
,rowtotal   = sum(rowcnt(i.doampg)) 
,reservedKB = sum((reserved_pgs(i.id, i.doampg) +
                               reserved_pgs(i.id, i.ioampg)) * (low / 1024) )
,dataKB     = sum( data_pgs(i.id, i.doampg) * (low / 1024))
,indexKB    = sum(data_pgs(i.id, i.ioampg) * (low / 1024))
,unusedKB   = sum( ((reserved_pgs(i.id, i.doampg) +
                                     reserved_pgs(i.id, i.ioampg)) -
                                    (data_pgs(i.id, i.doampg) +
                                     data_pgs(i.id, i.ioampg)) ) * (low / 1024))
from sysindexes i noholdlock
join sysobjects o noholdlock
  on o.type = 'U'
 and o.id = i.id
join sysusers u noholdlock
  on o.uid = u.uid
join master.dbo.spt_values d noholdlock
  on d.number = 1
 and d.type = "E"
group by u.name, o.name
order by u.name, o.name


5) le plan d'execution d'une requete

Code: mssql

sp_showplan <spid>,null,null,null

Il vaut mieux 1 qui sait que 10 qui cherchent, bon des fois on est 11 à chercher ...

Hors ligne

 

#2 10-03-2010 14:37:28

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [ASTUCES] SYBASE 12.5 : petites requetes magiques

   +10 000


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 10-03-2010 17:00:30

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCES] SYBASE 12.5 : petites requetes magiques


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22