SQL czy procedura jest używana

SQL czy procedura jest używana
LE
  • Rejestracja:około 10 lat
  • Ostatnio:8 miesięcy
  • Postów:68
0

Witam,
Mam taki problem, mam w bazie powiedzmy 100 procedur i chce sie dowiedziec która procedura jest uzywana bądz nie używana, po prostu chce wiedziec które procedury mogę usunąć i nie wpłynie to na inne procesy, czy da sie to jakos sprawdzic w tabelach systemowych bądz w jakims innym miejscu? niestety nie mam załozonych logow w tych procedurach wiec nie sprawdzę w ten sposów, a nie widzi mi sie teraz alterować 100 procedur i dodawac im inserta do logów.

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
0

co to znaczy "używana"? Bo zdajesz sobie sprawę, że daną procedurę może wywoływać aplikacja a nie inna procedura czy trigger


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
LE
  • Rejestracja:około 10 lat
  • Ostatnio:8 miesięcy
  • Postów:68
0

używana w sensie czy ktoś/cos jąwywołało, np jakis job, dts, aplikacja, trigger, czy nawet ktos z "palca"

spartanPAGE
  • Rejestracja:około 12 lat
  • Ostatnio:około 21 godzin
0
abrakadaber
abrakadaber
czy to aby na pewno odpowiedz do tego wątku?
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
3

zobacz coś takiego

Kopiuj
SELECT o.name, 
       ps.last_execution_time 
FROM   sys.dm_exec_procedure_stats ps 
INNER JOIN 
       sys.objects o 
       ON ps.object_id = o.object_id 
WHERE  DB_NAME(ps.database_id) = '' 
ORDER  BY 
       ps.last_execution_time DESC 

a musisz mieć wersję min 2008


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
edytowany 1x, ostatnio: abrakadaber
LE
  • Rejestracja:około 10 lat
  • Ostatnio:8 miesięcy
  • Postów:68
0

abrakadaber dzieki, wygląda na to że działa :)

to może macie coś jeszcze na temat tabel?? czy coś odczytywało dane z nich, czy przeprowadzano na nich operacje :)

edytowany 1x, ostatnio: leonkuczma
EroSanin
podziękowac można kciukiem w góre :)
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
1

Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
LE
  • Rejestracja:około 10 lat
  • Ostatnio:8 miesięcy
  • Postów:68
0

No ok to ostatnie pytanie :)

Kopiuj
SELECT sch.name
	   ,o.name
       ,ps.last_execution_time
	   ,ps.execution_count
FROM   sys.dm_exec_procedure_stats ps 
INNER JOIN sys.objects o 
       ON ps.object_id = o.object_id
INNER JOIN sys.procedures p
	   ON	ps.object_id=p.object_id
INNER JOIN sys.schemas sch
	   ON	sch.schema_id = p.schema_id
--INNER JOIN sys.sysusers u
--		 on	u.sid = ps.database_id
WHERE  DB_NAME(ps.database_id) = 'BAZA_1' 
ORDER  BY ps.last_execution_time DESC 

tu fajnie mi wyswietla schemat | nazwe procedury | ostatnie uruchomienie | ilość uruchomien a chciałbym jeszcze miec nazwe użytkownika który ostatni odpalil procedure
niby userID znajdują sie w tych tabelach i nazwy userów ale nie mam po czym z joinowac z tymi procedurami co mam wyzej. Ewentualnie wziałebym jakas tabele w której jest objectID procedury i userID ale nie wiem jaka tabela ma obie te wartośći.

Kopiuj
select * from sys.sysusers
select * from sys.sysoledbusers

jakieś pomysły?

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
0

obawiam się, że tego już nie wyciągniesz


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
LE
  • Rejestracja:około 10 lat
  • Ostatnio:8 miesięcy
  • Postów:68
0

Ok, w każdym razie dziekuje wszystkim za pomoc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.