Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.656 pregleda

Najnovija ↓

Proveriti iskoriscenost tabela ? 01.07.2009. u 00:42 · pre 211 meseci #1
imam sledeci problem, pa me zanima da li ovo uopste i moze da se uradi.

baza u MS SQL 2005. Ima 50-ak tabela, i 300-ak stored procedure.

imam neke tabele, za koje mislim da se ne koriste ni u jednoj stored proceduri, ali nisam bas siguran.

da li postoji neka sistemska funkcija u MS SQL, pomocu koje mogu da vidim, da li se neka tabela, koristi u bilo kojoj od ove 300 stored procedure ?

hvala unapred .

poz.
Re: Proveriti iskoriscenost tabela ? 01.07.2009. u 08:29 · pre 211 meseci #2
Code:

SELECT distinct o.name, o.type_desc, p.name, p.type_desc
FROM sys.sql_dependencies d
INNER JOIN sys.objects o
    ON d.object_id = o.object_id
INNER JOIN sys.objects p
    ON d.referenced_major_id = p.object_id


Pa u WHERE uslov dodas kao p.name tabelu koja te zanima, ili kao o.name proceduru koja te zanima.
Potpis
http://www.montaznekuce.rs
Re: Proveriti iskoriscenost tabela ? 01.07.2009. u 09:40 · pre 211 meseci #3
Pored ovoga obrati paznju na dinamicko kreiranje skripti ako ih imas u stored procedurama. Pretrazi tekstove procedura za sp_exec i analiziraj kod procedure koji formira sktriptu da vidis koje tabele se tu koriste.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Proveriti iskoriscenost tabela ? 01.07.2009. u 10:42 · pre 211 meseci #4
@Marvin: hvala puno za kod. Sacuvacu poruku, da imam ako mi nekada bude zatrebalo, ali, ja imam u bazi 300 stored proc. tako da bih morao 300 puta da izvrsim ovu naredbu.

@mmix: tako je, meni to treba, nesto kao 'search' opcija u teskt editoru .. da ta opcija/ugradjena sql funkcija 'protrci' kroz sve stored procedure, i da mi javi da li se u nekoj od njih nalazi ime tabele koju zadam.

pozdrav i hvala za pomoc
Re: Proveriti iskoriscenost tabela ? 01.07.2009. u 11:11 · pre 211 meseci #5
Marvin ti je dao dobar odgovor, samo nisi probao ;)

Ako hoces da proves da li se neka tablea koristi u procedurama prosiri njegov upit sa "WHERE p.Name = 'imeTabele'" i dobices kao rezultat sve storovane koje koriste tu tabelu. (ili prasan result set ako se tabela ne koristi).
Znaci uradice ti search.

Ali, sql server nema podrsku za pretrazivanje celog teksta tako da kod koji je Marvin dao vraca samo direktne zavisnosti o odredjenu tabelu (vidis da pretrazuje sys.sql_dependencies). S obzirom da je sistem toliko slozen kao sto kazes (300 sprocova) pretpostavljam da koristite source kontrolu za procedure, tako da bi jednostavan windows search u tom folderu trebalo da ti vrati tacniji rezultat. Ako nemate source kotrolu, a pri tome korisite dinamicki generisane upite, imate vecih problema od toga da li neka tabla stoji neiskoristena i ja se ne bih upustao u brisanje bilo cega.
Potpis
Every hamster has his day.
Re: Proveriti iskoriscenost tabela ? 01.07.2009. u 11:50 · pre 211 meseci #6
BRAVO !! To je ono sto mi treba.

Hvala Fedya (sto si imao vise strpljenja od mene da procitas Marvinov post) i hvala Marvinu !!!! na resenju problema.

pozdrav svima, svako dobro
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme