Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 3
  • 115

 

W SQL Serverze stworzyłem tabelę i założyłem indeks poniższym poleceniem:

create index nazwa on tabela (kolumna)

Tabela była cyklicznie zasilana sporą ilością danych i po pewnym czasie zauważyłem, że zapytania wykonywane na tej tabeli (wyszukiwanie po kolumnie z indeksem) zajmują bardzo dużo czasu.

Stąd pytanie: czy przy założonym indeksie, w trakcie zasilenia tabeli danymi, indeks sam się aktualizuje czy też po każdym zasileniu trzeba go przebudowywać?

Szymon_Siemiaszko
  • Zapytał
  • @ Szymon_Siemiaszko | 28.03.2014
    • lider
    • laureat
    • 18
    • 7
    • 30
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 3

Jeżeli Indeks nie został wyłączony, to podczas modyfikacji danych jest on aktualizowany automatycznie. Natomiast w trakcie modyfikacji danych w tabeli indeks może ulec pofragmentowaniu, co możemy zobaczyć albo za pomocą polecenia sys.dm_db_index_physical_stats ( { database_id | NULL | 0 | DEFAULT } , { object_id | NULL | 0 | DEFAULT } , { index_id | NULL | 0 | -1 | DEFAULT } , { partition_number | NULL | 0 | DEFAULT } , { mode | NULL | DEFAULT }), którego opis jest dostępny w BOL (http://technet.microsoft.com/pl-pl/library/ms188917.aspx).

Można też klikając prawym klawiszem myszy na interesującym nas indeksie wybrać jego właściwości (Properties) i na stronie Fragmentation zobaczyć, czy indeks nie wymaga przebudowania.

 

 

 

Więcej na temat indeksów może Pan zobaczyć na tym webinarium: http://youtube/bTPCUIuZooQ .

  • Odpowiedział
  • @ | 28.03.2014
  • TRENER ALTKOM AKADEMII
Komentarze