Αυτό κατάλαβα κι εγώ, συνοψίζω:
1. Ορίζοντας Primary Key σε ένα πίνακα δημιουργείται και το αντίστοιχο index
πχ:
create table fl_country(
cnId int identity(1,1) constraint countryPK primary key,
cnISOcode nchar(2) not null constraint uniqueISOcode unique(cnISOcode),
cnName nvarchar(64) not null)
2. Ορίζοντας Foreign Key σε έναν δεύτερο πίνακα δεν δημιουργείται Index αλλά βελτιστοποιείται για join με τον πρώτο;
π.χ.
create table fl_location(
locId int identity(1,1) constraint locationPK primary key,
locCountry int constraint locationFKcountry foreign key references fl_country(cnId),
locName nvarchar(64) not null)
3. To join τους είναι optimized, δεν χρειάζεται index το locCountry
select l.locId,l.locName, c.cnName
from fl_location as l inner join fl_country as c on l.locCountry = c.cnId