Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

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