Selasa, 26 Agustus 2014

x. Medan de påskynda

"SQL Server Index
En databas index liknar ett index i en bok - det består av en uppslags värde, och ett antal identifierare som motsvarar radnumret i en tabell. I SQL Server, finns det två typer av index - klustrade och icke-klustrade. Klustrade index kräver att uppgifterna i tabellen är fysiskt sorteras i den ordning av indexet. Eftersom data i en tabell kan vara fysiskt sorteras bara ett sätt, kan det finnas högst endast en klustrade index per bord. Icke klustrade index kräver inte att uppgifterna är fysiskt sorteras, det kan finnas mer än en icke-klustrade index per bord. I själva verket gör att SQL Server upp till 249 icke-klustrade index per bord. Eftersom uppgifterna inte är fysiskt sorteras, avstånds sökningar med en icke klustrade index är inte särskilt effektiv.

Kommandot för att skapa ett index i T-SQL är

CREATE [UNIQUE] [klustrade | NONCLUSTERED] INDEX index_name ON {table | visa} (kolumn [ASC | DESC] [, ... n]) [MED <index_option> [, ... n]] [ON filgrupp] <index_option> :: = {PAD_INDEX | FILLFACTOR = fillfactor | IGNORE_DUP_KEY | DROP_EXISTING | STATISTICS_NORECOMPUTE | SORT_IN_TEMPDB}

PAD_INDEX anger andelen utrymme fritt på de icke-bladnivåer indexet. FILLFACTOR anger procent att fylla bladsidorna. SORT_IN_TEMPDB anger att mellan resultatet av sorteringen kommer att lagras i tempdb. Detta ökar diskutrymme krav, men påverkar hastighetsindex skapas. STATISTICS_NO_RECOMPUTE talar om för systemet att inte automatiskt uppdatera indexstatistiken.

Naturligtvis kan index också skapas och hanteras med hjälp av Enterprise Manager. De kan skapas med hjälp av Skapa Index Wizard, från databasen Diagram, eller genom att ändra fälten i tabell designer.

Det finns en avvägning med index. Medan de påskynda verkställandet av frågor oerhört, är det overhead förknippas med dem. De konsumerar ytterligare diskutrymme, och behöver ytterligare tid för att uppdatera sig när data uppdateras eller bifogas en tabell. När du fyller på stora mängder data kan det löna sig att släppa indexet före lastningen och sedan återskapa indexet efter att de nya titlarna är nu fogats till bordet. Index kan tappas med hjälp av tabell Designad, eller med hjälp av kommandot DROP INDEX.

Index kan också bli splittrad. Att defragmentera ett index, antingen släppa och återskapa indexet, eller utfärda kommandot DBCC INDEXDEFRAG.

Tidak ada komentar:

Posting Komentar