/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Samkøring af flere forespørgsler i
Fra : Brian Sprogø


Dato : 03-04-07 08:34

Hejsa,

Jeg er igang med at ville rydde lidt op i de index der ikke bliver
benyttet på vores SQL 2005 navision-database.

I den forbindelse har jeg fundet frem til lidt forskellige scripts, der
kan pege mig hen på ubenyttede index.

Først finder jeg index der ikke bliver brugt:

   SELECT * FROM sys.dm_db_index_usage_stats
   WHERE user_seeks = 0 AND user_scans = 0 AND user_lookups = 0
   ORDER BY user_updates DESC

Her kan jeg så se 'object_id' og 'index_id'.

For at finde tabel-navnet, kan jeg bruge følgende script:

   SELECT DISTINCT OBJECT_NAME(1050135182)
   FROM master.sys.objects

For at finde navnet på index, kan jeg bruge følgende script:

   SELECT name
   FROM sys.indexes
   WHERE object_id = 1050135182 AND index_id = 5

Se, det er jo alt sammen meget godt - jeg kan finde frem til det jeg
gerne vil - men det er jo en kende besværligt at skulle køre 3 scripts.


Er der en venlig sjæl, som kan hjælpe mig med at få bygget de 3
forespørgsler sammen, således at jeg får den første forespørgsel, men
med tabel-navn og index-navn fundet frem i samme hug ?

Mvh.

Brian

 
 
Brian Sprogø (03-04-2007)
Kommentar
Fra : Brian Sprogø


Dato : 03-04-07 13:48

okay - jeg fik sådan set selv bakset noget sammen her...

SELECT OBJECT_NAME(S.object_id) AS tabel_navn, I.name AS index_navn,
user_updates AS antal_updates
FROM sys.dm_db_index_usage_stats AS S INNER JOIN
sys.indexes AS I ON S.object_id = I.object_id AND S.index_id =
I.index_id
WHERE (S.user_seeks = 0) AND (S.user_scans = 0) AND (S.user_lookups = 0)
ORDER BY S.user_updates DESC

Den returnerer Tabelnavn, indexnavn og antal updates sorteret på antal.

Iøvrigt en forespørgsel andre måske kunne bruge til at optimere på
indexes...

God påske...

Brian

Brian Sprogø skrev:
> Hejsa,
>
> Jeg er igang med at ville rydde lidt op i de index der ikke bliver
> benyttet på vores SQL 2005 navision-database.
>
> I den forbindelse har jeg fundet frem til lidt forskellige scripts, der
> kan pege mig hen på ubenyttede index.
>
> Først finder jeg index der ikke bliver brugt:
>
> SELECT * FROM sys.dm_db_index_usage_stats
> WHERE user_seeks = 0 AND user_scans = 0 AND user_lookups = 0
> ORDER BY user_updates DESC
>
> Her kan jeg så se 'object_id' og 'index_id'.
>
> For at finde tabel-navnet, kan jeg bruge følgende script:
>
> SELECT DISTINCT OBJECT_NAME(1050135182)
> FROM master.sys.objects
>
> For at finde navnet på index, kan jeg bruge følgende script:
>
> SELECT name
> FROM sys.indexes
> WHERE object_id = 1050135182 AND index_id = 5
>
> Se, det er jo alt sammen meget godt - jeg kan finde frem til det jeg
> gerne vil - men det er jo en kende besværligt at skulle køre 3 scripts.
>
>
> Er der en venlig sjæl, som kan hjælpe mig med at få bygget de 3
> forespørgsler sammen, således at jeg får den første forespørgsel, men
> med tabel-navn og index-navn fundet frem i samme hug ?
>
> Mvh.
>
> Brian

Søg
Reklame
Statistik
Spørgsmål : 177449
Tips : 31962
Nyheder : 719565
Indlæg : 6408120
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste