Czy istnieje potrzeba dodania indeksu do klucza obcego w SQL Server 2008 lub jest to obsługiwane domyślnie. W wielu moich tabelach mam jeden FK, który wskazuje na tabelę kont użytkowników i większość wyborów jest wykonywana z tym WHERE Account_FK = id
. Tak więc indeks może być tutaj szybką wygraną, mam nadzieję.Indeks obcego klucza lub nie w SQL Server 2008
Odpowiedz
Co do zasady chcesz, aby wszystkie klucze JOIN
miały indeksy na nich, więc tak dodaj indeks.
Jeśli jest to klucz złożony, należy umieścić wszystkie odpowiednie pola na liście kluczy indeksu w odpowiedniej kolejności.
Zgodnie z moją wiedzą, jedyny przypadek, w którym indeks jest tworzony automatycznie w SQL Server, jest po dodaniu klucza podstawowego do sterty (tabela bez indeksowania) - PK jest przypisywany automatycznie jako klucz klastrowany; lub, jak wskazuje Damien poniżej, po dodaniu ograniczenia UNIQUE
do pola lub zestawu pól.
Jednym z niewystarczająco oczywistych powodów do dodania indeksu do FK jest to, kiedy chcemy usunąć wiersz w tabeli głównej (tabela konta użytkownika). SQL Server sprawdza każdą relację FK, aby sprawdzić, czy istnieją jakieś wiersze, które uniemożliwiałyby usunięcie, i że to sprawdzanie jest o wiele szybsze dzięki indeksowi w kolumnie FK w tabelach podrzędnych.
- 1. Tworzenie klucza obcego w SQL Server Management Studio
- 2. SQL 2008 - Ograniczenia klucza obcego w widoku INFORMATION_SCHEMA
- 3. Czy mogę utworzyć indeks "Covering, Spatial" w SQL Server 2008?
- 4. TWORZENIE INDEKSU SQL Server 2008
- 5. Plan wykonania klucza obcego Oracle?
- 6. Wartości pola klucza obcego phpMyAdmin obcego klucza
- 7. Jak wybrać indeks klastrowany w SQL Server?
- 8. nie można zmienić projekt tabeli w SQL Server 2008
- 9. SQL Server 2008 Express CONCAT() nie istnieje?
- 10. SQL Server 2008 R2 intellisense nie działa
- 11. przypadek zerowy SQL Server 2008
- 12. SQL Server 2008 'sp_syspolicy_purge_history' Funkcja
- 13. Indeks złożony a INCLUDE Indeks pokrywający w SQL Server
- 14. Jak odbudować widok w SQL Server 2008
- 15. Korzystanie pivot w SQL Server 2008
- 16. SQL Server Management Studio: dlaczego podczas wstawiania do tabeli kolumna klucza obcego nie jest widoczna?
- 17. Wyłączenie ograniczenia klucza obcego, nadal nie można obciąć tabeli? (SQL Server 2005)
- 18. Przywróć bazę SQL Server 2008 do SQL Server 2000
- 19. Tworzenie kolumny obliczeniowej w SQL Server 2008
- 20. GROUP BY za pomocą klucza obcego lub klucza podstawowego?
- 21. Włączanie brokera usług w SQL Server 2008
- 22. Przechowywanie sekundy przestępnej w SQL Server 2008
- 23. iterację wierszy w SQL Server 2008
- 24. Wyliczone typy w SQL Server 2008?
- 25. Przypadek i liczba w SQL Server 2008
- 26. Czy SQLite3 nie obsługuje ograniczeń klucza obcego?
- 27. ORDER BY w Sql Server 2008 view
- 28. Problem SQL Compact (CE) z tworzeniem klucza obcego
- 29. Sql server 2008 codeSnippets lub szablony potrzebne porady
- 30. Indeksy wyrównane do partycji w SQL Server 2008
Ograniczenia PRIMARY KEY i UNIQUE zarówno dodają indeks automatycznie (o takiej samej nazwie, jak ograniczenie - tak, jak są one implementowane), i może być klastrowany lub nieklastrowy (z, jak to się mówi, domyślnym jest utwórz indeks klastrowany, jeśli jest to ograniczenie PK i nie ma jeszcze żadnego indeksu klastrowanego). –
@Damien - dobry punkt, zapomniałem o ograniczeniu "UNIQUE". – JNK