Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie indeksujące dotyczące odbudowy serwera SQL

Biodro>

Wszystkie indeksy w bazie danych SQL Server zostaną pofragmentowane. Po wielu aktualizacjach powiązanych tabel usuń transakcje.

Jeśli indeks w tabeli jest pofragmentowany, wszystkie transakcje związane z tą tabelą będą przebiegać bardzo wolno. Tak więc administrator bazy danych SQL Server powinien często monitorować indeksy i które z indeksów są pofragmentowane, a które nie przypominają tego zrzutu ekranu.

Pofragmentowany indeks możesz sprawdzić za pomocą następującego skryptu. Wpisz nazwę bazy danych SQL Server poprawnie w pierwszym wierszu, a następnie zapytanie znajdzie pofragmentowane indeksy.

declare @db int
select @db=DB_ID('DEVECI')
select 'ALTER INDEX [' + i.name +'] on '+OBJECT_NAME(s.object_id)+' REBUILD WITH (ONLINE = ON)',
objname = OBJECT_NAME(s.object_id),
s.object_id,
index_name= i.name,
index_type_desc, 
avg_fragmentation_in_percent
from sys.dm_db_index_physical_stats(@db,null,null,null,null) as s
join sys.indexes i on i.object_id = s.object_id and i.index_id = s.index_id 
where avg_fragmentation_in_percent>30
order by avg_fragmentation_in_percent desc, page_count desc;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmieniać kolumny lub generować alternatywne skrypty za pomocą graficznego interfejsu użytkownika w programie SQL Server — samouczek SQL Server / T-SQL, część 38

  2. Funkcje zdefiniowane przez użytkownika programu SQL Server

  3. Utworzyć wyzwalacz, aby rejestrować kod SQL, którego dotyczy tabela?

  4. Monitorowanie bazy danych SQL Server TempDB przy użyciu widoków zarządzania dynamicznego (DMV)

  5. 3 sposoby na uzyskanie nazwy dnia z daty w SQL Server (T-SQL)