Vra

Ek is besig met'n SQL Server 2000 databasis wat waarskynlik het'n paar dosyn tafels wat nie meer verkry.Ek wil graag om te duidelik uit die data dat ons nie meer nodig het om te wees die handhawing, maar ek is nie seker hoe om te identifiseer watter tafels te verwyder.

Die databasis is gedeel deur verskillende programme, so ek kan nie 100% vol vertroue dat die hersiening van hierdie sal gee my'n volledige lys van die voorwerpe wat gebruik word.

Wat ek wil graag om te doen, as dit moontlik is, is om te kry'n lys van tabelle wat nie toeganklik vir'n sekere tydperk van die tyd.Geen lui, geen skryf.Hoe moet ek hierdie benadering?

Was dit nuttig?

Oplossing

MSSQL2000 sal jy nie gee dat die soort van inligting. Maar 'n manier wat jy kan identifiseer wat tafels gebruik word (en dan aflei watter nie) is om die SQL Profiler gebruik, om al die navrae wat gaan na 'n sekere databasis red. Instel van die profielsamesteller vir die resultate van 'n nuwe tabel die navrae gered daar aan al die tafels (en menings, SPS, ens) wat gebruik word deur jou programme te vind teken, en dan seker te maak.

Nog 'n manier wat ek dink jy kan kyk of daar enige "skryf" is om 'n nuwe tyd stempel kolom toe te voeg tot elke tafel, en 'n sneller wat daardie kolom updates elke keer as daar 'n update of 'n insetsel. Maar hou in gedagte dat indien jou programme te doen navrae van die tipe

select * from ...

dan sal hulle 'n nuwe kolom ontvang en wat kan veroorsaak dat jy 'n paar probleme.

Ander wenke

Nog 'n voorstel vir die dop van tafels wat is geskryf om te Red Gate gebruik SQL Meld Rescue (gratis). Hierdie instrument duik in die log van die databasis en sal jou wys al inserts, updates en verwyder. Die lys is volledig soekbare, ook.

Dit voldoen nie aan jou kriteria vir die ondersoek lees in die databasis, maar ek dink die SQL Profiler tegniek sal jy 'n goeie idee so ver te kry as wat gaan.

As jy lastupdate kolomme jy kan kyk vir die skryf, daar is regtig nie 'n maklike manier om te kyk vir lees. Jy kan profiler hardloop nie, behalwe die teken om 'n tafel en so is daar

Wat ek gewoonlik doen is die naam van die tafel as voorvoegsel dit met 'n underscrore, wanneer mense begin om te skree ek hernoem dit net terug

As die deur nie gebruik word nie, beteken dat jy jou aansoek het nie meer verwysings na die tafels in vraag en jy is met behulp van dinamiese sql, kan jy doen'n soektog vir die tafel name in jou app, as hulle nie bestaan blaas hulle weg.

Ek het ook outputted al sprocs, funksies, ens.om'n teks lêer en'n soektog na die tafel name.Indien nie gevind nie, of gevind in die prosedures wat nodig sal hê om te verwyder, blaas hulle weg.

Just verwyder hulle en kyk of enige gebruiker kla daaroor;)

Dit lyk soos die gebruik van die Profiler gaan werk. Sodra ek het laat dit loop vir 'n rukkie, moet ek 'n goeie lys van gebruik tafels het. Enigiemand wat hul tafels nie elke dag gebruik kan waarskynlik wag vir hulle om te herstel van Friends. Dankie, mense.

Waarskynlik te laat om jou te help mogrify, maar vir iemand 'n soektog; Ek sou soek vir al die voorwerpe met behulp van hierdie voorwerp in my kode, dan in SQL Server deur die loop van hierdie:

Kies duidelike '[' + OBJECT_NAME (id) + ']'
uit syscomments
waar teks soos '% MY_TABLE_NAME%'

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top